diff --git a/src/card.c b/src/card.c index d79a4ab..354f819 100644 --- a/src/card.c +++ b/src/card.c @@ -19,7 +19,7 @@ CARD* card_parse_csv(char *f, int *ct) { CARD *ca = NULL; if ((fp = fopen(f, "r")) == NULL) - die("failed to open file (null pointer)"); + die("failed to open file '%s' (null pointer)", f); *ct = 0; diff --git a/src/include/main.h b/src/include/main.h index 6daac90..1d559f6 100644 --- a/src/include/main.h +++ b/src/include/main.h @@ -1,7 +1,7 @@ #ifndef MAIN_H #define MAIN_H -void die(char *); +void die(char *, ...); char *fgetl(FILE *); char *strdup_(char *); diff --git a/src/main.c b/src/main.c index 6e71b46..edda252 100644 --- a/src/main.c +++ b/src/main.c @@ -1,13 +1,21 @@ #include #include +#include #include #include #include "include/main.h" #include "include/card.h" -void die(char *s) { - fprintf(stderr, "fatal: %s\n", s); +void die(char *format, ...) { + va_list args; + va_start(args, format); + + fprintf(stderr, "fatal: "); + vfprintf(stderr, format, args); + fprintf(stderr, "\n"); + + va_end(args); exit(1); } @@ -27,7 +35,8 @@ void usage(void) { exit(0); } -char *fgetl(FILE *stream) { size_t s_sz = 1; // +1 for null byte +char *fgetl(FILE *stream) { + size_t s_sz = 1; // +1 for null byte char *s = NULL; char c;