From 25be5c65611d99bfc9809010c4e4b2a9b9ee2507 Mon Sep 17 00:00:00 2001 From: AntonioND Date: Mon, 3 Apr 2017 21:16:00 +0100 Subject: [PATCH] Improve error and warning output Improve error messages generated by `errx()`, `warnx()` and similar. Set `progname` to a static string with the name of the program so that the path of the binary isn't included in error messages. Signed-off-by: AntonioND --- src/asm/main.c | 2 +- src/extern/err.c | 26 ++++++++++++++++++++------ src/fix/main.c | 2 +- src/gfx/main.c | 2 +- src/link/main.c | 2 +- 5 files changed, 24 insertions(+), 10 deletions(-) diff --git a/src/asm/main.c b/src/asm/main.c index 34e0c75d..2e23e8a0 100644 --- a/src/asm/main.c +++ b/src/asm/main.c @@ -298,7 +298,7 @@ main(int argc, char *argv[]) if (argc == 1) usage(); - progname = argv[0]; + progname = "rgbasm"; /* yydebug=1; */ diff --git a/src/extern/err.c b/src/extern/err.c index 4d346a34..7c5587d0 100644 --- a/src/extern/err.c +++ b/src/extern/err.c @@ -30,30 +30,44 @@ extern char *progname; void rgbds_vwarn(const char *fmt, va_list ap) { - fprintf (stderr, "%s: ", progname); + fprintf (stderr, "%s:warning", progname); if (fmt) { + fputs (":", stderr); vfprintf(stderr, fmt, ap); - fputs (": ", stderr); } + putc('\n', stderr); perror(0); } void rgbds_vwarnx(const char *fmt, va_list ap) { - fprintf (stderr, "%s: ", progname); - if (fmt) vfprintf(stderr, fmt, ap); + fprintf (stderr, "%s:warning", progname); + if (fmt) { + fputs (":", stderr); + vfprintf(stderr, fmt, ap); + } putc('\n', stderr); } noreturn void rgbds_verr(int status, const char *fmt, va_list ap) { - vwarn(fmt, ap); + fprintf (stderr, "%s:error", progname); + if (fmt) { + fputs (":", stderr); + vfprintf(stderr, fmt, ap); + } + putc('\n', stderr); exit(status); } noreturn void rgbds_verrx(int status, const char *fmt, va_list ap) { - vwarnx(fmt, ap); + fprintf (stderr, "%s:error", progname); + if (fmt) { + fputs (":", stderr); + vfprintf(stderr, fmt, ap); + } + putc('\n', stderr); exit(status); } diff --git a/src/fix/main.c b/src/fix/main.c index d1560748..26d33877 100644 --- a/src/fix/main.c +++ b/src/fix/main.c @@ -71,7 +71,7 @@ main(int argc, char *argv[]) int version; /* mask ROM version number */ int padvalue; /* to pad the rom with if it changes size */ - progname = argv[0]; + progname = "rgbfix"; while ((ch = getopt(argc, argv, "Cci:jk:l:m:n:p:sr:t:v")) != -1) { switch (ch) { diff --git a/src/gfx/main.c b/src/gfx/main.c index 2496eaf7..fac25d5d 100644 --- a/src/gfx/main.c +++ b/src/gfx/main.c @@ -41,7 +41,7 @@ main(int argc, char *argv[]) char *ext; const char *errmsg = "Warning: The PNG's %s setting is not the same as the setting defined on the command line."; - progname = argv[0]; + progname = "rgbgfx"; if (argc == 1) { usage(); diff --git a/src/link/main.c b/src/link/main.c index 78c7dfb6..b5c7694f 100644 --- a/src/link/main.c +++ b/src/link/main.c @@ -54,7 +54,7 @@ main(int argc, char *argv[]) if (argc == 1) usage(); - progname = argv[0]; + progname = "rgblink"; while ((ch = getopt(argc, argv, "l:m:n:o:O:p:s:tw")) != -1) { switch (ch) {