]> Dogcows Code - chaz/openbox/blobdiff - openbox/openbox.c
save the LC_MESSAGES locale category
[chaz/openbox] / openbox / openbox.c
index 1b39b40478b2a03cc387a4e12966f5e9069aa453..4703d7d6eb921632f203416eda9ead477f689a17 100644 (file)
@@ -91,6 +91,7 @@ gchar        *ob_sm_id = NULL;
 gchar        *ob_sm_save_file = NULL;
 gboolean      ob_sm_restore = TRUE;
 gboolean      ob_debug_xinerama = FALSE;
+const gchar  *ob_locale_msg = NULL;
 
 static ObState   state;
 static gboolean  xsync = FALSE;
@@ -109,6 +110,7 @@ static void remove_args(gint *argc, gchar **argv, gint index, gint num);
 static void parse_env();
 static void parse_args(gint *argc, gchar **argv);
 static Cursor load_cursor(const gchar *name, guint fontval);
+static void run_startup_cmd(void);
 
 gint main(gint argc, gchar **argv)
 {
@@ -119,6 +121,8 @@ gint main(gint argc, gchar **argv)
     ob_debug_startup();
 
     /* initialize the locale */
+    if (!(ob_locale_msg = setlocale(LC_MESSAGES, "")))
+        g_message("Couldn't set messages locale category from environment.");
     if (!setlocale(LC_ALL, ""))
         g_message("Couldn't set locale from environment.");
     bindtextdomain(PACKAGE_NAME, LOCALEDIR);
@@ -343,28 +347,7 @@ gint main(gint argc, gchar **argv)
 
             ob_set_state(OB_STATE_RUNNING);
 
-            if (startup_cmd) {
-                gchar **argv = NULL;
-                GError *e = NULL;
-                gboolean ok;
-
-                if (!g_shell_parse_argv(startup_cmd, NULL, &argv, &e)) {
-                    g_message("Error parsing startup command: %s",
-                              e->message);
-                    g_error_free(e);
-                    e = NULL;
-                }
-                ok = g_spawn_async(NULL, argv, NULL,
-                                   G_SPAWN_SEARCH_PATH |
-                                   G_SPAWN_DO_NOT_REAP_CHILD,
-                                   NULL, NULL, NULL, &e);
-                if (!g_shell_parse_argv(startup_cmd, NULL, &argv, &e)) {
-                    g_message("Error launching startup command: %s",
-                              e->message);
-                    g_error_free(e);
-                    e = NULL;
-                }
-            }
+            if (startup_cmd) run_startup_cmd();
 
             /* look for parsing errors */
             {
@@ -562,6 +545,30 @@ static void remove_args(gint *argc, gchar **argv, gint index, gint num)
     *argc -= num;
 }
 
+static void run_startup_cmd(void)
+{
+    gchar **argv = NULL;
+    GError *e = NULL;
+    gboolean ok;
+
+    if (!g_shell_parse_argv(startup_cmd, NULL, &argv, &e)) {
+        g_message("Error parsing startup command: %s",
+                  e->message);
+        g_error_free(e);
+        e = NULL;
+    }
+    ok = g_spawn_async(NULL, argv, NULL,
+                       G_SPAWN_SEARCH_PATH |
+                       G_SPAWN_DO_NOT_REAP_CHILD,
+                       NULL, NULL, NULL, &e);
+    if (!g_shell_parse_argv(startup_cmd, NULL, &argv, &e)) {
+        g_message("Error launching startup command: %s",
+                  e->message);
+        g_error_free(e);
+        e = NULL;
+    }
+}
+
 static void parse_env(void)
 {
     const gchar *id;
This page took 0.030789 seconds and 4 git commands to generate.