projects
/
mmh
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
a546ac5
)
whatnow: No need to fork
author
markus schnalke
<meillo@marmaro.de>
Thu, 15 Jan 2015 20:13:08 +0000
(21:13 +0100)
committer
markus schnalke
<meillo@marmaro.de>
Thu, 15 Jan 2015 20:13:08 +0000
(21:13 +0100)
Plus refactoring.
uip/whatnow.c
patch
|
blob
|
history
diff --git
a/uip/whatnow.c
b/uip/whatnow.c
index
914e298
..
163a02e
100644
(file)
--- a/
uip/whatnow.c
+++ b/
uip/whatnow.c
@@
-565,36
+565,22
@@
editfile(char **ed, char **arg, char *file, int use)
static int
sendfile(char **arg, char *file)
{
static int
sendfile(char **arg, char *file)
{
- pid_t child_id;
- int vecp;
+ int vecp = 0;
char *vec[MAXARGS];
char *vec[MAXARGS];
- context_save(); /* save the context file */
+ context_save();
fflush(stdout);
fflush(stdout);
- switch (child_id = fork()) {
- case NOTOK:
- advise(NULL, "unable to fork, so sending directly...");
- /* fall */
- case OK:
- vecp = 0;
- vec[vecp++] = "send";
- if (arg)
- while (*arg)
- vec[vecp++] = *arg++;
- vec[vecp++] = file;
- vec[vecp] = NULL;
-
- execvp("send", vec);
- fprintf(stderr, "%s: unable to exec ", invo_name);
- perror("send");
- _exit(-1);
-
- default:
- if (pidwait(child_id, OK) == 0)
- done(0);
- return 1;
+ vec[vecp++] = "send";
+ while (arg && *arg) {
+ vec[vecp++] = *arg++;
}
}
+ vec[vecp++] = file;
+ vec[vecp] = NULL;
+ execvp(*vec, vec);
+ fprintf(stderr, "%s: unable to exec ", invo_name);
+ perror("send");
+ _exit(-1);
}
}