diff --git a/filters_main.inc.h b/filters_main.inc.h index 5196328..f1bd7ed 100644 --- a/filters_main.inc.h +++ b/filters_main.inc.h @@ -500,8 +500,10 @@ static bool loadfilterfile(const char *fname) { char buf[128]; FILE *f = fopen(fname,"r"); - if (!f) + if (!f) { + fprintf(stderr,"failed to load filter file \"%s\": %s\n",fname,strerror(errno)); return false; + } while (fgets(buf,sizeof(buf),f)) { for (char *p = buf;*p;++p) { if (*p == '\n') { @@ -512,5 +514,11 @@ static bool loadfilterfile(const char *fname) if (*buf && *buf != '#' && memcmp(buf,"//",2) != 0) filters_add(buf); } + int fe = ferror(f); + fclose(f); + if (fe != 0) { + fprintf(stderr,"failure while reading filter file \"%s\": %s\n",fname,strerror(fe)); + return false; + } return true; } diff --git a/main.c b/main.c index 387eea8..54169fb 100644 --- a/main.c +++ b/main.c @@ -2,6 +2,7 @@ #include #include +#include #include #include #include @@ -258,11 +259,8 @@ int main(int argc,char **argv) } else if (*arg == 'f') { if (argc--) { - const char *filename = *argv++; - if (!loadfilterfile(filename)) { - fprintf(stderr,"failed to load filter file %s\n",filename); + if (!loadfilterfile(*argv++)) exit(1); - } } else e_additional();