mirror of
https://github.com/gbdev/rgbds.git
synced 2025-11-20 10:12:06 +00:00
Refactor some redundant error/warning-printing code
This commit is contained in:
@@ -331,8 +331,10 @@ void printDiag(char const *fmt, va_list args, char const *type,
|
|||||||
char const *flagfmt, char const *flag)
|
char const *flagfmt, char const *flag)
|
||||||
{
|
{
|
||||||
fputs(type, stderr);
|
fputs(type, stderr);
|
||||||
|
fputs(": ", stderr);
|
||||||
fstk_DumpCurrent();
|
fstk_DumpCurrent();
|
||||||
fprintf(stderr, flagfmt, flag);
|
fprintf(stderr, flagfmt, flag);
|
||||||
|
fputs("\n ", stderr);
|
||||||
vfprintf(stderr, fmt, args);
|
vfprintf(stderr, fmt, args);
|
||||||
lexer_DumpStringExpansions();
|
lexer_DumpStringExpansions();
|
||||||
}
|
}
|
||||||
@@ -342,7 +344,7 @@ void error(char const *fmt, ...)
|
|||||||
va_list args;
|
va_list args;
|
||||||
|
|
||||||
va_start(args, fmt);
|
va_start(args, fmt);
|
||||||
printDiag(fmt, args, "error: ", ":\n ", NULL);
|
printDiag(fmt, args, "error", ":", NULL);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
|
|
||||||
// This intentionally makes 0 act as "unlimited" (or at least "limited to sizeof(unsigned)")
|
// This intentionally makes 0 act as "unlimited" (or at least "limited to sizeof(unsigned)")
|
||||||
@@ -357,7 +359,7 @@ void error(char const *fmt, ...)
|
|||||||
va_list args;
|
va_list args;
|
||||||
|
|
||||||
va_start(args, fmt);
|
va_start(args, fmt);
|
||||||
printDiag(fmt, args, "FATAL: ", ":\n ", NULL);
|
printDiag(fmt, args, "FATAL", ":", NULL);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
|
|
||||||
exit(1);
|
exit(1);
|
||||||
@@ -375,11 +377,11 @@ void warning(enum WarningID id, char const *fmt, ...)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case WARNING_ENABLED:
|
case WARNING_ENABLED:
|
||||||
printDiag(fmt, args, "warning: ", ": [-W%s]\n ", flag);
|
printDiag(fmt, args, "warning", ": [-W%s]", flag);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WARNING_ERROR:
|
case WARNING_ERROR:
|
||||||
printDiag(fmt, args, "error: ", ": [-Werror=%s]\n ", flag);
|
printDiag(fmt, args, "error", ": [-Werror=%s]", flag);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WARNING_DEFAULT:
|
case WARNING_DEFAULT:
|
||||||
|
|||||||
@@ -72,34 +72,35 @@ char const *dumpFileStack(struct FileStackNode const *node)
|
|||||||
return lastName;
|
return lastName;
|
||||||
}
|
}
|
||||||
|
|
||||||
void warning(struct FileStackNode const *where, uint32_t lineNo, char const *fmt, ...)
|
void printDiag(char const *fmt, va_list args, char const *type,
|
||||||
|
struct FileStackNode const *where, uint32_t lineNo)
|
||||||
{
|
{
|
||||||
va_list ap;
|
fputs(type, stderr);
|
||||||
|
fputs(": ", stderr);
|
||||||
fputs("warning: ", stderr);
|
|
||||||
if (where) {
|
if (where) {
|
||||||
dumpFileStack(where);
|
dumpFileStack(where);
|
||||||
fprintf(stderr, "(%" PRIu32 "): ", lineNo);
|
fprintf(stderr, "(%" PRIu32 "): ", lineNo);
|
||||||
}
|
}
|
||||||
va_start(ap, fmt);
|
vfprintf(stderr, fmt, args);
|
||||||
vfprintf(stderr, fmt, ap);
|
|
||||||
va_end(ap);
|
|
||||||
putc('\n', stderr);
|
putc('\n', stderr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void warning(struct FileStackNode const *where, uint32_t lineNo, char const *fmt, ...)
|
||||||
|
{
|
||||||
|
va_list args;
|
||||||
|
|
||||||
|
va_start(args, fmt);
|
||||||
|
printDiag(fmt, args, "warning", where, lineNo);
|
||||||
|
va_end(args);
|
||||||
|
}
|
||||||
|
|
||||||
void error(struct FileStackNode const *where, uint32_t lineNo, char const *fmt, ...)
|
void error(struct FileStackNode const *where, uint32_t lineNo, char const *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list args;
|
||||||
|
|
||||||
fputs("error: ", stderr);
|
va_start(args, fmt);
|
||||||
if (where) {
|
printDiag(fmt, args, "error", where, lineNo);
|
||||||
dumpFileStack(where);
|
va_end(args);
|
||||||
fprintf(stderr, "(%" PRIu32 "): ", lineNo);
|
|
||||||
}
|
|
||||||
va_start(ap, fmt);
|
|
||||||
vfprintf(stderr, fmt, ap);
|
|
||||||
va_end(ap);
|
|
||||||
putc('\n', stderr);
|
|
||||||
|
|
||||||
if (nbErrors != UINT32_MAX)
|
if (nbErrors != UINT32_MAX)
|
||||||
nbErrors++;
|
nbErrors++;
|
||||||
@@ -107,12 +108,12 @@ void error(struct FileStackNode const *where, uint32_t lineNo, char const *fmt,
|
|||||||
|
|
||||||
void argErr(char flag, char const *fmt, ...)
|
void argErr(char flag, char const *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list args;
|
||||||
|
|
||||||
fprintf(stderr, "error: Invalid argument for option '%c': ", flag);
|
fprintf(stderr, "error: Invalid argument for option '%c': ", flag);
|
||||||
va_start(ap, fmt);
|
va_start(args, fmt);
|
||||||
vfprintf(stderr, fmt, ap);
|
vfprintf(stderr, fmt, args);
|
||||||
va_end(ap);
|
va_end(args);
|
||||||
putc('\n', stderr);
|
putc('\n', stderr);
|
||||||
|
|
||||||
if (nbErrors != UINT32_MAX)
|
if (nbErrors != UINT32_MAX)
|
||||||
@@ -121,17 +122,11 @@ void argErr(char flag, char const *fmt, ...)
|
|||||||
|
|
||||||
[[noreturn]] void fatal(struct FileStackNode const *where, uint32_t lineNo, char const *fmt, ...)
|
[[noreturn]] void fatal(struct FileStackNode const *where, uint32_t lineNo, char const *fmt, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list args;
|
||||||
|
|
||||||
fputs("FATAL: ", stderr);
|
va_start(args, fmt);
|
||||||
if (where) {
|
printDiag(fmt, args, "FATAL", where, lineNo);
|
||||||
dumpFileStack(where);
|
va_end(args);
|
||||||
fprintf(stderr, "(%" PRIu32 "): ", lineNo);
|
|
||||||
}
|
|
||||||
va_start(ap, fmt);
|
|
||||||
vfprintf(stderr, fmt, ap);
|
|
||||||
va_end(ap);
|
|
||||||
putc('\n', stderr);
|
|
||||||
|
|
||||||
if (nbErrors != UINT32_MAX)
|
if (nbErrors != UINT32_MAX)
|
||||||
nbErrors++;
|
nbErrors++;
|
||||||
|
|||||||
Reference in New Issue
Block a user