ref: 696feae32e87473811b59da174d7841a165ec42d
parent: 323738e7b8426e59aa753ca1f1d623d5c1f24368
author: ISSOtm <eldredhabert0@gmail.com>
date: Thu Sep 12 18:08:04 EDT 2019
Have RGBDS' `err` and `warn` output an error message The stdlib functions specify the difference between `err` and `errx` is that the former prints a message obtained with `strerror`. However, RGBDS' implementation breaks that contract, and `warn`'s puts the added semicolon in the wrong place.
--- a/src/extern/err.c
+++ b/src/extern/err.c
@@ -14,13 +14,12 @@
void rgbds_vwarn(const char *fmt, va_list ap)
{- fprintf(stderr, "warning");
+ fprintf(stderr, "warning: ");
if (fmt) {- fputs(": ", stderr);vfprintf(stderr, fmt, ap);
+ fputs(": ", stderr);}
- putc('\n', stderr);- perror(0);
+ perror(NULL);
}
void rgbds_vwarnx(const char *fmt, va_list ap)
@@ -35,12 +34,12 @@
noreturn_ void rgbds_verr(int status, const char *fmt, va_list ap)
{- fprintf(stderr, "error");
+ fprintf(stderr, "error: ");
if (fmt) {- fputs(": ", stderr);vfprintf(stderr, fmt, ap);
+ fputs(": ", stderr);}
- putc('\n', stderr);+ perror(NULL);
exit(status);
}
--
⑨