mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-11-19 08:58:21 +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,
|
gsize n_fields,
|
||||||
gpointer user_data)
|
gpointer user_data)
|
||||||
{
|
{
|
||||||
gboolean use_color;
|
static gboolean use_color;
|
||||||
|
static size_t use_color_init = 0;
|
||||||
FILE *stream;
|
FILE *stream;
|
||||||
char *out;
|
char *out;
|
||||||
const char *no_color_env;
|
|
||||||
|
|
||||||
g_return_val_if_fail (fields != NULL, G_LOG_WRITER_UNHANDLED);
|
g_return_val_if_fail (fields != NULL, G_LOG_WRITER_UNHANDLED);
|
||||||
g_return_val_if_fail (n_fields > 0, 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)
|
if (!stream || fileno (stream) < 0)
|
||||||
return G_LOG_WRITER_UNHANDLED;
|
return G_LOG_WRITER_UNHANDLED;
|
||||||
|
|
||||||
/* Honor NO_COLOR environment variable (https://no-color.org) */
|
if (g_once_init_enter (&use_color_init))
|
||||||
no_color_env = g_getenv ("NO_COLOR");
|
{
|
||||||
if (no_color_env && *no_color_env != '\0')
|
/* Honor NO_COLOR environment variable (https://no-color.org) */
|
||||||
use_color = FALSE;
|
const char *no_color_env = g_getenv ("NO_COLOR");
|
||||||
else
|
if (no_color_env && *no_color_env != '\0')
|
||||||
use_color = g_log_writer_supports_color (fileno (stream));
|
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);
|
out = log_writer_format_fields_utf8 (log_level, fields, n_fields, use_color, TRUE);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user