main.c: ext_check(): escape spaces only if USE_XDG = 1
otherwise unescape spaces ref #5
This commit is contained in:
parent
78cac66790
commit
c9e22f006a
14
src/main.c
14
src/main.c
|
@ -402,8 +402,7 @@ static gboolean url_check (GtkCompletionLine *cl, char * entry_text)
|
||||||
|
|
||||||
|
|
||||||
static char * escape_spaces (char * entry_text)
|
static char * escape_spaces (char * entry_text)
|
||||||
{ // this for EXT handlers: replace " " with "\ "
|
{ // run file with glib: replace " " with "\ "
|
||||||
// it's the only way to make the command run if the filename contains spaces
|
|
||||||
GRegex * regex;
|
GRegex * regex;
|
||||||
char * quoted;
|
char * quoted;
|
||||||
if (!strstr (entry_text, "\\ ")) {
|
if (!strstr (entry_text, "\\ ")) {
|
||||||
|
@ -455,7 +454,7 @@ static gboolean ext_check (GtkCompletionLine *cl, char * entry_text)
|
||||||
}
|
}
|
||||||
else //-------- custom EXTension handlers
|
else //-------- custom EXTension handlers
|
||||||
{
|
{
|
||||||
// example: file.html -> `xdg-open %s` -> `xdg-open file.html`
|
// example: file.html | xdg-open '%s' -> xdg-open 'file.html'
|
||||||
char * cmd, * quoted;
|
char * cmd, * quoted;
|
||||||
char * ext = strrchr (entry_text, '.');
|
char * ext = strrchr (entry_text, '.');
|
||||||
char * handler_format = NULL;
|
char * handler_format = NULL;
|
||||||
|
@ -463,11 +462,12 @@ static gboolean ext_check (GtkCompletionLine *cl, char * entry_text)
|
||||||
handler_format = config_get_handler_for_extension (ext);
|
handler_format = config_get_handler_for_extension (ext);
|
||||||
}
|
}
|
||||||
if (handler_format) {
|
if (handler_format) {
|
||||||
quoted = escape_spaces (entry_text);
|
quoted = g_strcompress (entry_text); /* unescape chars */
|
||||||
if (strchr (handler_format, '%')) { // xdg-open %s
|
if (strstr (handler_format, "%s")) {
|
||||||
cmd = g_strdup_printf (handler_format, quoted);
|
cmd = g_strdup_printf (handler_format, quoted);
|
||||||
} else { // xdg-open
|
}
|
||||||
cmd = g_strconcat (handler_format, " ", quoted, NULL);
|
else { // xdg-open
|
||||||
|
cmd = g_strconcat (handler_format, " '", quoted, "'", NULL);
|
||||||
}
|
}
|
||||||
history_append (cl->hist, entry_text);
|
history_append (cl->hist, entry_text);
|
||||||
run_the_command (cmd);
|
run_the_command (cmd);
|
||||||
|
|
Loading…
Reference in New Issue