2005-08-31 Derek Price <derek@ximbiot.com>
authorSimon Josefsson <simon@josefsson.org>
Thu, 1 Sep 2005 11:09:14 +0000 (11:09 +0000)
committerSimon Josefsson <simon@josefsson.org>
Thu, 1 Sep 2005 11:09:14 +0000 (11:09 +0000)
* getdelim.c (getdelim): Return EOF on EOF.
Reported by Larry Jones <lawrence.jones@ugs.com>.

lib/ChangeLog
lib/getdelim.c

index e75459d..451c64d 100644 (file)
@@ -1,3 +1,8 @@
+2005-08-31  Derek Price  <derek@ximbiot.com>
+
+       * getdelim.c (getdelim): Return EOF on EOF.
+       Reported by Larry Jones <lawrence.jones@ugs.com>.
+
 2005-08-31  Paul Eggert  <eggert@cs.ucla.edu>
 
        * regex_internal.c (re_string_reconstruct): Don't assume buffer
index 02bb9a4..5dc4a38 100644 (file)
@@ -46,7 +46,7 @@
 ssize_t
 getdelim (char **lineptr, size_t *n, int delimiter, FILE *fp)
 {
-  int result;
+  int result = 0;
   ssize_t cur_len = 0;
   ssize_t len;
 
@@ -76,7 +76,10 @@ getdelim (char **lineptr, size_t *n, int delimiter, FILE *fp)
 
       i = getc (fp);
       if (i == EOF)
+      {
+       result = -1;
        break;
+      }
 
       /* Make enough space for len+1 (for final NUL) bytes.  */
       if (cur_len + 1 >= *n)
@@ -108,7 +111,7 @@ getdelim (char **lineptr, size_t *n, int delimiter, FILE *fp)
        break;
     }
   (*lineptr)[cur_len] = '\0';
-  result = cur_len;
+  result = cur_len ? cur_len : result;
 
  unlock_return:
   funlockfile (fp);