Actually decrement counter; return string if EOF after reading characters
authorhpa <hpa>
Sun, 21 Aug 2005 22:36:30 +0000 (22:36 +0000)
committerhpa <hpa>
Sun, 21 Aug 2005 22:36:30 +0000 (22:36 +0000)
(i.e. partial line at end of file)

com32/lib/fgets.c

index 88a145a..593bea3 100644 (file)
@@ -17,11 +17,12 @@ char *fgets(char *s, int n, FILE *f)
     ch = getc(f);
     if ( ch == EOF ) {
       *p = '\0';
-      return NULL;
+      return (p == s) ? NULL : s;
     }
     *p++ = ch;
     if ( ch == '\n' )
       break;
+    n--;
   }
   if ( n )
     *p = '\0';