Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--newlib/ChangeLog4
-rw-r--r--newlib/libc/stdio/fgets.c19
2 files changed, 23 insertions, 0 deletions
diff --git a/newlib/ChangeLog b/newlib/ChangeLog
index a955e67f9..26741af57 100644
--- a/newlib/ChangeLog
+++ b/newlib/ChangeLog
@@ -1,3 +1,7 @@
+2000-05-18 DJ Delorie <dj@cygnus.com>
+
+ * libc/stdio/fgets.c (fgets): perform CRLF conversions if __SCLE
+
Mon May 15 18:54:00 2000 Jeff Johnston <jjohnstn@cygnus.com>
* libc/include/ctype.h: Changed tolower and toupper macros
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
{