diff options
Diffstat (limited to 'libio')
-rw-r--r-- | libio/ChangeLog | 5 | ||||
-rw-r--r-- | libio/iostream.cc | 14 |
2 files changed, 17 insertions, 2 deletions
diff --git a/libio/ChangeLog b/libio/ChangeLog index 55f6ec8..5c9836e 100644 --- a/libio/ChangeLog +++ b/libio/ChangeLog @@ -1,3 +1,8 @@ +2000-10-18 Jakub Jelinek <jakub@redhat.com> + + * iostream.cc (ends): Release the acquired lock. + (endl): Likewise. + 2000-10-16 Jakub Jelinek <jakub@redhat.com> * iostream.cc (ostream::operator<<(double n)) [__GLIBC_MINOR__ >= 2]: diff --git a/libio/iostream.cc b/libio/iostream.cc index 1f29431..ae1db1a 100644 --- a/libio/iostream.cc +++ b/libio/iostream.cc @@ -965,15 +965,25 @@ int istream::_skip_ws() ostream& ends(ostream& outs) { - if (outs.opfx()) + if (outs.opfx()) { + _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, + outs._strbuf); outs.put('\0'); + outs.osfx(); + _IO_cleanup_region_end (0); + } return outs; } ostream& endl(ostream& outs) { - if (outs.opfx()) + if (outs.opfx()) { + _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, + outs._strbuf); flush(outs.put('\n')); + outs.osfx(); + _IO_cleanup_region_end (0); + } return outs; } |