X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/8890670d4c1e8e3f9608c2850c1fe299fb256776..a23477eb:/uip/picksbr.c?ds=inline diff --git a/uip/picksbr.c b/uip/picksbr.c index 99d976d7..21cdb2ca 100644 --- a/uip/picksbr.c +++ b/uip/picksbr.c @@ -1,6 +1,4 @@ - -/* - * picksbr.c -- routines to help pick along... +/* picksbr.c -- routines to help pick along... * * This code is Copyright (c) 2002, by the authors of nmh. See the * COPYRIGHT file in the root directory of the nmh distribution for @@ -115,7 +113,7 @@ static unsigned char cc[] = { #define nxtarg() (*argp ? *argp++ : NULL) #define prvarg() argp-- -#define padvise if (!talked++) advise +#define pinform if (!talked++) inform struct nexus { int (*n_action)(); @@ -203,7 +201,7 @@ pcompile (char **vec, char *date) return (talked ? 0 : 1); if (*argp) { - padvise (NULL, "%s unexpected", *argp); + inform("%s unexpected", *argp); return 0; } @@ -214,14 +212,14 @@ pcompile (char **vec, char *date) static struct nexus * parse (void) { - register char *cp; - register struct nexus *n, *o; + char *cp; + struct nexus *n, *o; if ((n = nexp1 ()) == NULL || (cp = nxtarg ()) == NULL) return n; if (*cp != '-') { - padvise (NULL, "%s unexpected", cp); + pinform("%s unexpected", cp); return NULL; } @@ -242,7 +240,7 @@ parse (void) o->n_L_child = n; if ((o->n_R_child = parse ())) return o; - padvise (NULL, "missing disjunctive"); + pinform("missing disjunctive"); free (o); return NULL; @@ -256,14 +254,14 @@ header: ; static struct nexus * nexp1 (void) { - register char *cp; - register struct nexus *n, *o; + char *cp; + struct nexus *n, *o; if ((n = nexp2 ()) == NULL || (cp = nxtarg ()) == NULL) return n; if (*cp != '-') { - padvise (NULL, "%s unexpected", cp); + pinform("%s unexpected", cp); free (n); return NULL; } @@ -287,7 +285,7 @@ nexp1 (void) o->n_L_child = n; if ((o->n_R_child = nexp1 ())) return o; - padvise (NULL, "missing conjunctive"); + pinform("missing conjunctive"); free (o); return NULL; @@ -302,8 +300,8 @@ header: ; static struct nexus * nexp2 (void) { - register char *cp; - register struct nexus *n; + char *cp; + struct nexus *n; if ((cp = nxtarg ()) == NULL) return NULL; @@ -329,7 +327,7 @@ nexp2 (void) n = newnexus (NOTaction); if ((n->n_L_child = nexp3 ())) return n; - padvise (NULL, "missing negation"); + pinform("missing negation"); free (n); return NULL; @@ -344,15 +342,15 @@ static struct nexus * nexp3 (void) { int i; - register char *cp, *dp; + char *cp, *dp; char buffer[BUFSIZ], temp[64]; - register struct nexus *n; + struct nexus *n; if ((cp = nxtarg ()) == NULL) return NULL; if (*cp != '-') { - padvise (NULL, "%s unexpected", cp); + pinform("%s unexpected", cp); return NULL; } @@ -372,16 +370,16 @@ nexp3 (void) case PRLBR: if ((n = parse ()) == NULL) { - padvise (NULL, "missing group"); + pinform("missing group"); return NULL; } if ((cp = nxtarg ()) == NULL) { - padvise (NULL, "missing -rbrace"); + pinform("missing -rbrace"); return NULL; } if (*cp++ == '-' && smatch (cp, parswit) == PRRBR) return n; - padvise (NULL, "%s unexpected", --cp); + pinform("%s unexpected", --cp); return NULL; default: @@ -398,7 +396,7 @@ nexp3 (void) dp = *brkstring (temp, " ", NULL); header: ; if (!(cp = nxtarg ())) {/* allow -xyz arguments */ - padvise (NULL, "missing argument to %s", argp[-2]); + pinform("missing argument to %s", argp[-2]); return NULL; } n = newnexus (GREPaction); @@ -411,27 +409,27 @@ nexp3 (void) n = newnexus (GREPaction); n->n_header = 0; if (!(cp = nxtarg ())) {/* allow -xyz arguments */ - padvise (NULL, "missing argument to %s", argp[-2]); + pinform("missing argument to %s", argp[-2]); free (n); return NULL; } dp = cp; pattern: ; if (!gcompile (n, dp)) { - padvise (NULL, "pattern error in %s %s", argp[-2], cp); + pinform("pattern error in %s %s", argp[-2], cp); free (n); return NULL; } - n->n_patbuf = getcpy (dp); + n->n_patbuf = mh_xstrdup(dp); return n; case PROTHR: - padvise (NULL, "internal error!"); + pinform("internal error!"); return NULL; case PRDATF: if (!(datesw = nxtarg ()) || *datesw == '-') { - padvise (NULL, "missing argument to %s", argp[-2]); + pinform("missing argument to %s", argp[-2]); return NULL; } return nexp3 (); @@ -439,13 +437,13 @@ nexp3 (void) case PRAFTR: case PRBEFR: if (!(cp = nxtarg ())) {/* allow -xyz arguments */ - padvise (NULL, "missing argument to %s", argp[-2]); + pinform("missing argument to %s", argp[-2]); return NULL; } n = newnexus (TWSaction); n->n_datef = datesw; if (!tcompile (cp, &n->n_tws, n->n_after = i == PRAFTR)) { - padvise (NULL, "unable to parse %s %s", argp[-2], cp); + pinform("unable to parse %s %s", argp[-2], cp); free (n); return NULL; } @@ -457,9 +455,9 @@ nexp3 (void) static struct nexus * newnexus (int (*action)()) { - register struct nexus *p; + struct nexus *p; - p = mh_xcalloc(1, sizeof *p); + NEW0(p); p->n_action = action; return p; } @@ -468,8 +466,8 @@ newnexus (int (*action)()) #define args(a) a, fp, msgnum, start, stop #define params args (n) #define plist \ - register struct nexus *n; \ - register FILE *fp; \ + struct nexus *n; \ + FILE *fp; \ int msgnum; \ long start, \ stop; @@ -490,7 +488,7 @@ pmatches (FILE *fp, int msgnum, long start, long stop, int debug) static void PRaction (struct nexus *n, int level) { - register int i; + int i; for (i = 0; i < level; i++) fprintf (stderr, "| "); @@ -559,9 +557,9 @@ plist static int gcompile (struct nexus *n, char *astr) { - register int c; + int c; int cclcnt; - register unsigned char *ep, *dp, *sp, *lastep = 0; + unsigned char *ep, *dp, *sp, *lastep = 0; dp = (ep = (unsigned char *) n->n_expbuf) + sizeof n->n_expbuf; sp = (unsigned char *) astr; @@ -633,6 +631,7 @@ gcompile (struct nexus *n, char *astr) case '\\': if ((c = *sp++) == '\0') goto cerror; + /* FALLTHRU */ defchar: default: *ep++ = CCHR; @@ -651,7 +650,7 @@ plist { int c, body, lf; long pos = start; - register char *p1, *p2, *ebp, *cbp; + char *p1, *p2, *ebp, *cbp; char ibuf[BUFSIZ]; NMH_UNUSED (msgnum); @@ -682,21 +681,18 @@ plist --p2; break; } - else - lf = 0; + lf = 0; } if (c == '\n') { if (body) break; - else { - if (lf) { - body++; - break; - } - lf++; - /* Unfold by skipping the newline. */ - c = 0; - } + if (lf) { + body++; + break; + } + lf++; + /* Unfold by skipping the newline. */ + c = 0; } if (c && p1 < &linebuf[LBSIZE - 1]) *p1++ = c; @@ -741,7 +737,7 @@ plist static int advance (char *alp, char *aep) { - register unsigned char *lp, *ep, *curlp; + unsigned char *lp, *ep, *curlp; lp = (unsigned char *)alp; ep = (unsigned char *)aep; @@ -809,7 +805,7 @@ advance (char *alp, char *aep) return 0; default: - admonish (NULL, "advance() botch -- you lose big"); + inform("advance() botch -- you lose big, continuing..."); return 0; } } @@ -818,8 +814,8 @@ advance (char *alp, char *aep) static int cclass (unsigned char *aset, int ac, int af) { - register unsigned int n; - register unsigned char c, *set; + unsigned int n; + unsigned char c, *set; set = aset; if ((c = ac) == 0) @@ -837,12 +833,12 @@ cclass (unsigned char *aset, int ac, int af) static int tcompile (char *ap, struct tws *tb, int isafter) { - register struct tws *tw; + struct tws *tw; if ((tw = tws_parse (ap, isafter)) == NULL) return 0; - twscopy (tb, tw); + *tb = *tw; return 1; } @@ -851,7 +847,7 @@ static struct tws * tws_parse (char *ap, int isafter) { char buffer[BUFSIZ]; - register struct tws *tw, *ts; + struct tws *tw, *ts; if ((tw = tws_special (ap)) != NULL) { tw->tw_sec = tw->tw_min = isafter ? 59 : 0; @@ -893,7 +889,7 @@ tws_special (char *ap) { int i; time_t clock; - register struct tws *tw; + struct tws *tw; time (&clock); if (!strcasecmp (ap, "today")) @@ -916,11 +912,12 @@ tws_special (char *ap) if ((i -= tw->tw_wday) > 0) i -= 7; } - else + else { if (*ap != '-') return NULL; - else /* -ddd days ago */ - i = atoi (ap); /* we should error check this */ + /* -ddd days ago */ + i = atoi (ap); /* we should error check this */ + } clock += (long) ((60 * 60 * 24) * i); return dlocaltime (&clock); @@ -932,9 +929,9 @@ TWSaction (params) plist { int state; - register char *bp; - char buf[BUFSIZ], name[NAMESZ]; - register struct tws *tw; + char *bp; + char buf[NMH_BUFSIZ], name[NAMESZ]; + struct tws *tw; m_getfld_state_t gstate = 0; NMH_UNUSED (stop); @@ -944,9 +941,8 @@ plist switch (state = m_getfld (&gstate, name, buf, &bufsz, fp)) { case FLD: case FLDPLUS: - if (bp != NULL) - free (bp), bp = NULL; - bp = add (buf, NULL); + mh_xfree(bp); + bp = mh_xstrdup(buf); while (state == FLDPLUS) { bufsz = sizeof buf; state = m_getfld (&gstate, name, buf, &bufsz, fp); @@ -961,9 +957,8 @@ plist case LENERR: case FMTERR: if (state == LENERR || state == FMTERR) - advise (NULL, "format error in message %d", msgnum); - if (bp != NULL) - free (bp); + inform("format error in message %d", msgnum); + mh_xfree(bp); return 0; default: @@ -974,13 +969,12 @@ plist m_getfld_state_destroy (&gstate); if ((tw = dparsetime (bp)) == NULL) - advise (NULL, "unable to parse %s field in message %d, matching...", + inform("unable to parse %s field in message %d, matching...", n->n_datef, msgnum), state = 1; else state = n->n_after ? (twsort (tw, &n->n_tws) > 0) : (twsort (tw, &n->n_tws) < 0); - if (bp != NULL) - free (bp); + mh_xfree(bp); return state; }