]> git.lizzy.rs Git - bspwm.git/blobdiff - src/bspc.c
Only handle stdout closure for subscribers
[bspwm.git] / src / bspc.c
index 5dd807cd0da00ab34fae1d80f4633398f7d168c2..1a99b5acc7a939f7cc39fbafd07b42c89dd02d6b 100644 (file)
@@ -79,6 +79,7 @@ int main(int argc, char *argv[])
        }
 
        int ret = EXIT_SUCCESS, nb;
+       bool subwait = false;
 
        struct pollfd fds[] = {
                {sock_fd, POLLIN, 0},
@@ -93,6 +94,8 @@ int main(int argc, char *argv[])
                                        ret = EXIT_FAILURE;
                                        fprintf(stderr, "%s", rsp + 1);
                                        fflush(stderr);
+                               } else if (rsp[0] == SUBSCRIBE_MESSAGE[0]) {
+                                       subwait = true;
                                } else {
                                        fprintf(stdout, "%s", rsp);
                                        fflush(stdout);
@@ -101,7 +104,7 @@ int main(int argc, char *argv[])
                                break;
                        }
                }
-               if (fds[1].revents & (POLLERR | POLLHUP)) {
+               if (subwait && fds[1].revents & (POLLERR | POLLHUP)) {
                        break;
                }
        }