diff options
author | Marco Peereboom <marco@conformal.com> | 2012-01-31 14:46:00 -0600 |
---|---|---|
committer | Marco Peereboom <marco@conformal.com> | 2012-01-31 14:46:18 -0600 |
commit | 4d7a10faacb9f77dd7535bc73f5c3e370a921626 (patch) | |
tree | d59eafee46de49271bfed7b81231a02d1a2b5014 /xxxterm.c | |
parent | d0d266870e92acc13541b8bce55a60766560cbbb (diff) | |
download | xombrero-4d7a10faacb9f77dd7535bc73f5c3e370a921626.tar.gz |
abstract fork and exec
Diffstat (limited to 'xxxterm.c')
-rw-r--r-- | xxxterm.c | 64 |
1 files changed, 6 insertions, 58 deletions
diff --git a/xxxterm.c b/xxxterm.c index fbc21b4..3c47fa4 100644 --- a/xxxterm.c +++ b/xxxterm.c @@ -1316,25 +1316,7 @@ run_page_script(struct tab *t, struct karg *args) else strlcpy(script, tmp, sizeof script); - switch (fork()) { - case -1: - show_oops(t, "can't fork to run script"); - return (1); - /* NOTREACHED */ - case 0: - break; - default: - return (0); - } - - /* child */ - execlp(script, script, uri, (void *)NULL); - - _exit(0); - - /* NOTREACHED */ - - return (0); + return (fork_exec(t, script, uri, "can't launch external script")); } int @@ -4323,25 +4305,9 @@ run_mimehandler(struct tab *t, char *mime_type, WebKitNetworkRequest *request) if (m->mt_download) return (1); - switch (fork()) { - case -1: - show_oops(t, "can't fork mime handler"); - return (1); - /* NOTREACHED */ - case 0: - break; - default: - return (0); - } - - /* child */ - execlp(m->mt_action, m->mt_action, - webkit_network_request_get_uri(request), (void *)NULL); - - _exit(0); - - /* NOTREACHED */ - return (0); + return (fork_exec(t, m->mt_action, + webkit_network_request_get_uri(request), + "can't launch MIME handler")); } char * @@ -4375,26 +4341,8 @@ run_download_mimehandler(char *mime_type, char *file) if (m == NULL) return (1); - switch (fork()) { - case -1: - show_oops(NULL, "can't fork download mime handler"); - return (1); - /* NOTREACHED */ - case 0: - break; - default: - return (0); - } - - /* child */ - if (g_str_has_prefix(file, "file://")) - file += strlen("file://"); - execlp(m->mt_action, m->mt_action, file, (void *)NULL); - - _exit(0); - - /* NOTREACHED */ - return (0); + return (fork_exec(NULL, m->mt_action, file, + "can't launch download MIME handler")); } void |