diff options
Diffstat (limited to 'contrib/libio/isscan.cc')
-rw-r--r-- | contrib/libio/isscan.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/contrib/libio/isscan.cc b/contrib/libio/isscan.cc index 64d4bc682f82..977559c2cba5 100644 --- a/contrib/libio/isscan.cc +++ b/contrib/libio/isscan.cc @@ -29,10 +29,14 @@ the executable file might be covered by the GNU General Public License. */ istream& istream::scan(const char *format ...) { if (ipfx0()) { + _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, + _strbuf); va_list ap; va_start(ap, format); _strbuf->vscan(format, ap, this); va_end(ap); + isfx(); + _IO_cleanup_region_end (0); } return *this; } @@ -40,6 +44,12 @@ istream& istream::scan(const char *format ...) istream& istream::vscan(const char *format, _IO_va_list args) { if (ipfx0()) + { + _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile, + _strbuf); _strbuf->vscan(format, args, this); + isfx(); + _IO_cleanup_region_end (0); + } return *this; } |