From 5b9d883db0318ed2b84bb82dee880d7381f99188 Mon Sep 17 00:00:00 2001 From: markus schnalke Date: Fri, 10 Feb 2012 17:10:48 +0100 Subject: [PATCH] Removed any knowledge of a screen length from mhl. Pagination is to be done by some pager. --- docs/COMPLETION-ZSH | 4 +-- man/mh-chart.man1 | 2 -- man/mhl.man1 | 17 +++-------- uip/mhl.c | 84 ++++++++++++--------------------------------------- uip/mhshow.c | 7 ++--- uip/show.c | 15 ++++----- uip/termsbr.c | 21 ------------- 7 files changed, 34 insertions(+), 116 deletions(-) diff --git a/docs/COMPLETION-ZSH b/docs/COMPLETION-ZSH index 54be038..cb21f3f 100644 --- a/docs/COMPLETION-ZSH +++ b/docs/COMPLETION-ZSH @@ -154,9 +154,9 @@ compctl -K mhfseq -x 's[+][@]' -K mhcomp -S / -q - \ compctl -K mhfseq -x 's[+][@]' -K mhcomp -S / -q - \ 's[-]' -k "(draft form moreproc header noheader \ - showproc length width help)" - 'C[-1,-(show|more)proc]' -c - \ + showproc width help)" - 'C[-1,-(show|more)proc]' -c - \ 'c[-1,-file]' -f - 'c[-1,-form]' -K mhfile - \ - 'c[-1,-length]' -s '$LINES' - 'c[-1,-width]' -s '$COLUMNS' -- show next prev + 'c[-1,-width]' -s '$COLUMNS' -- show next prev compctl -K mhfseq -x 's[+][@]' -K mhcomp -S / -q - 's[-]' \ -k "(help)" -- rmm diff --git a/man/mh-chart.man1 b/man/mh-chart.man1 index ba2ab36..ada5916 100644 --- a/man/mh-chart.man1 +++ b/man/mh-chart.man1 @@ -258,8 +258,6 @@ is equivalent to .IR +folder ] .RB [ \-form .IR formfile ] -.RB [ \-length -.IR lines ] .RB [ \-width .IR columns ] .RB [ \-moreproc diff --git a/man/mhl.man1 b/man/mhl.man1 index 9f84170..9c57dbe 100644 --- a/man/mhl.man1 +++ b/man/mhl.man1 @@ -12,8 +12,6 @@ mhl \- produce formatted listings of nmh messages .IR +folder ] .RB [ \-form .IR formfile ] -.RB [ \-length -.IR lines ] .RB [ \-width .IR columns ] .RB [ \-moreproc @@ -51,15 +49,11 @@ and the profile entry, use the switch. .PP The -.B \-length -.I length -and .B \-width .I width -switches set the screen -length and width, respectively. These default to the values indicated by +switch sets the screen width. This defaults to the value indicated by .BR $TERMCAP , -if appropriate, otherwise they default to 40 and 80, respectively. +if appropriate, otherwise it defaults to 80. .PP The default format file used by .B mhl @@ -139,7 +133,7 @@ Remaining lines define the global environment. For example, the line: .PP .RS 5 -width=80,length=40,overflowtext="***",overflowoffset=5 +width=80,overflowtext="***",overflowoffset=5 .RE .PP defines the screen size to be 80 columns by 40 rows, specifies that the @@ -151,14 +145,14 @@ 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., -width, length). +width). .PP .RS 5 .nf .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 +length integer component length offset integer positions to indent \*(lqcomponent: \*(rq overflowtext string text to use at the beginning of an overflow line @@ -281,7 +275,6 @@ show(1), ap(8), dp(8) .SH DEFAULTS .nf -.RB ` \-length 40 ' .RB ` \-width 80 ' .fi diff --git a/uip/mhl.c b/uip/mhl.c index e778fc3..274d43e 100644 --- a/uip/mhl.c +++ b/uip/mhl.c @@ -47,27 +47,25 @@ static struct swit mhlswitches[] = { { "form formfile", 0 }, #define PROGSW 2 { "moreproc program", 0 }, -#define LENSW 3 - { "length lines", 0 }, -#define WIDTHSW 4 +#define WIDTHSW 3 { "width columns", 0 }, -#define SLEEPSW 5 +#define SLEEPSW 4 { "sleep seconds", 0 }, -#define VERSIONSW 6 +#define VERSIONSW 5 { "version", 0 }, -#define HELPSW 7 +#define HELPSW 6 { "help", 0 }, -#define FORW1SW 8 +#define FORW1SW 7 { "forward", -7 }, -#define FORW2SW 9 +#define FORW2SW 8 { "forwall", -7 }, -#define DGSTSW 10 +#define DGSTSW 9 { "digest list", -6 }, -#define VOLUMSW 11 +#define VOLUMSW 10 { "volume number", -6 }, -#define ISSUESW 12 +#define ISSUESW 11 { "issue number", -5 }, -#define NBODYSW 13 +#define NBODYSW 12 { "nobody", -6 }, { NULL, 0 } }; @@ -99,7 +97,6 @@ struct mcomp { int c_ovoff; /* overflow indentation */ int c_width; /* width of field */ int c_cwidth; /* width of component */ - int c_length; /* length in lines */ long c_flags; struct mcomp *c_next; }; @@ -110,11 +107,11 @@ static struct mcomp *fmthd = NULL; static struct mcomp *fmttl = NULL; static struct mcomp global = { - NULL, NULL, "", NULL, NULL, 0, -1, 80, -1, 40, 0, 0 + NULL, NULL, "", NULL, NULL, 0, -1, 80, -1, 0, 0 }; static struct mcomp holder = { - NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 0, NOCOMPONENT, 0 + NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NOCOMPONENT, 0 }; struct pair { @@ -183,11 +180,9 @@ static int mhldebug = 0; #define NOTTY 0 static int ontty = NOTTY; -static int row; static int column; static int lm; -static int llim; static int ovoff; static int term; static int wid; @@ -221,7 +216,7 @@ static FILE *(*mhl_action) () = (FILE *(*) ()) 0; /* ** prototypes */ -static void mhl_format(char *, int, int); +static void mhl_format(char *, int); static int evalvar(struct mcomp *); static int ptoi(char *, int *); static int ptos(char *, char **); @@ -249,13 +244,11 @@ void m_pclose(void); int SOprintf(char *, ...); /* from termsbr.c */ int sc_width(void); /* from termsbr.c */ -int sc_length(void); /* from termsbr.c */ int main(int argc, char **argv) { - int length = 0; int i, width = 0, vecp = 0; char *cp, *folder = NULL, *form = NULL; char buf[BUFSIZ], *files[MAXARGS]; @@ -318,14 +311,6 @@ main(int argc, char **argv) argp[-2]); continue; - case LENSW: - if (!(cp = *argp++) || *cp == '-') - adios(NULL, "missing argument to %s", - argp[-2]); - if ((length = atoi(cp)) < 1) - adios(NULL, "bad argument %s %s", - argp[-2], cp); - continue; case WIDTHSW: if (!(cp = *argp++) || *cp == '-') adios(NULL, "missing argument to %s", @@ -387,7 +372,7 @@ main(int argc, char **argv) ontty = NOTTY; } - mhl_format(form ? form : mhlformat, length, width); + mhl_format(form ? form : mhlformat, width); if (vecp == 0) { process(folder, NULL, 1, vecp = 1); @@ -429,7 +414,7 @@ main(int argc, char **argv) static void -mhl_format(char *file, int length, int width) +mhl_format(char *file, int width) { int i; char *bp, *cp, **ip; @@ -467,8 +452,6 @@ mhl_format(char *file, int length, int width) if ((i = sc_width()) > 5) global.c_width = i; global.c_cwidth = -1; - if ((i = sc_length()) > 5) - global.c_length = i - 1; global.c_flags = 0; *(ip = ignores) = NULL; @@ -555,18 +538,14 @@ mhl_format(char *file, int length, int width) for (c1 = fmthd; c1; c1 = c1->c_next) { fprintf(stderr, "c1: name=\"%s\" text=\"%s\" ovtxt=\"%s\"\n", c1->c_name, c1->c_text, c1->c_ovtxt); fprintf(stderr, "\tnfs=0x%x fmt=0x%x\n", (unsigned int)(unsigned long) c1->c_nfs, (unsigned int)(unsigned long) c1->c_fmt); - fprintf(stderr, "\toffset=%d ovoff=%d width=%d cwidth=%d length=%d\n", c1->c_offset, c1->c_ovoff, c1->c_width, c1->c_cwidth, c1->c_length); + fprintf(stderr, "\toffset=%d ovoff=%d width=%d cwidth=%d\n", c1->c_offset, c1->c_ovoff, c1->c_width, c1->c_cwidth); fprintf (stderr, "\tflags=%s\n", snprintb(buffer, sizeof(buffer), (unsigned) c1->c_flags, LBITS)); } } out: - if (length) - global.c_length = length; if (width) global.c_width = width; - if (global.c_length < 5) - global.c_length = 10000; if (global.c_width < 5) global.c_width = 10000; } @@ -622,8 +601,6 @@ evalvar(struct mcomp *c1) return ptoi(name, &c1->c_width); if (!mh_strcasecmp(name, "compwidth")) return ptoi(name, &c1->c_cwidth); - if (!mh_strcasecmp(name, "length")) - return ptoi(name, &c1->c_length); for (ap = triples; ap->t_name; ap++) if (!mh_strcasecmp(ap->t_name, name)) { @@ -812,7 +789,7 @@ mhlfile(FILE *fp, char *mname, int ofilen, int ofilec) case BODY: case FILEEOF: - row = column = 0; + column = 0; for (c1 = fmthd; c1; c1 = c1->c_next) { if (c1->c_flags & CLEARTEXT) { putcomp(c1, c1, ONECOMP); @@ -1000,7 +977,7 @@ add_queue(struct mcomp **head, struct mcomp **tail, char *name, c1->c_ovtxt = getcpy(global.c_ovtxt); c1->c_offset = global.c_offset; c1->c_ovoff = global. c_ovoff; - c1->c_width = c1->c_length = 0; + c1->c_width = 0; c1->c_cwidth = global.c_cwidth; c1->c_flags |= global.c_flags & GFLAGS; } @@ -1046,7 +1023,6 @@ putcomp(struct mcomp *c1, struct mcomp *c2, int flag) cchdr = 0; lm = 0; - llim = c1->c_length ? c1->c_length : -1; wid = c1->c_width ? c1->c_width : global.c_width; ovoff = (c1->c_ovoff >= 0 ? c1->c_ovoff : global.c_ovoff) + c1->c_offset; @@ -1220,30 +1196,7 @@ putstr(char *string) static void putch(char ch) { - char buf[BUFSIZ]; - - if (llim == 0) - return; - switch (ch) { - case '\n': - if (llim > 0) - llim--; - column = 0; - row++; - if (row != global.c_length) - break; - fflush(stdout); - buf[0] = 0; - read(fileno(stdout), buf, sizeof(buf)); - if (strchr(buf, '\n')) { - row = 0; - } else { - putchar('\n'); - row = global.c_length / 3; - } - return; - case '\t': column |= 07; column++; @@ -1253,6 +1206,7 @@ putch(char ch) column--; break; + case '\n': case '\r': column = 0; break; diff --git a/uip/mhshow.c b/uip/mhshow.c index 0baf198..a1fff55 100644 --- a/uip/mhshow.c +++ b/uip/mhshow.c @@ -56,14 +56,12 @@ static struct swit switches[] = { */ #define PROGSW 14 { "moreproc program", -4 }, -#define LENSW 15 - { "length lines", -4 }, -#define WIDTHSW 16 +#define WIDTHSW 15 { "width columns", -4 }, /* ** switches for debugging */ -#define DEBUGSW 17 +#define DEBUGSW 16 { "debug", -5 }, { NULL, 0 } }; @@ -241,7 +239,6 @@ do_cache: argp[-2]); continue; - case LENSW: case WIDTHSW: if (!(cp = *argp++) || *cp == '-') adios(NULL, "missing argument to %s", diff --git a/uip/show.c b/uip/show.c index 89602ef..be85fd1 100644 --- a/uip/show.c +++ b/uip/show.c @@ -23,19 +23,17 @@ static struct swit switches[] = { { "form formfile", 0 }, #define PROGSW 5 { "moreproc program", 0 }, -#define LENSW 6 - { "length lines", 0 }, -#define WIDTHSW 7 +#define WIDTHSW 6 { "width columns", 0 }, -#define SHOWSW 8 +#define SHOWSW 7 { "showproc program", 0 }, -#define SHOWMIMESW 9 +#define SHOWMIMESW 8 { "showmimeproc program", 0 }, -#define FILESW 10 +#define FILESW 9 { "file file", -4 }, /* interface from showfile */ -#define VERSIONSW 11 +#define VERSIONSW 10 { "version", 0 }, -#define HELPSW 12 +#define HELPSW 11 { "help", 0 }, { NULL, 0 } }; @@ -123,7 +121,6 @@ usage: continue; case PROGSW: - case LENSW: case WIDTHSW: vec[vecp++] = --cp; if (!(cp = *argp++) || *cp == '-') diff --git a/uip/termsbr.c b/uip/termsbr.c index a4b5074..0568bf3 100644 --- a/uip/termsbr.c +++ b/uip/termsbr.c @@ -57,10 +57,8 @@ char PC; static long speedcode; -static int initLI = 0; static int initCO = 0; -static int LI = 40; /* number of lines */ static int CO = 80; /* number of colums */ static char *SE = NULL; /* termcap string to end standout mode */ static char *SO = NULL; /* termcap string to begin standout mode */ @@ -121,8 +119,6 @@ read_termcap(void) if (!initCO && (CO = tgetnum("co")) <= 0) CO = 80; - if (!initLI && (LI = tgetnum("li")) <= 0) - LI = 24; cp = termcap; if ((bp = tgetstr("pc", &cp))) @@ -153,23 +149,6 @@ sc_width(void) } -int -sc_length(void) -{ -#ifdef TIOCGWINSZ - struct winsize win; - - if (ioctl(fileno(stderr), TIOCGWINSZ, &win) != NOTOK - && (LI = win.ws_row) > 0) - initLI++; - else -#endif /* TIOCGWINSZ */ - read_termcap(); - - return LI; -} - - /* ** print in standout mode */ -- 1.7.10.4