chiark / gitweb /
[PATCH] sync with latest version of klibc (0.107)
[elogind.git] / klibc / klibc / fgets.c
1 /*
2  * fgets.c
3  *
4  * This will be very slow due to the implementation of getc(),
5  * but we can't afford to drain characters we don't need from
6  * the input.
7  */
8
9 #include <stdio.h>
10
11 char *fgets(char *s, int n, FILE *f)
12 {
13   int ch;
14   char *p = s;
15
16   while ( n > 1 ) {
17     ch = getc(f);
18     if ( ch == EOF ) {
19       *p = '\0';
20       return NULL;
21     }
22     *p++ = ch;
23     if ( ch == '\n' )
24       break;
25   }
26   if ( n )
27     *p = '\0';
28   
29   return s;
30 }
31
32
33