summaryrefslogtreecommitdiff
path: root/libio/osform.cc
diff options
context:
space:
mode:
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1997-09-16 16:01:55 +0000
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1997-09-16 16:01:55 +0000
commita6bb47e073377fa203132a3ae20f76103a8049b7 (patch)
tree6f133200943f818cad1e94da16393eadfe8dd250 /libio/osform.cc
parentdb3b49b1fef1f3ba83eeb6537963bd7884e89602 (diff)
downloadgcc-a6bb47e073377fa203132a3ae20f76103a8049b7.tar.gz
Uli's libio/libstdc++ patches.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@15486 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libio/osform.cc')
-rw-r--r--libio/osform.cc14
1 files changed, 13 insertions, 1 deletions
diff --git a/libio/osform.cc b/libio/osform.cc
index 8c0011703da..f08f2efaa39 100644
--- a/libio/osform.cc
+++ b/libio/osform.cc
@@ -29,26 +29,38 @@ the executable file might be covered by the GNU General Public License. */
ostream& ostream::form(const char *format ...)
{
if (opfx()) {
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
+ _strbuf);
va_list ap;
va_start(ap, format);
_IO_vfprintf(rdbuf(), format, ap);
va_end(ap);
+ osfx();
+ _IO_cleanup_region_end (0);
}
return *this;
}
ostream& ostream::vform(const char *format, _IO_va_list args)
{
- if (opfx())
+ if (opfx()) {
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
+ _strbuf);
_IO_vfprintf(rdbuf(), format, args);
+ osfx();
+ _IO_cleanup_region_end (0);
+ }
return *this;
}
ostream& ostream::operator<<(const void *p)
{
if (opfx()) {
+ _IO_cleanup_region_start ((void (*) __P ((void *))) _IO_funlockfile,
+ _strbuf);
form("%p", p);
osfx();
+ _IO_cleanup_region_end (0);
}
return *this;
}