mhshow: suppress pause actions if stdout isn't a tty
authorPaul Fox <pgf@foxharp.boston.ma.us>
Sat, 11 Feb 2012 17:41:30 +0000 (12:41 -0500)
committerKen Hornstein <kenh@pobox.com>
Sun, 12 Feb 2012 01:18:22 +0000 (20:18 -0500)
previously, "mhshow | cat" would both print a "Press return" prompt
to, and attempt to read from, its piped output fd.

uip/mhshowsbr.c

index c60acb9..5abd67d 100644 (file)
@@ -533,11 +533,11 @@ show_content_aux2 (CT ct, int serial, int alternate, char *cracked, char *buffer
        else
            list_switch (ct, -1, 1, 0, 0);
 
-       if (xpause && SOprintf ("Press <return> to show content..."))
-           printf ("Press <return> to show content...");
-
-       if (xpause) {
+       if (xpause && isatty (fileno (stdout))) {
            int intr;
+
+           if (SOprintf ("Press <return> to show content..."))
+               printf ("Press <return> to show content...");
            SIGNAL_HANDLER istat;
 
            istat = SIGNAL (SIGINT, intrser);