X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=openbox%2Fopenbox.c;h=53299873dfc7b94b6d7cf079a5ffae0b45eb4bad;hb=2c507a72070c2eba4a7bfa743a2b6d330539711f;hp=633796418f26c499c49a9153ec0108f4a295178a;hpb=1bf9de380991206d4afa104cd31c567583f288c2;p=chaz%2Fopenbox diff --git a/openbox/openbox.c b/openbox/openbox.c index 63379641..53299873 100644 --- a/openbox/openbox.c +++ b/openbox/openbox.c @@ -109,7 +109,7 @@ gint main(gint argc, gchar **argv) /* initialize the locale */ if (!setlocale(LC_ALL, "")) - g_message(_("Couldn't set locale from environment.")); + g_message("Couldn't set locale from environment."); bindtextdomain(PACKAGE_NAME, LOCALEDIR); bind_textdomain_codeset(PACKAGE_NAME, "UTF-8"); textdomain(PACKAGE_NAME); @@ -379,19 +379,27 @@ gint main(gint argc, gchar **argv) } /* we remove the session arguments from argv, so put them back */ - if (ob_sm_save_file != NULL) { - guint l = g_strv_length(argv); - argv = g_renew(gchar*, argv, l+2); - argv[l] = g_strdup("--sm-save-file"); - argv[l+1] = ob_sm_save_file; - argv[l+2] = NULL; - } - if (ob_sm_id != NULL) { - guint l = g_strv_length(argv); - argv = g_renew(gchar*, argv, l+2); - argv[l] = g_strdup("--sm-client-id"); - argv[l+1] = ob_sm_id; - argv[l+2] = NULL; + if (ob_sm_save_file != NULL || ob_sm_id != NULL) { + gchar **nargv; + gint i, l; + + l = argc + + (ob_sm_save_file != NULL ? 2 : 0) + + (ob_sm_id != NULL ? 2 : 0); + nargv = g_new0(gchar*, l+1); + for (i = 0; i < argc; ++i) + nargv[i] = argv[i]; + + if (ob_sm_save_file != NULL) { + nargv[i++] = g_strdup("--sm-save-file"); + nargv[i++] = ob_sm_save_file; + } + if (ob_sm_id != NULL) { + nargv[i++] = g_strdup("--sm-client-id"); + nargv[i++] = ob_sm_id; + } + g_assert(i == l); + argv = nargv; } /* re-run me */