diff options
Diffstat (limited to 'sfeed_mbox.c')
-rw-r--r-- | sfeed_mbox.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/sfeed_mbox.c b/sfeed_mbox.c index c2827d4..33c9ec6 100644 --- a/sfeed_mbox.c +++ b/sfeed_mbox.c @@ -63,7 +63,8 @@ printfeed(FILE *fp, const char *feedname) ssize_t linelen; int ishtml; - while ((linelen = getline(&line, &linesize, fp)) > 0) { + while ((linelen = getline(&line, &linesize, fp)) > 0 && + !ferror(stdout)) { if (line[linelen - 1] == '\n') line[--linelen] = '\0'; hash = djb2((unsigned char *)line, 5381ULL); @@ -163,17 +164,19 @@ main(int argc, char *argv[]) if (argc == 1) { printfeed(stdin, ""); + checkfileerror(stdin, "<stdin>", 'r'); } else { for (i = 1; i < argc; i++) { if (!(fp = fopen(argv[i], "r"))) err(1, "fopen: %s", argv[i]); name = ((name = strrchr(argv[i], '/'))) ? name + 1 : argv[i]; printfeed(fp, name); - if (ferror(fp)) - err(1, "ferror: %s", argv[i]); + checkfileerror(fp, argv[i], 'r'); fclose(fp); } } + checkfileerror(stdout, "<stdout>", 'w'); + return 0; } |