diff --git a/src/menu.c b/src/menu.c index 9699b4b..4e2389d 100644 --- a/src/menu.c +++ b/src/menu.c @@ -115,10 +115,15 @@ void open_browser(const char *in) if (browser_pid2) { exit(0); } else { - char *browser_cmd = - string_append(settings.browser, url, " "); + char *browser_cmd = g_strconcat(settings.browser, " ", url, NULL); char **cmd = g_strsplit(browser_cmd, " ", 0); 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); } 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 { close(child_io[0]); close(parent_io[1]);