From f43932615d05b3a2ee85885693410a3cb62c31a0 Mon Sep 17 00:00:00 2001 From: DJ Delorie Date: Thu, 18 May 2000 19:03:10 +0000 Subject: * libc/stdio/fgets.c (fgets): perform CRLF conversions if __SCLE --- newlib/libc/stdio/fgets.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'newlib/libc') diff --git a/newlib/libc/stdio/fgets.c b/newlib/libc/stdio/fgets.c index abc2bb97c..d395d3344 100644 --- a/newlib/libc/stdio/fgets.c +++ b/newlib/libc/stdio/fgets.c @@ -79,6 +79,25 @@ _DEFUN (fgets, (buf, n, fp), return 0; s = buf; + +#ifdef __SCLE + if (fp->_flags & __SCLE) + { + int c; + /* Sorry, have to do it the slow way */ + while (--n > 0 && (c = __sgetc(fp)) != EOF) + { + *s++ = c; + if (c == '\n') + break; + } + if (c == EOF && s == buf) + return NULL; + *s = 0; + return buf; + } +#endif + n--; /* leave space for NUL */ do { -- cgit v1.2.3