sndioctl: Flush stdout before polling
authorratchov <ratchov@openbsd.org>
Wed, 3 Mar 2021 09:40:43 +0000 (09:40 +0000)
committerratchov <ratchov@openbsd.org>
Wed, 3 Mar 2021 09:40:43 +0000 (09:40 +0000)
If stdout is not flushed, output is not seen by programs using
sndioctl through a pipe (ex. "sndioctl -m | cat" displays nothing).

Patch from Erico Nogueira <ericonr@disroot.org>, idea
from Duncan Overbruck <mail@duncano.de>

usr.bin/sndioctl/sndioctl.c

index d95eb32..aa174e7 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: sndioctl.c,v 1.15 2020/06/28 05:21:39 ratchov Exp $   */
+/*     $OpenBSD: sndioctl.c,v 1.16 2021/03/03 09:40:43 ratchov Exp $   */
 /*
  * Copyright (c) 2014-2020 Alexandre Ratchov <alex@caoua.org>
  *
@@ -1022,6 +1022,7 @@ main(int argc, char **argv)
                        exit(1);
                }
                for (;;) {
+                       fflush(stdout);
                        nfds = sioctl_pollfd(hdl, pfds, POLLIN);
                        if (nfds == 0)
                                break;