]> Sergey Matveev's repositories - nnn.git/commitdiff
Revert "Fix #225"
authorArun Prakash Jana <engineerarun@gmail.com>
Thu, 25 Apr 2019 15:41:35 +0000 (21:11 +0530)
committerArun Prakash Jana <engineerarun@gmail.com>
Thu, 25 Apr 2019 15:41:35 +0000 (21:11 +0530)
This reverts commit 32dde3390acf4f3cfcd9367a8875699e675db97b.

src/nnn.c

index 5fb992e14bb4d712752c5fceb25acc07aa0ddca3..d154406091442826511bb6b9b582b7d634094b01 100644 (file)
--- a/src/nnn.c
+++ b/src/nnn.c
@@ -936,15 +936,7 @@ static int join(pid_t p, uchar flag)
        if (!(flag & F_NOWAIT)) {
                /* wait for the child to exit */
                do {
-                       /* Exit if parent has exited */
-                       if (getppid() == 1) {
-                               /* Kill child */
-                               kill(p, SIGKILL);
-
-                               /* Exit */
-                               _exit(0);
-                       }
-               } while (waitpid(p, &status, WNOHANG) <= 0);
+               } while (waitpid(p, &status, 0) == -1);
 
                if (WIFEXITED(status)) {
                        status = WEXITSTATUS(status);
@@ -1008,8 +1000,6 @@ static int spawn(char *file, char *arg1, char *arg2, const char *dir, uchar flag
                exitcurses();
 
        pid = xfork(flag);
-
-       /* Child */
        if (pid == 0) {
                if (dir && chdir(dir) == -1)
                        _exit(1);
@@ -1025,19 +1015,18 @@ static int spawn(char *file, char *arg1, char *arg2, const char *dir, uchar flag
 
                execvp(*argv, argv);
                _exit(1);
-       }
+       } else {
+               retstatus = join(pid, flag);
 
-       /* Parent */
-       retstatus = join(pid, flag);
+               DPRINTF_D(pid);
+               if (flag & F_NORMAL) {
+                       nonl();
+                       noecho();
+               }
 
-       DPRINTF_D(pid);
-       if (flag & F_NORMAL) {
-               nonl();
-               noecho();
+               free(cmd);
        }
 
-       free(cmd);
-
        return retstatus;
 }