diff options
Diffstat (limited to 'mdk-stage1/dietlibc/libstdio/fgets.c')
-rw-r--r-- | mdk-stage1/dietlibc/libstdio/fgets.c | 20 |
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; +} |