#define QUOTE '\\'
static struct swit mhlswitches[] = {
-#define FOLDSW 0
- { "folder +folder", 0 },
-#define FORMSW 1
+#define FORMSW 0
{ "form formfile", 0 },
-#define WIDTHSW 2
+#define WIDTHSW 1
{ "width columns", 0 },
-#define SLEEPSW 3
+#define SLEEPSW 2
{ "sleep seconds", 0 },
-#define VERSIONSW 4
+#define VERSIONSW 3
{ "version", 0 },
-#define HELPSW 5
+#define HELPSW 4
{ "help", 0 },
-#define FORW1SW 6
+#define FORW1SW 5
{ "forward", -7 },
-#define FORW2SW 7
+#define FORW2SW 6
{ "forwall", -7 },
-#define DGSTSW 8
+#define DGSTSW 7
{ "digest list", -6 },
-#define VOLUMSW 9
+#define VOLUMSW 8
{ "volume number", -6 },
-#define ISSUESW 10
+#define ISSUESW 9
{ "issue number", -5 },
-#define NBODYSW 11
+#define NBODYSW 10
{ "nobody", -6 },
{ NULL, 0 }
};
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 int ptoi(char *, int *);
static int ptos(char *, char **);
static char *parse(void);
-static void process(char *, char *, int, int);
+static void process(char *, int, int);
static void mhlfile(FILE *, char *, int, int);
static int mcomp_flags(char *);
static char *mcomp_add(long, char *, char *);
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 *);
main(int argc, char **argv)
{
int i, width = 0, vecp = 0;
- char *cp, *folder = NULL, *form = NULL;
+ char *cp, *form = NULL;
char buf[BUFSIZ], *files[MAXARGS];
char **argp, **arguments;
print_version(invo_name);
done(1);
- case FOLDSW:
- if (!(folder = *argp++) || *folder == '-')
- adios(NULL, "missing argument to %s",
- argp[-2]);
- continue;
case FORMSW:
if (!(form = *argp++) || *form == '-')
adios(NULL, "missing argument to %s",
files[vecp++] = cp;
}
- if (!folder)
- folder = getenv("mhfolder");
-
if (isatty(fileno(stdout))) {
if (mhl_action) {
SIGNAL(SIGINT, SIG_IGN);
mhl_format(form ? form : mhlformat, width);
if (vecp == 0) {
- process(folder, NULL, 1, vecp = 1);
+ process(NULL, 1, vecp = 1);
} else {
for (i = 0; i < vecp; i++)
- process(folder, files[i], i + 1, vecp);
+ process(files[i], i + 1, vecp);
}
if (forwall) {
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;
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;
static void
-process(char *folder, char *fname, int ofilen, int ofilec)
+process(char *fname, int ofilen, int ofilec)
{
- char *cp = NULL;
FILE *fp = NULL;
struct mcomp *c1;
fname = "(stdin)";
fp = stdin;
}
- cp = folder ? concat(folder, ":", fname, NULL) : getcpy(fname);
if (ontty != PITTY)
SIGNAL(SIGINT, intrser);
- mhlfile(fp, cp, ofilen, ofilec);
+ mhlfile(fp, fname, ofilen, ofilec);
/* FALL THROUGH! */
default:
if (ontty != PITTY)
SIGNAL(SIGINT, SIG_IGN);
if (mhl_action == NULL && fp != stdin)
fclose(fp);
- free(cp);
if (holder.c_text) {
free(holder.c_text);
holder.c_text = NULL;
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);