void _g_messages_thread_init_nomessage (void) { g_messages_lock = g_mutex_new (); g_log_depth = g_private_new (NULL); g_messages_prefixed_init (); _g_debug_init (); }
void glib_init (void) { static gboolean glib_inited; if (glib_inited) return; glib_inited = TRUE; g_messages_prefixed_init (); g_debug_init (); g_quark_init (); }
void g_log_default_handler (const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer unused_data) { gboolean is_fatal = (log_level & G_LOG_FLAG_FATAL) != 0; gchar level_prefix[STRING_BUFFER_SIZE], *string; GString *gstring; int fd; /* we can be called externally with recursion for whatever reason */ if (log_level & G_LOG_FLAG_RECURSION) { _g_log_fallback_handler (log_domain, log_level, message, unused_data); return; } g_messages_prefixed_init (); fd = mklevel_prefix (level_prefix, log_level); gstring = g_string_new (NULL); if (log_level & ALERT_LEVELS) g_string_append (gstring, "\n"); if (!log_domain) g_string_append (gstring, "** "); if ((g_log_msg_prefix & log_level) == log_level) { const gchar *prg_name = g_get_prgname (); if (!prg_name) g_string_append_printf (gstring, "(process:%lu): ", (gulong)getpid ()); else g_string_append_printf (gstring, "(%s:%lu): ", prg_name, (gulong)getpid ()); } if (log_domain) { g_string_append (gstring, log_domain); g_string_append_c (gstring, '-'); } g_string_append (gstring, level_prefix); g_string_append (gstring, ": "); if (!message) g_string_append (gstring, "(NULL) message"); else { GString *msg; const gchar *charset; msg = g_string_new (message); escape_string (msg); if (g_get_charset (&charset)) g_string_append (gstring, msg->str); /* charset is UTF-8 already */ else { string = strdup_convert (msg->str, charset); g_string_append (gstring, string); g_free (string); } g_string_free (msg, TRUE); } if (is_fatal) g_string_append (gstring, "\naborting...\n"); else g_string_append (gstring, "\n"); string = g_string_free (gstring, FALSE); write_string (fd, string); g_free (string); }
static void glib_init (void) { g_messages_prefixed_init (); g_debug_init (); }