gmessages: Share the same logic to pick the output for log level

Use the very same logic in both the fallback handler and the default handler
This commit is contained in:
Marco Trevisan (Treviño) 2023-01-12 22:20:14 +01:00
parent ed8810216a
commit b3fd737eaa

View File

@ -525,6 +525,7 @@ static inline const char * format_string (const char *format,
va_list args, va_list args,
char **out_allocated_string) char **out_allocated_string)
G_GNUC_PRINTF (1, 0); G_GNUC_PRINTF (1, 0);
static inline FILE * log_level_to_file (GLogLevelFlags log_level);
static void static void
_g_log_abort (gboolean breakpoint) _g_log_abort (gboolean breakpoint)
@ -1206,8 +1207,6 @@ mklevel_prefix (gchar level_prefix[STRING_BUFFER_SIZE],
GLogLevelFlags log_level, GLogLevelFlags log_level,
gboolean use_color) gboolean use_color)
{ {
gboolean to_stdout = !gmessages_use_stderr;
/* we may not call _any_ GLib functions here */ /* we may not call _any_ GLib functions here */
strcpy (level_prefix, log_level_to_color (log_level, use_color)); strcpy (level_prefix, log_level_to_color (log_level, use_color));
@ -1216,19 +1215,15 @@ mklevel_prefix (gchar level_prefix[STRING_BUFFER_SIZE],
{ {
case G_LOG_LEVEL_ERROR: case G_LOG_LEVEL_ERROR:
strcat (level_prefix, "ERROR"); strcat (level_prefix, "ERROR");
to_stdout = FALSE;
break; break;
case G_LOG_LEVEL_CRITICAL: case G_LOG_LEVEL_CRITICAL:
strcat (level_prefix, "CRITICAL"); strcat (level_prefix, "CRITICAL");
to_stdout = FALSE;
break; break;
case G_LOG_LEVEL_WARNING: case G_LOG_LEVEL_WARNING:
strcat (level_prefix, "WARNING"); strcat (level_prefix, "WARNING");
to_stdout = FALSE;
break; break;
case G_LOG_LEVEL_MESSAGE: case G_LOG_LEVEL_MESSAGE:
strcat (level_prefix, "Message"); strcat (level_prefix, "Message");
to_stdout = FALSE;
break; break;
case G_LOG_LEVEL_INFO: case G_LOG_LEVEL_INFO:
strcat (level_prefix, "INFO"); strcat (level_prefix, "INFO");
@ -1258,7 +1253,7 @@ mklevel_prefix (gchar level_prefix[STRING_BUFFER_SIZE],
if ((log_level & G_LOG_FLAG_FATAL) != 0 && !g_test_initialized ()) if ((log_level & G_LOG_FLAG_FATAL) != 0 && !g_test_initialized ())
win32_keep_fatal_message = TRUE; win32_keep_fatal_message = TRUE;
#endif #endif
return to_stdout ? stdout : stderr; return log_level_to_file (log_level);
} }
typedef struct { typedef struct {
@ -1487,7 +1482,7 @@ log_level_to_priority (GLogLevelFlags log_level)
return "5"; return "5";
} }
static FILE * static inline FILE *
log_level_to_file (GLogLevelFlags log_level) log_level_to_file (GLogLevelFlags log_level)
{ {
if (gmessages_use_stderr) if (gmessages_use_stderr)