From: markus schnalke <meillo@marmaro.de>
Date: Thu, 15 Jan 2015 20:13:08 +0000 (+0100)
Subject: whatnow: No need to fork
X-Git-Tag: mmh-0.2-RC1~66
X-Git-Url: http://git.marmaro.de/?a=commitdiff_plain;h=edfe67020b9039e59e318cfc7831e033bd3e2615;p=mmh

whatnow: No need to fork

Plus refactoring.
---

diff --git a/uip/whatnow.c b/uip/whatnow.c
index 914e2989..163a02ec 100644
--- 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)
 {
-	pid_t child_id;
-	int vecp;
+	int vecp = 0;
 	char *vec[MAXARGS];
 
-	context_save();  /* save the context file */
+	context_save();
 	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);
 }