summaryrefslogtreecommitdiffstats
path: root/newlib/libc
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc')
-rw-r--r--newlib/libc/stdio/freopen.c2
-rw-r--r--newlib/libc/stdio64/freopen64.c3
2 files changed, 4 insertions, 1 deletions
diff --git a/newlib/libc/stdio/freopen.c b/newlib/libc/stdio/freopen.c
index a696a9dd8..235ffba53 100644
--- a/newlib/libc/stdio/freopen.c
+++ b/newlib/libc/stdio/freopen.c
@@ -209,7 +209,7 @@ _DEFUN(_freopen_r, (ptr, file, mode, fp),
FREELB (ptr, fp);
fp->_lb._size = 0;
fp->_flags &= ~__SORD;
- fp->_flags2 = 0;
+ fp->_flags2 &= ~__SWID;
memset (&fp->_mbstate, 0, sizeof (_mbstate_t));
if (f < 0)
diff --git a/newlib/libc/stdio64/freopen64.c b/newlib/libc/stdio64/freopen64.c
index dfe36ea3d..a183fb8ea 100644
--- a/newlib/libc/stdio64/freopen64.c
+++ b/newlib/libc/stdio64/freopen64.c
@@ -208,6 +208,9 @@ _DEFUN (_freopen64_r, (ptr, file, mode, fp),
if (HASLB (fp))
FREELB (ptr, fp);
fp->_lb._size = 0;
+ fp->_flags &= ~__SORD;
+ fp->_flags2 &= ~__SWID;
+ memset (&fp->_mbstate, 0, sizeof (_mbstate_t));
if (f < 0)
{ /* did not get it after all */