summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Ancell <robert.ancell@canonical.com>2012-03-02 12:32:58 +1100
committerRobert Ancell <robert.ancell@canonical.com>2012-03-02 12:32:58 +1100
commit1c2d41ce1c415635b6a63e550105ba88fe5f9fab (patch)
tree300da1669ea699a20d59976e0b79490cf6d094ef
parentfc0b595cc967f45552132a305d0004a3836ed88d (diff)
downloadlightdm-git-1c2d41ce1c415635b6a63e550105ba88fe5f9fab.tar.gz
Fix lightdm --debug not working on newer GLib (taken from 1.1 branch)
-rw-r--r--NEWS1
-rw-r--r--src/lightdm.c75
2 files changed, 38 insertions, 38 deletions
diff --git a/NEWS b/NEWS
index 21a03441..80b9946b 100644
--- a/NEWS
+++ b/NEWS
@@ -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