diff options
author | Robert Ancell <robert.ancell@canonical.com> | 2012-03-02 12:32:58 +1100 |
---|---|---|
committer | Robert Ancell <robert.ancell@canonical.com> | 2012-03-02 12:32:58 +1100 |
commit | 1c2d41ce1c415635b6a63e550105ba88fe5f9fab (patch) | |
tree | 300da1669ea699a20d59976e0b79490cf6d094ef | |
parent | fc0b595cc967f45552132a305d0004a3836ed88d (diff) | |
download | lightdm-git-1c2d41ce1c415635b6a63e550105ba88fe5f9fab.tar.gz |
Fix lightdm --debug not working on newer GLib (taken from 1.1 branch)
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | src/lightdm.c | 75 |
2 files changed, 38 insertions, 38 deletions
@@ -4,6 +4,7 @@ Overview of changes in lightdm 1.0.8 * Change session directory once user permissions are set so it works on NFS filesystems that don't allow root to access files. * Fix object cleanup on exit + * Fix lightdm --debug not working on newer GLib Overview of changes in lightdm 1.0.7 diff --git a/src/lightdm.c b/src/lightdm.c index b156b6ef..80e51ec0 100644 --- a/src/lightdm.c +++ b/src/lightdm.c @@ -61,55 +61,54 @@ typedef struct #define LIGHTDM_BUS_NAME "org.freedesktop.DisplayManager" static void -log_cb (const gchar *log_domain, GLogLevelFlags log_level, - const gchar *message, gpointer data) +log_cb (const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer data) { + const gchar *prefix; + gchar *text; + + switch (log_level & G_LOG_LEVEL_MASK) + { + case G_LOG_LEVEL_ERROR: + prefix = "ERROR:"; + break; + case G_LOG_LEVEL_CRITICAL: + prefix = "CRITICAL:"; + break; + case G_LOG_LEVEL_WARNING: + prefix = "WARNING:"; + break; + case G_LOG_LEVEL_MESSAGE: + prefix = "MESSAGE:"; + break; + case G_LOG_LEVEL_INFO: + prefix = "INFO:"; + break; + case G_LOG_LEVEL_DEBUG: + prefix = "DEBUG:"; + break; + default: + prefix = "LOG:"; + break; + } + + text = g_strdup_printf ("[%+.2fs] %s %s\n", g_timer_elapsed (log_timer, NULL), prefix, message); + /* Log everything to a file */ if (log_fd >= 0) { - const gchar *prefix; - gchar *text; ssize_t n_written; - - switch (log_level & G_LOG_LEVEL_MASK) - { - case G_LOG_LEVEL_ERROR: - prefix = "ERROR:"; - break; - case G_LOG_LEVEL_CRITICAL: - prefix = "CRITICAL:"; - break; - case G_LOG_LEVEL_WARNING: - prefix = "WARNING:"; - break; - case G_LOG_LEVEL_MESSAGE: - prefix = "MESSAGE:"; - break; - case G_LOG_LEVEL_INFO: - prefix = "INFO:"; - break; - case G_LOG_LEVEL_DEBUG: - prefix = "DEBUG:"; - break; - default: - prefix = "LOG:"; - break; - } - - text = g_strdup_printf ("[%+.2fs] %s %s\n", g_timer_elapsed (log_timer, NULL), prefix, message); n_written = write (log_fd, text, strlen (text)); if (n_written < 0) ; /* Check result so compiler doesn't warn about it */ - g_free (text); } - /* Only show debug if requested */ - if (log_level & G_LOG_LEVEL_DEBUG) { - if (debug) - g_log_default_handler (log_domain, log_level, message, data); - } + /* Log to stderr if requested */ + if (debug) + g_printerr ("%s", text); else - g_log_default_handler (log_domain, log_level, message, data); + g_log_default_handler (log_domain, log_level, message, data); + + g_free (text); } static void |