[Xfce4-commits] <xfce-utils:master> Fix handling of CLI arguments in terminal (Bug #5478).

Jérôme Guelfucci noreply at xfce.org
Mon Oct 25 20:28:02 CEST 2010


Updating branch refs/heads/master
         to fcdf7d3bfe11e1ef8a8a100fc27624f5bb88d36b (commit)
       from 32fe44d397572654258108291d784b200d6daeb0 (commit)

commit fcdf7d3bfe11e1ef8a8a100fc27624f5bb88d36b
Author: Jérôme Guelfucci <jeromeg at xfce.org>
Date:   Mon Oct 25 20:25:25 2010 +0200

    Fix handling of CLI arguments in terminal (Bug #5478).

 xfrun/xfrun-dialog.c |   25 ++++++++++++-------------
 1 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/xfrun/xfrun-dialog.c b/xfrun/xfrun-dialog.c
index cbd6b62..30af751 100644
--- a/xfrun/xfrun-dialog.c
+++ b/xfrun/xfrun-dialog.c
@@ -502,27 +502,26 @@ xfrun_run_clicked(GtkWidget *widget,
     if(g_str_has_prefix(cmdline, "#"))
       {
         /* Shortcut to open manpages in terminal */
-        new_cmdline = g_strconcat("exo-open --launch TerminalEmulator 'man ",
-                                  cmdline + 1, "'", NULL);
+        new_cmdline = g_strconcat("man ", cmdline + 1, NULL);
         g_free(cmdline);
         cmdline = new_cmdline;
-        /* We already do that */
-        in_terminal = FALSE;
+        /* Make sure this is opened in a terminal */
+        in_terminal = TRUE;
       }
 
     if(in_terminal) {
-        gint i = 0;
+        const gchar *quoted_cmdline;
 
-        argv = g_new0(gchar *, 4);
-        argv[i++] = "xfterm4";
-        argv[i++] = "-e";
-        argv[i++] = cmdline;
-        argv[i++] = NULL;
-    } else {
-        /* error is handled below */
-        g_shell_parse_argv(cmdline, &argc, &argv, &error);
+        quoted_cmdline = g_shell_quote (cmdline);
+        new_cmdline = g_strconcat ("exo-open --launch TerminalEmulator ",
+                                   quoted_cmdline, NULL);
+        g_free(cmdline);
+        cmdline = new_cmdline;
     }
 
+    /* error is handled below */
+    g_shell_parse_argv(cmdline, &argc, &argv, &error);
+
     result = (argv && gdk_spawn_on_screen(gscreen,
                                           dialog->priv->working_directory,
                                           argv, NULL, G_SPAWN_SEARCH_PATH,



More information about the Xfce4-commits mailing list