From b09e3cf8fdb7927bc14af200b418841ebbae070d Mon Sep 17 00:00:00 2001 From: Jeff Johnston Date: Tue, 1 May 2001 18:18:25 +0000 Subject: 2001-05-01 Jeff Johnston * libc/stdio/findfp (__sinit)[HAVE_FCNTL]: For platforms that have real file systems, let __smakebuf() determine if line buffering should be used for stdout. --- newlib/ChangeLog | 6 ++++++ newlib/libc/stdio/findfp.c | 9 +++++++++ 2 files changed, 15 insertions(+) diff --git a/newlib/ChangeLog b/newlib/ChangeLog index 13a5eb006..a58b1ce8b 100644 --- a/newlib/ChangeLog +++ b/newlib/ChangeLog @@ -1,3 +1,9 @@ +2001-05-01 Jeff Johnston + + * libc/stdio/findfp (__sinit)[HAVE_FCNTL]: For platforms that have + real file systems, let __smakebuf() determine if line buffering + should be used for stdout. + 2001-04-27 Jeff Johnston * libc/stdio/vfscanf.c (__svfscanf_r): Initialize new_exp local var. diff --git a/newlib/libc/stdio/findfp.c b/newlib/libc/stdio/findfp.c index 64abb1c6b..c6790c491 100644 --- a/newlib/libc/stdio/findfp.c +++ b/newlib/libc/stdio/findfp.c @@ -152,7 +152,16 @@ __sinit (s) s->__sdidinit = 1; std (s->__sf + 0, __SRD, 0, s); + + /* on platforms that have true file system I/O, we can verify whether stdout + is an interactive terminal or not. For all other platforms, we will + default to line buffered mode here. */ +#ifdef HAVE_FCNTL + std (s->__sf + 1, __SWR, 1, s); +#else std (s->__sf + 1, __SWR | __SLBF, 1, s); +#endif + std (s->__sf + 2, __SWR | __SNBF, 2, s); s->__sglue._next = NULL; -- cgit v1.2.3