summaryrefslogtreecommitdiff
path: root/lib/getndelim2.c
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>2004-04-04 06:51:11 +0000
committerJim Meyering <jim@meyering.net>2004-04-04 06:51:11 +0000
commit8c5584a1513cdbf62e8ed51c69053db4aae44682 (patch)
tree33f6842b5ab8d3e40869af4574990cfe15c3e50e /lib/getndelim2.c
parentfef16409575921ce744f360ed21800a6207d9f8f (diff)
downloadcoreutils-8c5584a1513cdbf62e8ed51c69053db4aae44682.tar.xz
Sync from gnulib.
Diffstat (limited to 'lib/getndelim2.c')
-rw-r--r--lib/getndelim2.c17
1 files changed, 7 insertions, 10 deletions
diff --git a/lib/getndelim2.c b/lib/getndelim2.c
index 6f0868999..395946259 100644
--- a/lib/getndelim2.c
+++ b/lib/getndelim2.c
@@ -81,18 +81,15 @@ getndelim2 (char **lineptr, size_t *linesize, size_t nmax,
size_t newlinesize =
(*linesize > MIN_CHUNK ? 2 * *linesize : *linesize + MIN_CHUNK);
- if (newlinesize > nmax)
+ if (! (*linesize < newlinesize && newlinesize <= nmax))
newlinesize = nmax;
- if (newlinesize > *linesize)
- {
- *linesize = newlinesize;
- nbytes_avail = *linesize + *lineptr - read_pos;
- *lineptr = realloc (*lineptr, *linesize);
- if (!*lineptr)
- return -1;
- read_pos = *linesize - nbytes_avail + *lineptr;
- }
+ *linesize = newlinesize;
+ nbytes_avail = *linesize + *lineptr - read_pos;
+ *lineptr = realloc (*lineptr, *linesize);
+ if (!*lineptr)
+ return -1;
+ read_pos = *linesize - nbytes_avail + *lineptr;
}
c = getc (stream);