Commit Diff


commit - 73964625c8910400d965b29575616837b6ac07a5
commit + 13ffdf3b3762b05ed567c284e926cef7d912a76f
blob - 173564451ae91a2d47e86ee89e3d05a7d4b05c66
blob + aa6866e4b6ac5538312e8c5eb9d39107ee620a1b
--- vias.c
+++ vias.c
@@ -362,7 +362,7 @@ main(int argc, char **argv)
 	char *file;
 	char **eargv;
 	int status;
-	pid_t ret;
+	pid_t ret, vipid;
 
 	setprogname("vias");
 
@@ -460,7 +460,7 @@ main(int argc, char **argv)
 	if (eargv[0] == NULL || *(eargv[0]) == '\0')
 		eargv[0] = "vi";
 
-	switch (fork()) {
+	switch ((vipid = fork())) {
 	case -1:
 		unlink(tmpfile);
 		err(1, "fork failed");
@@ -478,7 +478,8 @@ main(int argc, char **argv)
 		if (pledge("stdio cpath", NULL) == -1)
 			err(1, "pledge");
 
-		while ((ret = wait(&status)) == -1 && errno == EINTR)
+		while ((ret = waitpid(vipid, &status, 0)) == -1 &&
+		    errno == EINTR)
 			;
 		if (ret == -1)
 			err(1, "wait failed: Temporary file saved at %s",