{ "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 }
};
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 */
static struct mcomp *fmttl = NULL;
static struct mcomp global = {
- NULL, NULL, "", NULL, NULL, 0, -1, 80, -1, 0, 0
+ NULL, NULL, NULL, NULL, NULL, 0, -1, 80, -1, 0, NULL
};
static struct mcomp holder = {
- NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NOCOMPONENT, 0
+ NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0, NOCOMPONENT, NULL
};
struct pair {
#define NOTTY 0
static int ontty = NOTTY;
-static int column;
+static unsigned int column;
static int lm;
static int ovoff;
static int term;
-static int wid;
+static unsigned int wid;
static char *ovtxt;
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 *);
void m_pclose(void);
-int SOprintf(char *, ...); /* from termsbr.c */
int sc_width(void); /* from termsbr.c */
char *cp, *folder = NULL, *form = NULL;
char buf[BUFSIZ], *files[MAXARGS];
char **argp, **arguments;
- char *progsw = NULL;
#ifdef LOCALE
setlocale(LC_ALL, "");
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",
SIGNAL2(SIGQUIT, quitser);
}
SIGNAL2(SIGPIPE, pipeser);
- m_popen(progsw ? progsw : moreproc);
+ m_popen(defaultpager);
ontty = PITTY;
} else {
ontty = NOTTY;
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;
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;
global.c_width = i;
global.c_cwidth = -1;
global.c_flags = 0;
- *(ip = ignores) = NULL;
+ *ignores = NULL;
while (vfgets(fp, &ap) == OK) {
bp = ap;
** 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_ignores<MAXARGS-1) {
+ ignores[num_ignores++] = tmparray[n++];
+ }
+ ignores[num_ignores] = NULL;
continue;
}
parptr = bp;
if (evalvar(c1))
adios(NULL, "format file syntax error: %s", bp);
}
- if (!c1->c_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;
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));
}
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;
}
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");
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);
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) {
count = 0;
if (cchdr) {
if (flag == TWOCOMP)
- count = (c1->c_cwidth >= 0) ?
- c1->c_cwidth : strlen(c2->c_name) + 2;
+ count = (c1->c_cwidth >= 0) ? c1->c_cwidth :
+ (int)strlen(c2->c_name) + 2;
else
- count = (c1->c_cwidth >= 0) ?
- c1->c_cwidth : strlen(c1->c_text ?
+ count = (c1->c_cwidth >= 0) ? (size_t)c1->c_cwidth :
+ strlen(c1->c_text ?
c1->c_text : c1->c_name) + 2;
}
count += c1->c_offset;
}
-static RETSIGTYPE
+static void
intrser(int i)
{
-#ifndef RELIABLE_SIGNALS
- SIGNAL(SIGINT, intrser);
-#endif
-
discard(stdout);
putchar('\n');
longjmp(env, DONE);
}
-static RETSIGTYPE
+static void
pipeser(int i)
{
-#ifndef RELIABLE_SIGNALS
- SIGNAL(SIGPIPE, pipeser);
-#endif
-
done(NOTOK);
}
-static RETSIGTYPE
+static void
quitser(int i)
{
-#ifndef RELIABLE_SIGNALS
- SIGNAL(SIGQUIT, quitser);
-#endif
-
putchar('\n');
fflush(stdout);
done(NOTOK);