diff --git a/libutil/getlines.c b/libutil/getlines.c index 8d4fc44..95ce0b9 100644 --- a/libutil/getlines.c +++ b/libutil/getlines.c @@ -20,13 +20,13 @@ getlines(FILE *fp, struct linebuf *b) b->lines = nline; } linelen = len + 1; - b->lines[b->nlines-1] = emalloc(linelen); - memcpy(b->lines[b->nlines-1], line, linelen); + b->lines[b->nlines - 1] = emalloc(linelen); + memcpy(b->lines[b->nlines - 1], line, linelen); } free(line); - if (strchr(b->lines[b->nlines-1], '\n') == NULL) { - b->lines[b->nlines-1] = erealloc(b->lines[b->nlines-1], linelen + 1); - b->lines[b->nlines-1][linelen-1] = '\n'; - b->lines[b->nlines-1][linelen] = '\0'; + if (!strchr(b->lines[b->nlines - 1], '\n')) { + b->lines[b->nlines - 1] = erealloc(b->lines[b->nlines - 1], linelen + 1); + b->lines[b->nlines - 1][linelen - 1] = '\n'; + b->lines[b->nlines - 1][linelen] = '\0'; } }