Don't quote commands containing tokens
This commit is contained in:
parent
4073c14546
commit
a0b2020550
3 changed files with 12 additions and 6 deletions
|
@ -491,7 +491,7 @@ addons_open_in_editor_clicked_cb (GtkWidget* toolitem,
|
||||||
|
|
||||||
g_object_get (settings, "text-editor", &text_editor, NULL);
|
g_object_get (settings, "text-editor", &text_editor, NULL);
|
||||||
if (text_editor && *text_editor)
|
if (text_editor && *text_editor)
|
||||||
sokoke_spawn_program (text_editor, FALSE, element->fullpath, TRUE);
|
sokoke_spawn_program (text_editor, TRUE, element->fullpath, TRUE);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gchar* element_uri = g_filename_to_uri (element->fullpath, NULL, NULL);
|
gchar* element_uri = g_filename_to_uri (element->fullpath, NULL, NULL);
|
||||||
|
|
|
@ -3498,7 +3498,7 @@ _action_source_view_activate (GtkAction* action,
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sokoke_spawn_program (text_editor, FALSE, filename, TRUE);
|
sokoke_spawn_program (text_editor, TRUE, filename, TRUE);
|
||||||
g_free (filename);
|
g_free (filename);
|
||||||
}
|
}
|
||||||
g_free (text_editor);
|
g_free (text_editor);
|
||||||
|
|
|
@ -408,15 +408,15 @@ sokoke_prepare_command (const gchar* command,
|
||||||
gchar* real_command;
|
gchar* real_command;
|
||||||
gchar* command_ready;
|
gchar* command_ready;
|
||||||
|
|
||||||
real_command = quote_command ? g_shell_quote (command) : g_strdup (command);
|
|
||||||
|
|
||||||
/* .desktop files accept %u, %U, %f, %F as URI/ filename, we treat it like %s */
|
/* .desktop files accept %u, %U, %f, %F as URI/ filename, we treat it like %s */
|
||||||
|
real_command = g_strdup (command);
|
||||||
if ((uri_format = strstr (real_command, "%u"))
|
if ((uri_format = strstr (real_command, "%u"))
|
||||||
|| (uri_format = strstr (real_command, "%U"))
|
|| (uri_format = strstr (real_command, "%U"))
|
||||||
|| (uri_format = strstr (real_command, "%f"))
|
|| (uri_format = strstr (real_command, "%f"))
|
||||||
|| (uri_format = strstr (real_command, "%F")))
|
|| (uri_format = strstr (real_command, "%F")))
|
||||||
uri_format[1] = 's';
|
uri_format[1] = 's';
|
||||||
|
|
||||||
|
|
||||||
if (strstr (real_command, "%s"))
|
if (strstr (real_command, "%s"))
|
||||||
{
|
{
|
||||||
gchar* argument_quoted = quote_argument ? g_shell_quote (argument) : g_strdup (argument);
|
gchar* argument_quoted = quote_argument ? g_shell_quote (argument) : g_strdup (argument);
|
||||||
|
@ -425,12 +425,18 @@ sokoke_prepare_command (const gchar* command,
|
||||||
}
|
}
|
||||||
else if (quote_argument)
|
else if (quote_argument)
|
||||||
{
|
{
|
||||||
|
gchar* quoted_command = quote_command ? g_shell_quote (real_command) : g_strdup (real_command);
|
||||||
gchar* argument_quoted = g_shell_quote (argument);
|
gchar* argument_quoted = g_shell_quote (argument);
|
||||||
command_ready = g_strconcat (real_command, " ", argument_quoted, NULL);
|
command_ready = g_strconcat (quoted_command, " ", argument_quoted, NULL);
|
||||||
g_free (argument_quoted);
|
g_free (argument_quoted);
|
||||||
|
g_free (quoted_command);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
command_ready = g_strconcat (real_command, " ", argument, NULL);
|
{
|
||||||
|
gchar* quoted_command = quote_command ? g_shell_quote (real_command) : g_strdup (real_command);
|
||||||
|
command_ready = g_strconcat (quoted_command, " ", argument, NULL);
|
||||||
|
g_free (quoted_command);
|
||||||
|
}
|
||||||
g_free (real_command);
|
g_free (real_command);
|
||||||
return command_ready;
|
return command_ready;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue