From f6dfce6d59aebabbfec6b20f4176b7b04e09b155 Mon Sep 17 00:00:00 2001 From: rubidium Date: Fri, 12 Feb 2010 23:47:50 +0000 Subject: [PATCH] (svn r19114) -Change: [strgen] Modify the outputted format for MSVC builds of strgen so it also shows fatal errors in the 'error list' and it also counts them. (Fatal) errors are marked as warnings so a failing language file is not causing the complete compilation to fail. --- src/strgen/strgen.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/strgen/strgen.cpp b/src/strgen/strgen.cpp index 0a9d4fe3b9..b6eb880b9a 100644 --- a/src/strgen/strgen.cpp +++ b/src/strgen/strgen.cpp @@ -138,9 +138,9 @@ static LangString *HashFind(const char *s) } #ifdef _MSC_VER -# define LINE_NUM_FMT "(%d)" +# define LINE_NUM_FMT(s) "%s (%d): warning: %s (" s ")\n" #else -# define LINE_NUM_FMT ":%d" +# define LINE_NUM_FMT(s) "%s: :%d: " s ": %s\n" #endif static void CDECL strgen_warning(const char *s, ...) WARN_FORMAT(1, 2); @@ -152,7 +152,7 @@ static void CDECL strgen_warning(const char *s, ...) va_start(va, s); vsnprintf(buf, lengthof(buf), s, va); va_end(va); - fprintf(stderr, "%s" LINE_NUM_FMT ": warning: %s\n", _file, _cur_line, buf); + fprintf(stderr, LINE_NUM_FMT("warning"), _file, _cur_line, buf); _warnings++; } @@ -165,7 +165,7 @@ static void CDECL strgen_error(const char *s, ...) va_start(va, s); vsnprintf(buf, lengthof(buf), s, va); va_end(va); - fprintf(stderr, "%s" LINE_NUM_FMT ": error: %s\n", _file, _cur_line, buf); + fprintf(stderr, LINE_NUM_FMT("error"), _file, _cur_line, buf); _errors++; } @@ -176,7 +176,10 @@ void NORETURN CDECL error(const char *s, ...) va_start(va, s); vsnprintf(buf, lengthof(buf), s, va); va_end(va); - fprintf(stderr, "%s" LINE_NUM_FMT ": FATAL: %s\n", _file, _cur_line, buf); + fprintf(stderr, LINE_NUM_FMT("FATAL"), _file, _cur_line, buf); +#ifdef _MSC_VER + fprintf(stderr, LINE_NUM_FMT("warning"), _file, _cur_line, "language is not compiled"); +#endif /* We were writing output to a file, remove it. */ if (_output_file != NULL) { fclose(_output_file);