aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--noice.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/noice.c b/noice.c
index 54cedef..0420cc3 100644
--- 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();