mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-11-18 08:28:22 +01:00
Merge branch 'glib/no-color-env' into 'main'
glog: guard NO_COLOR environment variable check with a GOnce for performance reasons See merge request GNOME/glib!4904
This commit is contained in:
@@ -2712,10 +2712,10 @@ g_log_writer_standard_streams (GLogLevelFlags log_level,
|
||||
gsize n_fields,
|
||||
gpointer user_data)
|
||||
{
|
||||
gboolean use_color;
|
||||
static gboolean use_color;
|
||||
static size_t use_color_init = 0;
|
||||
FILE *stream;
|
||||
char *out;
|
||||
const char *no_color_env;
|
||||
|
||||
g_return_val_if_fail (fields != NULL, G_LOG_WRITER_UNHANDLED);
|
||||
g_return_val_if_fail (n_fields > 0, G_LOG_WRITER_UNHANDLED);
|
||||
@@ -2724,12 +2724,17 @@ g_log_writer_standard_streams (GLogLevelFlags log_level,
|
||||
if (!stream || fileno (stream) < 0)
|
||||
return G_LOG_WRITER_UNHANDLED;
|
||||
|
||||
/* Honor NO_COLOR environment variable (https://no-color.org) */
|
||||
no_color_env = g_getenv ("NO_COLOR");
|
||||
if (no_color_env && *no_color_env != '\0')
|
||||
use_color = FALSE;
|
||||
else
|
||||
use_color = g_log_writer_supports_color (fileno (stream));
|
||||
if (g_once_init_enter (&use_color_init))
|
||||
{
|
||||
/* Honor NO_COLOR environment variable (https://no-color.org) */
|
||||
const char *no_color_env = g_getenv ("NO_COLOR");
|
||||
if (no_color_env && *no_color_env != '\0')
|
||||
use_color = FALSE;
|
||||
else
|
||||
use_color = g_log_writer_supports_color (fileno (stream));
|
||||
|
||||
g_once_init_leave (&use_color_init, 1);
|
||||
}
|
||||
|
||||
out = log_writer_format_fields_utf8 (log_level, fields, n_fields, use_color, TRUE);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user