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:
authorDJ Delorie <dj@redhat.com>2000-05-18 23:03:10 +0400
committerDJ Delorie <dj@redhat.com>2000-05-18 23:03:10 +0400
commitf43932615d05b3a2ee85885693410a3cb62c31a0 (patch)
tree2304ec1df69f1fcf5a408021acb72d1ad90216aa /newlib/libc
parente73a56e9827a6d9ea4066b8dd75e7838d440adf1 (diff)
* libc/stdio/fgets.c (fgets): perform CRLF conversions if __SCLE
Diffstat (limited to 'newlib/libc')
-rw-r--r--newlib/libc/stdio/fgets.c19
1 files changed, 19 insertions, 0 deletions
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
{