Removed the -clear switch from mhl.
authormarkus schnalke <meillo@marmaro.de>
Fri, 10 Feb 2012 15:43:55 +0000 (16:43 +0100)
committermarkus schnalke <meillo@marmaro.de>
Fri, 10 Feb 2012 15:43:55 +0000 (16:43 +0100)
This stuff is the task of the pager, not the one of the formater mhl.

man/mh-chart.man1
man/mh-profile.man5
man/mhl.man1
uip/mhl.c
uip/repl.c
uip/termsbr.c

index 1dbf20f..ba2ab36 100644 (file)
@@ -254,7 +254,6 @@ is equivalent to
 
 .HP 5
 .B mhl
-.RB [ \-clear " | " \-noclear ]
 .RB [ \-folder
 .IR +folder ]
 .RB [ \-form
index 57e27cb..28fae32 100644 (file)
@@ -684,8 +684,7 @@ these tell
 .B scan
 and
 .B mhl
-how to clear your terminal, and how
-many columns wide your terminal is.  They also tell
+how many columns wide your terminal is.  They also tell
 .B mhl
 how many
 lines long your terminal screen is.
index de44448..9f84170 100644 (file)
@@ -8,7 +8,6 @@ mhl \- produce formatted listings of nmh messages
 .HP 5
 .na
 .B mhl
-.RB [ \-clear " | " \-noclear ]
 .RB [ \-folder
 .IR +folder ]
 .RB [ \-form
@@ -34,32 +33,7 @@ messages.  It is the default method of displaying text messages for
 (it is the default
 .IR showproc ).
 .PP
-As with
-.BR more ,
-each of the messages specified as arguments (or
-the standard input) will be output.  If more than one message file is
-specified, the user will be prompted prior to each one, and a <RETURN>
-or <EOT> will begin the output, with <RETURN> clearing the screen (if
-appropriate), and <EOT> (usually CTRL\-D) suppressing the screen clear.
-An <INTERRUPT> (usually CTRL\-C) will abort the current message output,
-prompting for the next message (if there is one), and a <QUIT> (usually
-CTRL-\\) will terminate the program (without core dump).
-.PP
-The
-.B \-clear
-option tells
-.B mhl
-to clear the
-screen at the end of each page (or output a formfeed after each message).
-This switches (and its inverse counterpart) take effect only
-if the profile entry
-.I moreproc
-is defined but empty, and
-.B mhl
-is outputting to a terminal.  If the
-.I moreproc
-entry is defined and
-non-empty, and
+If
 .B mhl
 is outputting to a terminal, then
 .B mhl
@@ -67,38 +41,14 @@ will
 cause the
 .I moreproc
 to be placed between the terminal and
-.B mhl
-and the switches are ignored.  Furthermore, if the
-.B \-clear
-switch is
-used and \fImhl's\fR output is directed to a terminal, then
-.B mhl
-will consult the
-.B $TERM
-and
-.B $TERMCAP
-environment variables
-to determine the user's terminal type in order to find out how to clear
-the screen.  If the
-.B \-clear
-switch is used and
-.BR mhl 's
-output is
-not directed to a terminal (e.g., a pipe or a file), then
-.B mhl
-will
-send a formfeed after each message.
+.BR mhl .
 .PP
 To override the default
 .I moreproc
 and the profile entry, use the
 .B \-moreproc
 .I program
-switch.  Note that
-.B mhl
-will never start a
-.I moreproc
-if invoked on a hardcopy terminal.
+switch.
 .PP
 The
 .B \-length
@@ -156,7 +106,7 @@ of the format is produced as a structured list.  In phase 2, this list
 is walked for each message, outputting message information under the
 format constraints from the format file.
 .PP
-The format file can contain information controlling screen clearing,
+The format file can contain information controlling
 screen size, wrap\-around control, transparent text, component ordering,
 and component formatting.  Also, a list of components to ignore may be
 specified, and a couple of \*(lqspecial\*(rq components are defined
@@ -189,11 +139,11 @@ Remaining lines define the global environment.
 For example, the line:
 .PP
 .RS 5
-width=80,length=40,clearscreen,overflowtext="***",overflowoffset=5
+width=80,length=40,overflowtext="***",overflowoffset=5
 .RE
 .PP
 defines the screen size to be 80 columns by 40 rows, specifies that the
-screen should be cleared prior to each page, that the overflow indentation
+overflow indentation
 is 5, and that overflow text should be flagged with \*(lq***\*(rq.
 .PP
 Following are all of the current variables and their arguments.  If they
@@ -201,11 +151,11 @@ follow a component, they apply only to that component, otherwise, their
 affect is global.  Since the whole format is parsed before any output
 processing, the last global switch setting for a variable applies to
 the whole message if that variable is used in a global context (i.e.,
-clearscreen, width, length).
+width, length).
 .PP
 .RS 5
 .nf
-.ta \w'noclearscreen  'u +\w'integer/G  'u
+.ta \w'xxxxxxxxxxxxx  'u +\w'integer/G  'u
 .I variable    type    semantics
 width  integer screen width or component width
 length integer screen length or component length
@@ -218,8 +168,6 @@ compwidth   integer positions to indent component text
 uppercase      flag    output text of this component in all
                upper case
 nouppercase    flag    don't uppercase
-clearscreen    flag/G  clear the screen prior to each page
-noclearscreen  flag/G  don't clearscreen
 component      string/L        name to use instead of \*(lqcomponent\*(rq for
                this component
 nocomponent    flag    don't output \*(lqcomponent: \*(rq for this
@@ -333,7 +281,6 @@ show(1), ap(8), dp(8)
 
 .SH DEFAULTS
 .nf
-.RB ` \-noclear '
 .RB ` \-length 40 '
 .RB ` \-width 80 '
 .fi
@@ -349,8 +296,5 @@ tool, the
 switch does only take file names, but no format strings with a prepended
 equal sign `='.
 .PP
-There should be some way to pass `clear' information to the
-front\-end.
-.PP
 The \*(lqnonewline\*(rq option interacts badly with \*(lqcompress\*(rq
 and \*(lqsplit\*(rq.
index ef5f860..e778fc3 100644 (file)
--- a/uip/mhl.c
+++ b/uip/mhl.c
 #define QUOTE  '\\'
 
 static struct swit mhlswitches[] = {
-#define CLRSW  0
-       { "clear", 0 },
-#define NCLRSW  1
-       { "noclear", 0 },
-#define FOLDSW  2
+#define FOLDSW  0
        { "folder +folder", 0 },
-#define FORMSW  3
+#define FORMSW  1
        { "form formfile", 0 },
-#define PROGSW  4
+#define PROGSW  2
        { "moreproc program", 0 },
-#define LENSW  5
+#define LENSW  3
        { "length lines", 0 },
-#define WIDTHSW  6
+#define WIDTHSW  4
        { "width columns", 0 },
-#define SLEEPSW  7
+#define SLEEPSW  5
        { "sleep seconds",  0 },
-#define VERSIONSW  8
+#define VERSIONSW  6
        { "version", 0 },
-#define HELPSW  9
+#define HELPSW  7
        { "help", 0 },
-#define FORW1SW  10
+#define FORW1SW  8
        { "forward", -7 },
-#define FORW2SW  11
+#define FORW2SW  9
        { "forwall", -7 },
-#define DGSTSW  12
+#define DGSTSW  10
        { "digest list", -6 },
-#define VOLUMSW  13
+#define VOLUMSW  11
        { "volume number", -6 },
-#define ISSUESW  14
+#define ISSUESW  12
        { "issue number", -5 },
-#define NBODYSW  15
+#define NBODYSW  13
        { "nobody", -6 },
        { NULL, 0 }
 };
@@ -82,16 +78,15 @@ static struct swit mhlswitches[] = {
 #define CLEARTEXT   0x000008  /* cleartext                   */
 #define EXTRA       0x000010  /* an "extra" component        */
 #define HDROUTPUT   0x000020  /* already output              */
-#define CLEARSCR    0x000040  /* clear screen                */
-#define LEFTADJUST  0x000080  /* left justify multiple lines */
-#define COMPRESS    0x000100  /* compress text               */
-#define ADDRFMT     0x000200  /* contains addresses          */
-#define DATEFMT     0x000400  /* contains dates              */
-#define FORMAT      0x000800  /* parse address/date/RFC-2047 field */
-#define INIT        0x001000  /* initialize component        */
-#define SPLIT       0x002000  /* split headers (don't concatenate) */
-#define NONEWLINE   0x004000  /* don't write trailing newline */
-#define LBITS       "\020\01NOCOMPONENT\02UPPERCASE\03CENTER\04CLEARTEXT\05EXTRA\06HDROUTPUT\07CLEARSCR\010LEFTADJUST\011COMPRESS\012ADDRFMT\013DATEFMT\014FORMAT\015INIT\016SPLIT\017NONEWLINE"
+#define LEFTADJUST  0x000040  /* left justify multiple lines */
+#define COMPRESS    0x000080  /* compress text               */
+#define ADDRFMT     0x000100  /* contains addresses          */
+#define DATEFMT     0x000200  /* contains dates              */
+#define FORMAT      0x000400  /* parse address/date/RFC-2047 field */
+#define INIT        0x000800  /* initialize component        */
+#define SPLIT       0x001000  /* split headers (don't concatenate) */
+#define NONEWLINE   0x002000  /* don't write trailing newline */
+#define LBITS       "\020\01NOCOMPONENT\02UPPERCASE\03CENTER\04CLEARTEXT\05EXTRA\06HDROUTPUT\07LEFTADJUST\010COMPRESS\011ADDRFMT\012DATEFMT\013FORMAT\014INIT\015SPLIT\016NONEWLINE"
 #define GFLAGS      (NOCOMPONENT | UPPERCASE | CENTER | LEFTADJUST | COMPRESS | SPLIT)
 
 struct mcomp {
@@ -157,9 +152,6 @@ static struct triple triples[] = {
        { "nouppercase", 0, UPPERCASE },
        { "center", CENTER, 0 },
        { "nocenter", 0, CENTER },
-       { "clearscreen", CLEARSCR, 0 },
-       { "noclearscreen", 0, CLEARSCR },
-       { "noclear", 0, CLEARSCR },
        { "leftadjust", LEFTADJUST, 0 },
        { "noleftadjust", 0, LEFTADJUST },
        { "compress", COMPRESS, 0 },
@@ -174,7 +166,6 @@ static struct triple triples[] = {
 };
 
 
-static int clearflg  = 0;
 static int dobody    = 1;
 static int forwflg   = 0;
 static int forwall   = 0;
@@ -256,7 +247,6 @@ static void m_popen(char *);
 
 void m_pclose(void);
 
-void clear_screen(void);  /* from termsbr.c */
 int SOprintf(char *, ...);  /* from termsbr.c */
 int sc_width(void);  /* from termsbr.c */
 int sc_length(void);  /* from termsbr.c */
@@ -304,13 +294,6 @@ main(int argc, char **argv)
                                print_version(invo_name);
                                done(1);
 
-                       case CLRSW:
-                               clearflg = 1;
-                               continue;
-                       case NCLRSW:
-                               clearflg = -1;
-                               continue;
-
                        case FOLDSW:
                                if (!(folder = *argp++) || *folder == '-')
                                        adios(NULL, "missing argument to %s",
@@ -379,7 +362,6 @@ main(int argc, char **argv)
                                forwall++;  /* fall */
                        case FORW1SW:
                                forwflg++;
-                               clearflg = -1;/* XXX */
                                continue;
 
                        case NBODYSW:
@@ -439,9 +421,6 @@ main(int argc, char **argv)
                adios("output", "error writing");
        }
 
-       if (clearflg > 0 && ontty == NOTTY)
-               clear_screen();
-
        if (ontty == PITTY)
                m_pclose();
 
@@ -582,13 +561,6 @@ mhl_format(char *file, int length, int width)
        }
 
 out:
-       if (clearflg == 1) {
-               global.c_flags |= CLEARSCR;
-       } else {
-               if (clearflg == -1)
-                       global.c_flags &= ~CLEARSCR;
-       }
-
        if (length)
                global.c_length = length;
        if (width)
@@ -796,31 +768,11 @@ mhlfile(FILE *fp, char *mname, int ofilen, int ofilec)
                                printf(" Message %d", ofilen);
                        printf("\n\n");
                }
-       } else {
-               switch (ontty) {
-               case PITTY:
-                       if (ofilec > 1) {
-                               if (ofilen > 1) {
-                                       if ((global.c_flags & CLEARSCR))
-                                               clear_screen();
-                                       else
-                                               printf("\n\n\n");
-                               }
-                               printf(">>> %s\n\n", mname);
-                       }
-                       break;
-
-               default:
-                       if (ofilec > 1) {
-                               if (ofilen > 1) {
-                                       printf("\n\n\n");
-                                       if (clearflg > 0)
-                                               clear_screen();
-                               }
-                               printf(">>> %s\n\n", mname);
-                       }
-                       break;
+       } else if (ofilec > 1) {
+               if (ofilen > 1) {
+                       printf("\n\n\n");
                }
+               printf(">>> %s\n\n", mname);
        }
 
        for (state = FLD;;) {
@@ -1285,8 +1237,6 @@ putch(char ch)
                buf[0] = 0;
                read(fileno(stdout), buf, sizeof(buf));
                if (strchr(buf, '\n')) {
-                       if (global.c_flags & CLEARSCR)
-                               clear_screen();
                        row = 0;
                } else {
                        putchar('\n');
index efc2b54..469bdd9 100644 (file)
@@ -787,7 +787,7 @@ replfilter(FILE *in, FILE *out, char *filter)
                dup2(fileno(out), fileno(stdout));
                closefds(3);
 
-               execlp(mhlproc, mhl, "-form", filter, "-noclear", NULL);
+               execlp(mhlproc, mhl, "-form", filter, NULL);
                errstr = strerror(errno);
                write(2, "unable to exec ", 15);
                write(2, mhlproc, strlen(mhlproc));
index e7ba35a..a4b5074 100644 (file)
@@ -62,7 +62,6 @@ static int initCO = 0;
 
 static int LI = 40;      /* number of lines */
 static int CO = 80;      /* number of colums */
-static char *CL = NULL;  /* termcap string to clear screen */
 static char *SE = NULL;  /* termcap string to end standout mode   */
 static char *SO = NULL;  /* termcap string to begin standout mode */
 
@@ -126,7 +125,6 @@ read_termcap(void)
                LI = 24;
 
        cp = termcap;
-       CL = tgetstr("cl", &cp);
        if ((bp = tgetstr("pc", &cp)))
                PC = *bp;
        if (tgetnum("sg") <= 0) {
@@ -172,23 +170,6 @@ sc_length(void)
 }
 
 
-void
-clear_screen(void)
-{
-       read_termcap();
-
-       if (CL && speedcode)
-               tputs(CL, LI, putchar);
-       else {
-               printf("\f");
-               if (speedcode)
-                       printf("\200");
-       }
-
-       fflush(stdout);
-}
-
-
 /*
 ** print in standout mode
 */