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
 
 .HP 5
 .B mhl
-.RB [ \-clear " | " \-noclear ]
 .RB [ \-folder
 .IR +folder ]
 .RB [ \-form
 .RB [ \-folder
 .IR +folder ]
 .RB [ \-form
index 57e27cb..28fae32 100644 (file)
@@ -684,8 +684,7 @@ these tell
 .B scan
 and
 .B mhl
 .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.
 .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
 .HP 5
 .na
 .B mhl
-.RB [ \-clear " | " \-noclear ]
 .RB [ \-folder
 .IR +folder ]
 .RB [ \-form
 .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
 (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
 .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
 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
 .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
 .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
 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
 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
 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
 .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
 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.,
 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
 .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
 .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
 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
 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
 
 .SH DEFAULTS
 .nf
-.RB ` \-noclear '
 .RB ` \-length 40 '
 .RB ` \-width 80 '
 .fi
 .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
 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.
 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 QUOTE  '\\'
 
 static struct swit mhlswitches[] = {
-#define CLRSW  0
-       { "clear", 0 },
-#define NCLRSW  1
-       { "noclear", 0 },
-#define FOLDSW  2
+#define FOLDSW  0
        { "folder +folder", 0 },
        { "folder +folder", 0 },
-#define FORMSW  3
+#define FORMSW  1
        { "form formfile", 0 },
        { "form formfile", 0 },
-#define PROGSW  4
+#define PROGSW  2
        { "moreproc program", 0 },
        { "moreproc program", 0 },
-#define LENSW  5
+#define LENSW  3
        { "length lines", 0 },
        { "length lines", 0 },
-#define WIDTHSW  6
+#define WIDTHSW  4
        { "width columns", 0 },
        { "width columns", 0 },
-#define SLEEPSW  7
+#define SLEEPSW  5
        { "sleep seconds",  0 },
        { "sleep seconds",  0 },
-#define VERSIONSW  8
+#define VERSIONSW  6
        { "version", 0 },
        { "version", 0 },
-#define HELPSW  9
+#define HELPSW  7
        { "help", 0 },
        { "help", 0 },
-#define FORW1SW  10
+#define FORW1SW  8
        { "forward", -7 },
        { "forward", -7 },
-#define FORW2SW  11
+#define FORW2SW  9
        { "forwall", -7 },
        { "forwall", -7 },
-#define DGSTSW  12
+#define DGSTSW  10
        { "digest list", -6 },
        { "digest list", -6 },
-#define VOLUMSW  13
+#define VOLUMSW  11
        { "volume number", -6 },
        { "volume number", -6 },
-#define ISSUESW  14
+#define ISSUESW  12
        { "issue number", -5 },
        { "issue number", -5 },
-#define NBODYSW  15
+#define NBODYSW  13
        { "nobody", -6 },
        { NULL, 0 }
 };
        { "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 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 {
 #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 },
        { "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 },
        { "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;
 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 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 */
 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);
 
                                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",
                        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++;
                                forwall++;  /* fall */
                        case FORW1SW:
                                forwflg++;
-                               clearflg = -1;/* XXX */
                                continue;
 
                        case NBODYSW:
                                continue;
 
                        case NBODYSW:
@@ -439,9 +421,6 @@ main(int argc, char **argv)
                adios("output", "error writing");
        }
 
                adios("output", "error writing");
        }
 
-       if (clearflg > 0 && ontty == NOTTY)
-               clear_screen();
-
        if (ontty == PITTY)
                m_pclose();
 
        if (ontty == PITTY)
                m_pclose();
 
@@ -582,13 +561,6 @@ mhl_format(char *file, int length, int width)
        }
 
 out:
        }
 
 out:
-       if (clearflg == 1) {
-               global.c_flags |= CLEARSCR;
-       } else {
-               if (clearflg == -1)
-                       global.c_flags &= ~CLEARSCR;
-       }
-
        if (length)
                global.c_length = length;
        if (width)
        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");
                }
                                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;;) {
        }
 
        for (state = FLD;;) {
@@ -1285,8 +1237,6 @@ putch(char ch)
                buf[0] = 0;
                read(fileno(stdout), buf, sizeof(buf));
                if (strchr(buf, '\n')) {
                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');
                        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);
 
                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));
                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 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 */
 
 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;
                LI = 24;
 
        cp = termcap;
-       CL = tgetstr("cl", &cp);
        if ((bp = tgetstr("pc", &cp)))
                PC = *bp;
        if (tgetnum("sg") <= 0) {
        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
 */
 /*
 ** print in standout mode
 */