summary refs log tree commit diff
path: root/bin/qf.c
diff options
context:
space:
mode:
Diffstat (limited to 'bin/qf.c')
-rw-r--r--bin/qf.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/bin/qf.c b/bin/qf.c
index afa7eced..d0d3acf4 100644
--- a/bin/qf.c
+++ b/bin/qf.c
@@ -17,6 +17,7 @@
 #include <ctype.h>
 #include <curses.h>
 #include <err.h>
+#include <errno.h>
 #include <fcntl.h>
 #include <poll.h>
 #include <regex.h>
@@ -182,7 +183,9 @@ static void edit(struct Line line) {
 		err(127, "%s", editor);
 	}
 	int status;
-	pid = waitpid(pid, &status, 0);
+	do {
+		pid = waitpid(pid, &status, 0);
+	} while (pid < 0 && errno == EINTR);
 	if (pid < 0) err(1, "waitpid");
 }