X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=uip%2Fmhl.c;h=58c7d2b07bd2dd2c342f5af28680fb9cce920b96;hb=3c7a396c28e665f8cc2e94f18e1a84b3e1d2efd4;hp=38926b6d3019791dac72a4ac11c9af40e495e2bf;hpb=0c4214ea2aec6497d0d67b436bbee9bc1d225f1e;p=mmh diff --git a/uip/mhl.c b/uip/mhl.c index 38926b6..58c7d2b 100644 --- a/uip/mhl.c +++ b/uip/mhl.c @@ -41,29 +41,27 @@ #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 } }; @@ -105,11 +103,11 @@ static struct mcomp *fmthd = NULL; 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 { @@ -178,12 +176,12 @@ static int mhldebug = 0; #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; @@ -219,7 +217,7 @@ static int evalvar(struct mcomp *); 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 *); @@ -231,9 +229,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 *); @@ -247,7 +245,7 @@ int 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; @@ -283,11 +281,6 @@ main(int argc, char **argv) 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", @@ -347,9 +340,6 @@ main(int argc, char **argv) files[vecp++] = cp; } - if (!folder) - folder = getenv("mhfolder"); - if (isatty(fileno(stdout))) { if (mhl_action) { SIGNAL(SIGINT, SIG_IGN); @@ -365,10 +355,10 @@ main(int argc, char **argv) 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) { @@ -407,7 +397,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; @@ -443,7 +433,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; @@ -470,25 +460,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_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; @@ -1228,37 +1210,25 @@ putch(char ch) } -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);