style: clean up complain.c

* src/complain.c (severity_prefix): New.
(error_message): Take the severity as argument, instead of the prefix.
This commit is contained in:
Akim Demaille
2019-02-12 06:53:46 +01:00
parent e5ec21215e
commit 855fbf1c11

View File

@@ -61,7 +61,7 @@ typedef enum
/** For each warning type, its severity. */ /** For each warning type, its severity. */
static severity warnings_flag[warnings_size]; static severity warnings_flag[warnings_size];
static unsigned *indent_ptr = 0; static unsigned *indent_ptr = NULL;
/*------------------------. /*------------------------.
| --warnings's handling. | | --warnings's handling. |
@@ -166,6 +166,25 @@ warnings_argmatch (char *args)
} }
static const char*
severity_prefix (severity s)
{
switch (s)
{
case severity_disabled:
case severity_unset:
return "";
case severity_warning:
return _("warning");
case severity_error:
return _("error");
case severity_fatal:
return _("fatal error");
}
abort ();
}
/*-----------. /*-----------.
| complain. | | complain. |
`-----------*/ `-----------*/
@@ -251,7 +270,8 @@ warnings_print_categories (warnings warn_flags, FILE *f)
* \param loc the location, defaulting to the current file, * \param loc the location, defaulting to the current file,
* or the program name. * or the program name.
* \param flags the category for this message. * \param flags the category for this message.
* \param prefix put before the message (e.g., "warning"). * \param sever to decide the prefix to put before the message
* (e.g., "warning").
* \param message the error message, a printf format string. Iff it * \param message the error message, a printf format string. Iff it
* ends with ": ", then no trailing newline is printed, * ends with ": ", then no trailing newline is printed,
* and the caller should print the remaining * and the caller should print the remaining
@@ -260,7 +280,7 @@ warnings_print_categories (warnings warn_flags, FILE *f)
*/ */
static static
void void
error_message (const location *loc, warnings flags, const char *prefix, error_message (const location *loc, warnings flags, severity sever,
const char *message, va_list args) const char *message, va_list args)
{ {
unsigned pos = 0; unsigned pos = 0;
@@ -274,7 +294,7 @@ error_message (const location *loc, warnings flags, const char *prefix,
if (indent_ptr) if (indent_ptr)
{ {
if (*indent_ptr) if (*indent_ptr)
prefix = NULL; sever = severity_disabled;
if (!*indent_ptr) if (!*indent_ptr)
*indent_ptr = pos; *indent_ptr = pos;
else if (*indent_ptr > pos) else if (*indent_ptr > pos)
@@ -282,13 +302,13 @@ error_message (const location *loc, warnings flags, const char *prefix,
indent_ptr = NULL; indent_ptr = NULL;
} }
if (prefix) if (sever != severity_disabled)
fprintf (stderr, "%s: ", prefix); fprintf (stderr, "%s: ", severity_prefix (sever));
vfprintf (stderr, message, args); vfprintf (stderr, message, args);
/* Print the type of warning, only if this is not a sub message /* Print the type of warning, only if this is not a sub message
(in which case the prefix is null). */ (in which case the prefix is null). */
if (! (flags & silent) && prefix) if (! (flags & silent) && sever != severity_disabled)
warnings_print_categories (flags, stderr); warnings_print_categories (flags, stderr);
{ {
@@ -317,13 +337,9 @@ complains (const location *loc, warnings flags, const char *message,
if (severity_warning <= s) if (severity_warning <= s)
{ {
const char* prefix =
s == severity_fatal ? _("fatal error")
: s == severity_error ? _("error")
: _("warning");
if (severity_error <= s && ! complaint_status) if (severity_error <= s && ! complaint_status)
complaint_status = status_warning_as_error; complaint_status = status_warning_as_error;
error_message (loc, flags, prefix, message, args); error_message (loc, flags, s, message, args);
} }
if (flags & fatal) if (flags & fatal)