mhshow: suppress pause actions if stdout isn't a tty
[mmh] / uip / mhshowsbr.c
index 6f511f3..5abd67d 100644 (file)
@@ -12,7 +12,7 @@
 #include <h/signals.h>
 #include <h/md5.h>
 #include <errno.h>
-#include <setjmp.h>
+#include <h/m_setjmp.h>
 #include <signal.h>
 #include <h/mts.h>
 #include <h/tws.h>
@@ -533,15 +533,15 @@ 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);
-           if ((intr = sigsetjmp (intrenv, 1)) == OK) {
+           if ((intr = m_sigsetjmp (intrenv, 1)) == OK) {
                fflush (stdout);
                prompt[0] = 0;
                read (fileno (stdout), prompt, sizeof(prompt));
@@ -564,7 +564,7 @@ show_content_aux2 (CT ct, int serial, int alternate, char *cracked, char *buffer
 
     fflush (stdout);
 
-    for (i = 0; (child_id = vfork ()) == NOTOK && i < 5; i++)
+    for (i = 0; (child_id = vfork()) == NOTOK && i < 5; i++)
        sleep (5);
     switch (child_id) {
        case NOTOK: