summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/libstdio/fgets.c
diff options
context:
space:
mode:
Diffstat (limited to 'mdk-stage1/dietlibc/libstdio/fgets.c')
-rw-r--r--mdk-stage1/dietlibc/libstdio/fgets.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/mdk-stage1/dietlibc/libstdio/fgets.c b/mdk-stage1/dietlibc/libstdio/fgets.c
new file mode 100644
index 000000000..c613d452d
--- /dev/null
+++ b/mdk-stage1/dietlibc/libstdio/fgets.c
@@ -0,0 +1,20 @@
+#include "dietstdio.h"
+
+extern int ferror(FILE *stream);
+
+char *fgets(char *s, int size, FILE *stream) {
+ char *orig=s;
+ int l;
+ for (l=size; l>0;) {
+ int c=fgetc(stream);
+ if (c==EOF) break;
+ *s=c;
+ ++s;
+ --l;
+ if (c=='\n') break;
+ }
+ if (l==size || ferror(stream))
+ return 0;
+ *s=0;
+ return orig;
+}