Merge pull request #482 from bebehei/execvp-errorhandler
Handle execvp error in open_browser
This commit is contained in:
commit
d25404d590
13
src/menu.c
13
src/menu.c
@ -115,10 +115,15 @@ void open_browser(const char *in)
|
|||||||
if (browser_pid2) {
|
if (browser_pid2) {
|
||||||
exit(0);
|
exit(0);
|
||||||
} else {
|
} else {
|
||||||
char *browser_cmd =
|
char *browser_cmd = g_strconcat(settings.browser, " ", url, NULL);
|
||||||
string_append(settings.browser, url, " ");
|
|
||||||
char **cmd = g_strsplit(browser_cmd, " ", 0);
|
char **cmd = g_strsplit(browser_cmd, " ", 0);
|
||||||
execvp(cmd[0], cmd);
|
execvp(cmd[0], cmd);
|
||||||
|
// execvp won't return if it's successful
|
||||||
|
// so, if we're here, it's definitely an error
|
||||||
|
fprintf(stderr, "Warning: failed to execute '%s': %s\n",
|
||||||
|
settings.browser,
|
||||||
|
strerror(errno));
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -238,6 +243,10 @@ void context_menu(void)
|
|||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
execvp(settings.dmenu_cmd[0], settings.dmenu_cmd);
|
execvp(settings.dmenu_cmd[0], settings.dmenu_cmd);
|
||||||
|
fprintf(stderr, "Warning: failed to execute '%s': %s\n",
|
||||||
|
settings.dmenu,
|
||||||
|
strerror(errno));
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
} else {
|
} else {
|
||||||
close(child_io[0]);
|
close(child_io[0]);
|
||||||
close(parent_io[1]);
|
close(parent_io[1]);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user