noice

small file browser
git clone git://git.2f30.org/noice
Log | Files | Refs | README | LICENSE

commit 955152417fd24026dfd5582068cb50219419b137
parent 3f95571b3892b3faaaf94c3571ac9669f1d1fd91
Author: lostd <lostd@2f30.org>
Date:   Mon, 13 Oct 2014 10:22:05 +0300

Properly wait for processes to terminate

Diffstat:
Mnoice.c | 13++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/noice.c b/noice.c @@ -427,6 +427,7 @@ begin: char *tmp; regex_t re; struct history *hist; + int status; redraw: nlines = MIN(LINES - 4, n); @@ -560,10 +561,16 @@ nochange: /* Run program */ pid = fork(); - if (pid == 0) + if (pid == 0) { execlp(bin, bin, pathnew, NULL); - else - waitpid(pid, NULL, 0); + _exit(0); + } else { + /* Ignore interruptions */ + while (waitpid(pid, &status, + 0) == -1) + DPRINTF_D(status); + DPRINTF_D(pid); + } initcurses();