X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/c6f2d14d9c38345075629af3487c2de491584ca1..a23477eb:/uip/picksbr.c?ds=sidebyside diff --git a/uip/picksbr.c b/uip/picksbr.c index 0085b7a0..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; } @@ -221,7 +219,7 @@ parse (void) 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; @@ -263,7 +261,7 @@ nexp1 (void) 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; @@ -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; @@ -352,7 +350,7 @@ nexp3 (void) 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; } @@ -633,6 +631,7 @@ gcompile (struct nexus *n, char *astr) case '\\': if ((c = *sp++) == '\0') goto cerror; + /* FALLTHRU */ defchar: default: *ep++ = CCHR; @@ -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; @@ -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; } } @@ -842,7 +838,7 @@ tcompile (char *ap, struct tws *tb, int isafter) if ((tw = tws_parse (ap, isafter)) == NULL) return 0; - twscopy (tb, tw); + *tb = *tw; return 1; } @@ -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); @@ -933,7 +930,7 @@ plist { int state; char *bp; - char buf[BUFSIZ], name[NAMESZ]; + 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; }