From 0f83bab7f0a651e344c2be8a791f5c54e86a63fe Mon Sep 17 00:00:00 2001 From: kevind Date: Sat, 26 Sep 1998 23:08:36 +0000 Subject: [PATCH] * fix getstr so that it correctly handles long file paths --- lib/getline.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/getline.c b/lib/getline.c index d227318..3a1f4f5 100644 --- a/lib/getline.c +++ b/lib/getline.c @@ -82,12 +82,14 @@ getstr (lineptr, n, stream, terminator, offset) * 2. always make *n a multiple of MIN_CHUNK just larger * than condition 1 requires */ - *n = ((read_pos - *lineptr + 1) + 1)/MIN_CHUNK * MIN_CHUNK; - nchars_avail = *n + *lineptr - read_pos; + int nchars_read; + nchars_read = read_pos - *lineptr; + *n = ((*n)/MIN_CHUNK + 1) * MIN_CHUNK; *lineptr = realloc (*lineptr, *n); if (!*lineptr) return -1; - read_pos = *n - nchars_avail + *lineptr; + read_pos = *lineptr + nchars_read; + nchars_avail = *n + *lineptr - read_pos; assert(*n - nchars_avail == read_pos - *lineptr); } -- 2.11.4.GIT