X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Fmhl.c;h=e139a833315b44704f0317f620c671c6f56a7559;hp=4c2f06ee642026043e10a83f1add069c8845e78e;hb=fc71710f8695ea07d852284286b058ecb3955317;hpb=cebc12618d19409a25e332eef13e825df15a9bc2 diff --git a/uip/mhl.c b/uip/mhl.c index 4c2f06e..e139a83 100644 --- a/uip/mhl.c +++ b/uip/mhl.c @@ -45,27 +45,25 @@ static struct swit mhlswitches[] = { { "folder +folder", 0 }, #define FORMSW 1 { "form formfile", 0 }, -#define PROGSW 2 - { "moreproc program", 0 }, -#define WIDTHSW 3 +#define WIDTHSW 2 { "width columns", 0 }, -#define SLEEPSW 4 +#define SLEEPSW 3 { "sleep seconds", 0 }, -#define VERSIONSW 5 +#define VERSIONSW 4 { "version", 0 }, -#define HELPSW 6 +#define HELPSW 5 { "help", 0 }, -#define FORW1SW 7 +#define FORW1SW 6 { "forward", -7 }, -#define FORW2SW 8 +#define FORW2SW 7 { "forwall", -7 }, -#define DGSTSW 9 +#define DGSTSW 8 { "digest list", -6 }, -#define VOLUMSW 10 +#define VOLUMSW 9 { "volume number", -6 }, -#define ISSUESW 11 +#define ISSUESW 10 { "issue number", -5 }, -#define NBODYSW 12 +#define NBODYSW 11 { "nobody", -6 }, { NULL, 0 } }; @@ -91,7 +89,7 @@ struct mcomp { char *c_name; /* component name */ char *c_text; /* component text */ char *c_ovtxt; /* text overflow indicator */ - char *c_nfs; /* iff FORMAT */ + char *c_fstr; /* iff FORMAT */ struct format *c_fmt; /* .. */ int c_offset; /* left margin indentation */ int c_ovoff; /* overflow indentation */ @@ -233,9 +231,9 @@ static void putcomp(struct mcomp *, struct mcomp *, int); static char *oneline(char *, long); static void putstr(char *); static void putch(char); -static RETSIGTYPE intrser(int); -static RETSIGTYPE pipeser(int); -static RETSIGTYPE quitser(int); +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 *); @@ -252,7 +250,6 @@ main(int argc, char **argv) char *cp, *folder = NULL, *form = NULL; char buf[BUFSIZ], *files[MAXARGS]; char **argp, **arguments; - char *progsw = NULL; #ifdef LOCALE setlocale(LC_ALL, ""); @@ -304,12 +301,6 @@ main(int argc, char **argv) sleepsw = atoi(cp); /* ZERO ok! */ continue; - case PROGSW: - if (!(progsw = *argp++) || *progsw == '-') - adios(NULL, "missing argument to %s", - argp[-2]); - continue; - case WIDTHSW: if (!(cp = *argp++) || *cp == '-') adios(NULL, "missing argument to %s", @@ -365,7 +356,7 @@ main(int argc, char **argv) SIGNAL2(SIGQUIT, quitser); } SIGNAL2(SIGPIPE, pipeser); - m_popen(progsw ? progsw : moreproc); + m_popen(defaultpager); ontty = PITTY; } else { ontty = NOTTY; @@ -416,7 +407,7 @@ static void mhl_format(char *file, int width) { int i; - char *bp, *cp, **ip; + char *bp, *cp; char *ap, buffer[BUFSIZ], name[NAMESZ]; struct mcomp *c1; struct stat st; @@ -444,7 +435,7 @@ mhl_format(char *file, int width) ino = st.st_ino; } - global.c_ovtxt = global.c_nfs = NULL; + global.c_ovtxt = global.c_fstr = NULL; global.c_fmt = NULL; global.c_offset = 0; global.c_ovoff = -1; @@ -452,7 +443,7 @@ mhl_format(char *file, int width) global.c_width = i; global.c_cwidth = -1; global.c_flags = 0; - *(ip = ignores) = NULL; + *ignores = NULL; while (vfgets(fp, &ap) == OK) { bp = ap; @@ -479,25 +470,20 @@ mhl_format(char *file, int width) ** it to the end of the current "ignores" list. */ if (!mh_strcasecmp(name, "ignores")) { - char **tmparray, **p; + char **tmparray; int n = 0; /* split the fields */ tmparray = brkstring(getcpy(++parptr), ",", NULL); - - /* count number of fields split */ - p = tmparray; - while (*p++) - n++; - /* ** copy pointers to split fields ** to ignores array */ - ip = copyip(tmparray, ip, - MAXARGS - num_ignores); - num_ignores += n; + while (tmparray[n] && num_ignoresc_nfs && global.c_nfs) { + if (!c1->c_fstr && global.c_fstr) { if ((c1->c_flags & DATEFMT) && (global.c_flags & DATEFMT)) { - c1->c_nfs = getcpy(global.c_nfs); + c1->c_fstr = getcpy(global.c_fstr); } else if ((c1->c_flags & ADDRFMT) && (global.c_flags & ADDRFMT)) { - c1->c_nfs = getcpy(global.c_nfs); + c1->c_fstr = getcpy(global.c_fstr); } } continue; @@ -536,7 +522,7 @@ mhl_format(char *file, int width) if (mhldebug) { 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, "\tfstr=0x%x fmt=0x%x\n", (unsigned int)(unsigned long) c1->c_fstr, (unsigned int)(unsigned long) c1->c_fmt); 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)); } @@ -571,23 +557,23 @@ evalvar(struct mcomp *c1) return ptos(name, &c1->c_ovtxt); if (!mh_strcasecmp(name, "formatfield")) { - char *nfs; + char *fmtstr; if (ptos(name, &cp)) return 1; cp = concat("=", cp, NULL); - nfs = new_fs(cp, NULL); + fmtstr = new_fs(cp, NULL); free(cp); - c1->c_nfs = getcpy(nfs); + c1->c_fstr = getcpy(fmtstr); c1->c_flags |= FORMAT; return 0; } if (!mh_strcasecmp(name, "decode")) { - char *nfs; + char *fmtstr; - nfs = new_fs("=%(decode{text})", NULL); - c1->c_nfs = getcpy(nfs); + fmtstr = new_fs("=%(decode{text})", NULL); + c1->c_fstr = getcpy(fmtstr); c1->c_flags |= FORMAT; return 0; } @@ -895,7 +881,7 @@ mcomp_format(struct mcomp *c1, struct mcomp *c2) dat[2] = 0; dat[3] = sizeof(buffer) - 1; dat[4] = 0; - fmt_compile(c1->c_nfs, &c1->c_fmt); + fmt_compile(c1->c_fstr, &c1->c_fmt); if (!(c1->c_flags & ADDRFMT)) { FINDCOMP(cptr, "text"); @@ -1003,8 +989,8 @@ free_queue(struct mcomp **head, struct mcomp **tail) free(c1->c_text); if (c1->c_ovtxt) free(c1->c_ovtxt); - if (c1->c_nfs) - free(c1->c_nfs); + if (c1->c_fstr) + free(c1->c_fstr); if (c1->c_fmt) free((char *) c1->c_fmt); free((char *) c1); @@ -1037,7 +1023,7 @@ putcomp(struct mcomp *c1, struct mcomp *c2, int flag) return; } - if (c1->c_nfs && (c1->c_flags & (ADDRFMT | DATEFMT | FORMAT))) + if (c1->c_fstr && (c1->c_flags & (ADDRFMT | DATEFMT | FORMAT))) mcomp_format(c1, c2); if (c1->c_flags & CENTER) { @@ -1237,7 +1223,7 @@ putch(char ch) } -static RETSIGTYPE +static void intrser(int i) { #ifndef RELIABLE_SIGNALS @@ -1250,7 +1236,7 @@ intrser(int i) } -static RETSIGTYPE +static void pipeser(int i) { #ifndef RELIABLE_SIGNALS @@ -1261,7 +1247,7 @@ pipeser(int i) } -static RETSIGTYPE +static void quitser(int i) { #ifndef RELIABLE_SIGNALS