From 9a5fd9e73456861de6f6194d51893518da365a2c Mon Sep 17 00:00:00 2001 From: Zach DeCook Date: Wed, 26 Jan 2022 12:03:58 -0500 Subject: main: prevent crash on sigpipe This is commonly caused by a bad program in the output chain, e.g. suggpicker | false --- main.c | 6 ++++++ 1 file changed, 6 insertions(+) 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]; -- cgit 1.4.1