From: Simon Josefsson Date: Thu, 1 Sep 2005 11:09:14 +0000 (+0000) Subject: 2005-08-31 Derek Price X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=779c85f73b542dd1dd3f2e8b51c8cec1ae04e0ec;p=pspp 2005-08-31 Derek Price * getdelim.c (getdelim): Return EOF on EOF. Reported by Larry Jones . --- diff --git a/lib/ChangeLog b/lib/ChangeLog index e75459d099..451c64d529 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,8 @@ +2005-08-31 Derek Price + + * getdelim.c (getdelim): Return EOF on EOF. + Reported by Larry Jones . + 2005-08-31 Paul Eggert * regex_internal.c (re_string_reconstruct): Don't assume buffer diff --git a/lib/getdelim.c b/lib/getdelim.c index 02bb9a4976..5dc4a38d27 100644 --- a/lib/getdelim.c +++ b/lib/getdelim.c @@ -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);