void g_print (const gchar *format, ...) { va_list args; gchar *string; GPrintFunc local_glib_print_func; g_return_if_fail (format != NULL); va_start (args, format); string = g_strdup_vprintf (format, args); va_end (args); //#ifdef HAVE_API_ANDROID //#include "debug.h" //dbg(0, string); //#endif #if 0 g_mutex_lock (g_messages_lock); local_glib_print_func = glib_print_func; g_mutex_unlock (g_messages_lock); if (local_glib_print_func) local_glib_print_func (string); else { const gchar *charset; if (g_get_charset (&charset)) fputs (string, stdout); /* charset is UTF-8 already */ else { gchar *lstring = strdup_convert (string, charset); fputs (lstring, stdout); g_free (lstring); } fflush (stdout); } #endif g_free (string); }
void g_print (const gchar *format, ...) { va_list args; gchar *string; GPrintFunc local_glib_print_func; g_return_if_fail (format != NULL); va_start (args, format); string = g_strdup_vprintf (format, args); va_end (args); g_mutex_lock (g_messages_lock); local_glib_print_func = glib_print_func; g_mutex_unlock (g_messages_lock); if (local_glib_print_func) local_glib_print_func (string); else { const gchar *charset; if (g_get_charset (&charset)) { fputs (string, stdout); /* charset is UTF-8 already */ } else { gchar *lstring = strdup_convert (string, charset); fputs (lstring, stdout); g_free (lstring); } fflush (stdout); } g_free (string); }
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); }