Check getline()-return-values properly

It's not useful when 0 is returned anyway, so be sure that we have a
string with length > 0, this also solves some indexing-gotchas like
"len - 1" and so on.
Also, add checked getline()'s whenever it has been forgotten and
clean up the error-messages.
This commit is contained in:
FRIGN
2015-03-27 14:49:48 +01:00
parent a516338581
commit 9144d51594
15 changed files with 22 additions and 21 deletions

6
sort.c
View File

@@ -63,9 +63,9 @@ check(FILE *fp)
{
static struct { char *buf; size_t size; } prev, cur, tmp;
if (!prev.buf)
getline(&prev.buf, &prev.size, fp);
while (getline(&cur.buf, &cur.size, fp) != -1) {
if (!prev.buf && getline(&prev.buf, &prev.size, fp) < 0)
eprintf("getline:");
while (getline(&cur.buf, &cur.size, fp) > 0) {
if (uflag > linecmp((const char **) &cur.buf, (const char **) &prev.buf)) {
if (!Cflag)
weprintf("disorder: %s", cur.buf);