mhl: Don't invoke the pager anymore.
authormarkus schnalke <meillo@marmaro.de>
Sat, 14 Apr 2012 18:13:04 +0000 (20:13 +0200)
committermarkus schnalke <meillo@marmaro.de>
Sat, 14 Apr 2012 18:13:04 +0000 (20:13 +0200)
As show(1) will soon be replaced by mhshow(1), mhl will be hidden behind
mhshow(1), which does invoke a pager now itself. Hence, no need for mhl(1)
to deal with it.

man/mhl.man1
uip/mhl.c

index f9536c0..95c5405 100644 (file)
@@ -27,13 +27,6 @@ messages.  It is the default method of displaying text messages for
 (it is the default
 .IR showproc ).
 .PP
-If
-.B mhl
-is outputting to a terminal, then
-.B mhl
-will cause a pager to be placed between the terminal and
-.BR mhl .
-.PP
 The
 .B \-width
 .I width
@@ -229,12 +222,7 @@ appropriate formatfield variable string.
 .fi
 
 .SH "PROFILE COMPONENTS"
-.fc ^ ~
-.nf
-.ta 2.4i
-.ta \w'ExtraBigProfileName  'u
-^Pager:~^Program to use as interactive front\-end
-.fi
+none
 
 .SH "SEE ALSO"
 show(1), ap(8), dp(8)
index 58c7d2b..2c1d907 100644 (file)
--- a/uip/mhl.c
+++ b/uip/mhl.c
@@ -172,10 +172,6 @@ static int issue = 0;
 static int exitstat = 0;
 static int mhldebug = 0;
 
-#define PITTY  (-1)
-#define NOTTY  0
-static int ontty = NOTTY;
-
 static unsigned int column;
 
 static int lm;
@@ -230,13 +226,8 @@ static char *oneline(char *, long);
 static void putstr(char *);
 static void putch(char);
 static void intrser(int);
-static void pipeser(int);
-static void quitser(int);
 static void mhladios(char *, char *, ...);
 static void mhldone(int);
-static void m_popen(char *);
-
-void m_pclose(void);
 
 int sc_width(void);  /* from termsbr.c */
 
@@ -340,18 +331,6 @@ main(int argc, char **argv)
                files[vecp++] = cp;
        }
 
-       if (isatty(fileno(stdout))) {
-               if (mhl_action) {
-                       SIGNAL(SIGINT, SIG_IGN);
-                       SIGNAL2(SIGQUIT, quitser);
-               }
-               SIGNAL2(SIGPIPE, pipeser);
-               m_popen(defaultpager);
-               ontty = PITTY;
-       } else {
-               ontty = NOTTY;
-       }
-
        mhl_format(form ? form : mhlformat, width);
 
        if (vecp == 0) {
@@ -386,9 +365,6 @@ main(int argc, char **argv)
                adios("output", "error writing");
        }
 
-       if (ontty == PITTY)
-               m_pclose();
-
        return exitstat;
 }
 
@@ -677,13 +653,11 @@ process(char *fname, int ofilen, int ofilec)
                        fname = "(stdin)";
                        fp = stdin;
                }
-               if (ontty != PITTY)
-                       SIGNAL(SIGINT, intrser);
+               SIGNAL(SIGINT, intrser);
                mhlfile(fp, fname, ofilen, ofilec);
                /* FALL THROUGH! */
        default:
-               if (ontty != PITTY)
-                       SIGNAL(SIGINT, SIG_IGN);
+               SIGNAL(SIGINT, SIG_IGN);
                if (mhl_action == NULL && fp != stdin)
                        fclose(fp);
                if (holder.c_text) {
@@ -1219,22 +1193,6 @@ intrser(int i)
 }
 
 
-static void
-pipeser(int i)
-{
-       done(NOTOK);
-}
-
-
-static void
-quitser(int i)
-{
-       putchar('\n');
-       fflush(stdout);
-       done(NOTOK);
-}
-
-
 #undef adios
 #undef done
 
@@ -1259,68 +1217,3 @@ mhldone(int status)
        else
                done(exitstat);
 }
-
-
-static int m_pid = NOTOK;
-static int sd = NOTOK;
-
-static void
-m_popen(char *name)
-{
-       int pd[2];
-
-       if (mhl_action && (sd = dup(fileno(stdout))) == NOTOK)
-               adios("standard output", "unable to dup()");
-
-       if (pipe(pd) == NOTOK)
-               adios("pipe", "unable to");
-
-       switch (m_pid = fork()) {
-       case NOTOK:
-               adios("fork", "unable to");
-
-       case OK:
-               SIGNAL(SIGINT, SIG_DFL);
-               SIGNAL(SIGQUIT, SIG_DFL);
-
-               close(pd[1]);
-               if (pd[0] != fileno(stdin)) {
-                       dup2(pd[0], fileno(stdin));
-                       close(pd[0]);
-               }
-               execlp(name, mhbasename(name), NULL);
-               fprintf(stderr, "unable to exec ");
-               perror(name);
-               _exit(-1);
-
-       default:
-               close(pd[0]);
-               if (pd[1] != fileno(stdout)) {
-                       dup2(pd[1], fileno(stdout));
-                       close(pd[1]);
-               }
-       }
-}
-
-
-void
-m_pclose(void)
-{
-       if (m_pid == NOTOK)
-               return;
-
-       if (sd != NOTOK) {
-               fflush(stdout);
-               if (dup2(sd, fileno(stdout)) == NOTOK)
-                       adios("standard output", "unable to dup2()");
-
-               clearerr(stdout);
-               close(sd);
-               sd = NOTOK;
-       }
-       else
-               fclose(stdout);
-
-       pidwait(m_pid, OK);
-       m_pid = NOTOK;
-}