From 1a0424b7ff4550ae90ff730bb98d40bface512f3 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 8 Apr 2011 17:02:01 -0400 Subject: [PATCH] Fix another faulty GApplicationCommandline example Several flaws were pointed out by Shaun McCance. We were leaking handled arguments, and we were mishandling the last argument, and we were actually skipping arguments too. https://bugzilla.gnome.org/show_bug.cgi?id=647031 --- gio/tests/gapplication-example-cmdline2.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/gio/tests/gapplication-example-cmdline2.c b/gio/tests/gapplication-example-cmdline2.c index 43512247c..ed8ddcded 100644 --- a/gio/tests/gapplication-example-cmdline2.c +++ b/gio/tests/gapplication-example-cmdline2.c @@ -30,16 +30,20 @@ test_local_cmdline (GApplication *application, argv = *arguments; - for (i = 0; argv[i]; i++) + i = 1; + while (argv[i]) { if (g_str_has_prefix (argv[i], "--local-")) { g_print ("handling argument %s locally\n", argv[i]); - for (j = i + 1; argv[j]; j++) - { - argv[j - 1] = argv[j]; - argv[j] = NULL; - } + g_free (argv[i]); + for (j = i; argv[j]; j++) + argv[j] = argv[j + 1]; + } + else + { + g_print ("not handling argument %s locally\n", argv[i]); + i++; } }