[Xfce4-commits] <exo:exo-helper-overhaul> Strip the mailto: part from an uri since we work with mailto:%s in the desktop files.

Nick Schermer nick at xfce.org
Thu Aug 27 20:18:01 CEST 2009


Updating branch refs/heads/exo-helper-overhaul
         to c89f6932db63a37827ef5c05e06002d2eeb151ad (commit)
       from 8d82d52e199b8dfc8ef99763d203daaa6c4ed688 (commit)

commit c89f6932db63a37827ef5c05e06002d2eeb151ad
Author: Nick Schermer <nick at xfce.org>
Date:   Thu Aug 27 20:17:00 2009 +0200

    Strip the mailto: part from an uri since we work with mailto:%s in the desktop files.

 exo-helper/exo-helper.c |   31 ++++++++++++++++++-------------
 1 files changed, 18 insertions(+), 13 deletions(-)

diff --git a/exo-helper/exo-helper.c b/exo-helper/exo-helper.c
index 28ff320..9a06daa 100644
--- a/exo-helper/exo-helper.c
+++ b/exo-helper/exo-helper.c
@@ -347,17 +347,18 @@ exo_helper_execute (ExoHelper   *helper,
                     const gchar *parameter,
                     GError     **error)
 {
-  GTimeVal previous;
-  GTimeVal current;
-  gboolean succeed = FALSE;
-  GError  *err = NULL;
-  gchar  **commands;
-  gchar  **argv;
-  gchar   *command;
-  guint    n;
-  gint     status;
-  gint     result;
-  gint     pid;
+  GTimeVal      previous;
+  GTimeVal      current;
+  gboolean      succeed = FALSE;
+  GError       *err = NULL;
+  gchar       **commands;
+  gchar       **argv;
+  gchar        *command;
+  guint         n;
+  gint          status;
+  gint          result;
+  gint          pid;
+  const gchar  *real_parameter = parameter;
 
   // FIXME: startup-notification
 
@@ -369,8 +370,12 @@ exo_helper_execute (ExoHelper   *helper,
   if (G_UNLIKELY (screen == NULL))
     screen = gdk_screen_get_default ();
 
+  /* strip the mailto part if needed */
+  if (real_parameter != NULL && g_str_has_prefix (real_parameter, "mailto:"))
+    real_parameter = parameter + 7;
+
   /* determine the command set to use */
-  commands = (parameter != NULL) ? helper->commands_with_parameter : helper->commands;
+  commands = !exo_str_is_empty (real_parameter) ? helper->commands_with_parameter : helper->commands;
 
   /* verify that we have atleast one command */
   if (G_UNLIKELY (*commands == NULL))
@@ -386,7 +391,7 @@ exo_helper_execute (ExoHelper   *helper,
       g_clear_error (&err);
 
       /* parse the command */
-      command = (parameter != NULL) ? exo_str_replace (commands[n], "%s", parameter) : g_strdup (commands[n]);
+      command = !exo_str_is_empty (real_parameter) ? exo_str_replace (commands[n], "%s", real_parameter) : g_strdup (commands[n]);
       succeed = g_shell_parse_argv (command, NULL, &argv, &err);
       g_free (command);
 



More information about the Xfce4-commits mailing list