]> Dogcows Code - chaz/openbox/commitdiff
always use the session id from the session manager when setting the restart property
authorDana Jansens <danakj@orodu.net>
Sat, 21 Jun 2003 16:37:39 +0000 (16:37 +0000)
committerDana Jansens <danakj@orodu.net>
Sat, 21 Jun 2003 16:37:39 +0000 (16:37 +0000)
openbox/openbox.c

index c192b4d07ec25b6efd7082cbe71c024b0afa0eee..70b65e40d511eacf060fa4cf851589e62ae8b59c 100644 (file)
@@ -330,7 +330,7 @@ static void sm_startup(int argc, char **argv)
         SmProp *props[7];
         gulong hint, pri;
         gchar pid[32];
-        gint i;
+        gint i, j;
         gboolean has_id;
 
         for (i = 1; i < argc - 1; ++i)
@@ -340,27 +340,29 @@ static void sm_startup(int argc, char **argv)
 
         prop_cmd.vals = g_new(SmPropValue, (has_id ? argc-2 : argc));
         prop_cmd.num_vals = (has_id ? argc-2 : argc);
-        for (i = 0; i < argc; ++i) {
+        for (i = 0, j = 0; i < argc; ++i, ++j) {
             if (strcmp (argv[i], "-sm-client-id") == 0) {
-                ++i; /* skip the next as well */
+                ++i, --j; /* skip the next as well, keep j where it is */
             } else {
-                prop_cmd.vals[i].value = argv[i];
-                prop_cmd.vals[i].length = strlen(argv[i]);
+                prop_cmd.vals[j].value = argv[i];
+                prop_cmd.vals[j].length = strlen(argv[i]);
             }
         }
 
         prop_res.vals = g_new(SmPropValue, (has_id ? argc : argc+2));
         prop_res.num_vals = (has_id ? argc : argc+2);
-        for (i = 0; i < argc; ++i) {
-            prop_res.vals[i].value = argv[i];
-            prop_res.vals[i].length = strlen(argv[i]);
-        }
-        if (!has_id) {
-            prop_res.vals[i].value = "-sm-client-id";
-            prop_res.vals[i++].length = strlen("-sm-client-id");
-            prop_res.vals[i].value = ob_sm_id;
-            prop_res.vals[i++].length = strlen(ob_sm_id);
+        for (i = 0, j = 0; i < argc; ++i, ++j) { 
+            if (strcmp (argv[i], "-sm-client-id") == 0) {
+                ++i, --j; /* skip the next as well, keep j where it is */
+            } else {
+                prop_res.vals[j].value = argv[i];
+                prop_res.vals[j].length = strlen(argv[i]);
+            }
         }
+        prop_res.vals[j].value = "-sm-client-id";
+        prop_res.vals[j++].length = strlen("-sm-client-id");
+        prop_res.vals[j].value = ob_sm_id;
+        prop_res.vals[j++].length = strlen(ob_sm_id);
 
         val_prog.value = argv[0];
         val_prog.length = strlen(argv[0]);
This page took 0.024309 seconds and 4 git commands to generate.