# HG changeset patch # User David A. Holland # Date 1373733534 14400 # Node ID 26ee741196d178c5d22f49b3257f2a08d91f8839 # Parent 63414cddf09cdf9ff57c9283327b3e2c95f0be1f Allow complain(NULL, format, ...) diff -r 63414cddf09c -r 26ee741196d1 main.c --- a/main.c Wed Jul 10 13:48:07 2013 -0400 +++ b/main.c Sat Jul 13 12:38:54 2013 -0400 @@ -935,14 +935,10 @@ DEAD static void -usage(const char *argv0, const char *fmt, ...) +usage(const char *progname, const char *fmt, ...) { - const char *progname; va_list ap; - progname = strrchr(argv0, '/'); - progname = progname == NULL ? argv0 : progname + 1; - fprintf(stderr, "%s: ", progname); va_start(ap, fmt); vfprintf(stderr, fmt, ap); @@ -1030,11 +1026,16 @@ int main(int argc, char *argv[]) { + const char *progname; const char *inputfile = NULL; const char *outputfile = NULL; struct place cmdplace; int i; + progname = strrchr(argv[0], '/'); + progname = progname == NULL ? argv[0] : progname + 1; + complain_init(progname); + init(); for (i=1; iline, p->column); + if (p != NULL) { + place_printfrom(p); + fprintf(stderr, "%s:%u:%u: ", place_getname(p), + p->line, p->column); + } else { + fprintf(stderr, "%s: ", myprogname); + } va_start(ap, fmt); vfprintf(stderr, fmt, ap); va_end(ap); diff -r 63414cddf09c -r 26ee741196d1 utils.h --- a/utils.h Wed Jul 10 13:48:07 2013 -0400 +++ b/utils.h Sat Jul 13 12:38:54 2013 -0400 @@ -62,6 +62,7 @@ bool is_identifier(const char *str); /* in place.c */ +void complain_init(const char *progname); void complain(const struct place *, const char *fmt, ...) PF(2, 3); void complain_fail(void); bool complain_failed(void);