summary refs log tree commit diff
diff options
context:
space:
mode:
authorZach DeCook <zachdecook@librem.one>2022-01-26 12:03:58 -0500
committerZach DeCook <zachdecook@librem.one>2024-01-11 22:00:30 -0500
commit9a5fd9e73456861de6f6194d51893518da365a2c (patch)
tree405c072a5db3493ae3a4a5bf621fd7ba73aff1f0
parentfd0edc9a694e22cbd00611f111309ee78e535f93 (diff)
downloadsuggpicker-9a5fd9e73456861de6f6194d51893518da365a2c.tar.gz
main: prevent crash on sigpipe
This is commonly caused by a bad program in the output chain, e.g.

suggpicker | false
-rw-r--r--main.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/main.c b/main.c
index ad9ffef..9a0d395 100644
--- a/main.c
+++ b/main.c
@@ -408,6 +408,11 @@ handle_input(FILE *fd, struct key *sugg, struct kbd *kb) {
 	free(line);
 }
 
+void
+pipewarn(int sigint) {
+	fprintf(stderr, "suggpicker: cannot pipe data out.\n");
+}
+
 int
 main(int argc, char **argv) {
 	/* parse command line arguments */
@@ -497,6 +502,7 @@ main(int argc, char **argv) {
 	}
 
 	signal(SIGUSR1, hide);
+	signal(SIGPIPE, pipewarn);
 
 	// We need a more complicated event loop than wayland's default.
 	struct pollfd fds[2];