diff options
Diffstat (limited to 'shell')
| -rw-r--r-- | shell/ev-application.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/shell/ev-application.c b/shell/ev-application.c index 57f1b922..37d35eaa 100644 --- a/shell/ev-application.c +++ b/shell/ev-application.c @@ -221,18 +221,22 @@ ev_spawn (const char *uri, /* Page label or index */ if (dest) { switch (ev_link_dest_get_dest_type (dest)) { - case EV_LINK_DEST_TYPE_PAGE_LABEL: - g_string_append_printf (cmd, " --page-label=%s", - ev_link_dest_get_page_label (dest)); + case EV_LINK_DEST_TYPE_PAGE_LABEL: { + gchar *quoted = g_shell_quote (ev_link_dest_get_page_label (dest)); + g_string_append_printf (cmd, " --page-label=%s", quoted); + g_free (quoted); break; + } case EV_LINK_DEST_TYPE_PAGE: g_string_append_printf (cmd, " --page-index=%d", ev_link_dest_get_page (dest) + 1); break; - case EV_LINK_DEST_TYPE_NAMED: - g_string_append_printf (cmd, " --named-dest=%s", - ev_link_dest_get_named_dest (dest)); + case EV_LINK_DEST_TYPE_NAMED: { + gchar *quoted = g_shell_quote (ev_link_dest_get_named_dest (dest)); + g_string_append_printf (cmd, " --named-dest=%s", quoted); + g_free (quoted); break; + } default: break; } @@ -240,7 +244,9 @@ ev_spawn (const char *uri, /* Find string */ if (search_string) { - g_string_append_printf (cmd, " --find=%s", search_string); + gchar *quoted = g_shell_quote (search_string); + g_string_append_printf (cmd, " --find=%s", quoted); + g_free (quoted); } /* Mode */ |
