X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Fpicksbr.c;h=f95ddbc37b89f958940df3e312f75db7ff74c728;hp=c0692a8e8127f1b1d71425d8a317cbea3509cf01;hb=714b5c530ece27ea2835a313013f5b770163403c;hpb=ced6090a330d3d83d0bce709f756aa3d7d65fea4 diff --git a/uip/picksbr.c b/uip/picksbr.c index c0692a8..f95ddbc 100644 --- a/uip/picksbr.c +++ b/uip/picksbr.c @@ -206,11 +206,11 @@ static int TWSaction(); int -pcompile (char **vec, char *date) +pcompile(char **vec, char *date) { register char *cp; - if ((cp = getenv ("MHPDEBUG")) && *cp) + if ((cp = getenv("MHPDEBUG")) && *cp) pdebug++; argp = vec; @@ -218,11 +218,11 @@ pcompile (char **vec, char *date) datesw = "date"; talked = 0; - if ((head = parse ()) == NULL) + if ((head = parse()) == NULL) return (talked ? 0 : 1); if (*argp) { - padvise (NULL, "%s unexpected", *argp); + padvise(NULL, "%s unexpected", *argp); return 0; } @@ -231,141 +231,141 @@ pcompile (char **vec, char *date) static struct nexus * -parse (void) +parse(void) { register char *cp; register struct nexus *n, *o; - if ((n = nexp1 ()) == NULL || (cp = nxtarg ()) == NULL) + if ((n = nexp1()) == NULL || (cp = nxtarg()) == NULL) return n; if (*cp != '-') { - padvise (NULL, "%s unexpected", cp); + padvise(NULL, "%s unexpected", cp); return NULL; } if (*++cp == '-') goto header; - switch (smatch (cp, parswit)) { + switch (smatch(cp, parswit)) { case AMBIGSW: - ambigsw (cp, parswit); + ambigsw(cp, parswit); talked++; return NULL; case UNKWNSW: - fprintf (stderr, "-%s unknown\n", cp); + fprintf(stderr, "-%s unknown\n", cp); talked++; return NULL; case PROR: - o = newnexus (ORaction); + o = newnexus(ORaction); o->n_L_child = n; - if ((o->n_R_child = parse ())) + if ((o->n_R_child = parse())) return o; - padvise (NULL, "missing disjunctive"); + padvise(NULL, "missing disjunctive"); return NULL; header: ; default: - prvarg (); + prvarg(); return n; } } static struct nexus * -nexp1 (void) +nexp1(void) { register char *cp; register struct nexus *n, *o; - if ((n = nexp2 ()) == NULL || (cp = nxtarg ()) == NULL) + if ((n = nexp2()) == NULL || (cp = nxtarg()) == NULL) return n; if (*cp != '-') { - padvise (NULL, "%s unexpected", cp); + padvise(NULL, "%s unexpected", cp); return NULL; } if (*++cp == '-') goto header; - switch (smatch (cp, parswit)) { + switch (smatch(cp, parswit)) { case AMBIGSW: - ambigsw (cp, parswit); + ambigsw(cp, parswit); talked++; return NULL; case UNKWNSW: - fprintf (stderr, "-%s unknown\n", cp); + fprintf(stderr, "-%s unknown\n", cp); talked++; return NULL; case PRAND: - o = newnexus (ANDaction); + o = newnexus(ANDaction); o->n_L_child = n; - if ((o->n_R_child = nexp1 ())) + if ((o->n_R_child = nexp1())) return o; - padvise (NULL, "missing conjunctive"); + padvise(NULL, "missing conjunctive"); return NULL; header: ; default: - prvarg (); + prvarg(); return n; } } static struct nexus * -nexp2 (void) +nexp2(void) { register char *cp; register struct nexus *n; - if ((cp = nxtarg ()) == NULL) + if ((cp = nxtarg()) == NULL) return NULL; if (*cp != '-') { - prvarg (); - return nexp3 (); + prvarg(); + return nexp3(); } if (*++cp == '-') goto header; - switch (smatch (cp, parswit)) { + switch (smatch(cp, parswit)) { case AMBIGSW: - ambigsw (cp, parswit); + ambigsw(cp, parswit); talked++; return NULL; case UNKWNSW: - fprintf (stderr, "-%s unknown\n", cp); + fprintf(stderr, "-%s unknown\n", cp); talked++; return NULL; case PRNOT: - n = newnexus (NOTaction); - if ((n->n_L_child = nexp3 ())) + n = newnexus(NOTaction); + if ((n->n_L_child = nexp3())) return n; - padvise (NULL, "missing negation"); + padvise(NULL, "missing negation"); return NULL; header: ; default: - prvarg (); - return nexp3 (); + prvarg(); + return nexp3(); } } static struct nexus * -nexp3 (void) +nexp3(void) { int i; register char *cp, *dp; char buffer[BUFSIZ], temp[64]; register struct nexus *n; - if ((cp = nxtarg ()) == NULL) + if ((cp = nxtarg()) == NULL) return NULL; if (*cp != '-') { - padvise (NULL, "%s unexpected", cp); + padvise(NULL, "%s unexpected", cp); return NULL; } @@ -373,32 +373,32 @@ nexp3 (void) dp = ++cp; goto header; } - switch (i = smatch (cp, parswit)) { + switch (i = smatch(cp, parswit)) { case AMBIGSW: - ambigsw (cp, parswit); + ambigsw(cp, parswit); talked++; return NULL; case UNKWNSW: - fprintf (stderr, "-%s unknown\n", cp); + fprintf(stderr, "-%s unknown\n", cp); talked++; return NULL; case PRLBR: - if ((n = parse ()) == NULL) { - padvise (NULL, "missing group"); + if ((n = parse()) == NULL) { + padvise(NULL, "missing group"); return NULL; } - if ((cp = nxtarg ()) == NULL) { - padvise (NULL, "missing -rbrace"); + if ((cp = nxtarg()) == NULL) { + padvise(NULL, "missing -rbrace"); return NULL; } - if (*cp++ == '-' && smatch (cp, parswit) == PRRBR) + if (*cp++ == '-' && smatch(cp, parswit) == PRRBR) return n; - padvise (NULL, "%s unexpected", --cp); + padvise(NULL, "%s unexpected", --cp); return NULL; default: - prvarg (); + prvarg(); return NULL; case PRCC: @@ -408,61 +408,62 @@ nexp3 (void) case PRSUBJ: strncpy(temp, parswit[i].sw, sizeof(temp)); temp[sizeof(temp) - 1] = '\0'; - dp = *brkstring (temp, " ", NULL); + dp = *brkstring(temp, " ", NULL); header: ; - if (!(cp = nxtarg ())) { /* allow -xyz arguments */ - padvise (NULL, "missing argument to %s", + if (!(cp = nxtarg())) { /* allow -xyz arguments */ + padvise(NULL, "missing argument to %s", argp[-2]); return NULL; } - n = newnexus (GREPaction); + n = newnexus(GREPaction); n->n_header = 1; - snprintf (buffer, sizeof(buffer), "^%s[ \t]*:.*%s", + snprintf(buffer, sizeof(buffer), "^%s[ \t]*:.*%s", dp, cp); dp = buffer; goto pattern; case PRSRCH: - n = newnexus (GREPaction); + n = newnexus(GREPaction); n->n_header = 0; - if (!(cp = nxtarg ())) { /* allow -xyz arguments */ - padvise (NULL, "missing argument to %s", + if (!(cp = nxtarg())) { /* allow -xyz arguments */ + padvise(NULL, "missing argument to %s", argp[-2]); return NULL; } dp = cp; pattern: ; - if (!gcompile (n, dp)) { - padvise (NULL, "pattern error in %s %s", + if (!gcompile(n, dp)) { + padvise(NULL, "pattern error in %s %s", argp[-2], cp); return NULL; } - n->n_patbuf = getcpy (dp); + n->n_patbuf = getcpy(dp); return n; case PROTHR: - padvise (NULL, "internal error!"); + padvise(NULL, "internal error!"); return NULL; case PRDATF: - if (!(datesw = nxtarg ()) || *datesw == '-') { - padvise (NULL, "missing argument to %s", + if (!(datesw = nxtarg()) || *datesw == '-') { + padvise(NULL, "missing argument to %s", argp[-2]); return NULL; } - return nexp3 (); + return nexp3(); case PRAFTR: case PRBEFR: - if (!(cp = nxtarg ())) { /* allow -xyz arguments */ - padvise (NULL, "missing argument to %s", + if (!(cp = nxtarg())) { /* allow -xyz arguments */ + padvise(NULL, "missing argument to %s", argp[-2]); return NULL; } - n = newnexus (TWSaction); + 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", + if (!tcompile(cp, &n->n_tws, n->n_after = + i == PRAFTR)) { + padvise(NULL, "unable to parse %s %s", argp[-2], cp); return NULL; } @@ -472,12 +473,12 @@ pattern: ; static struct nexus * -newnexus (int (*action)()) +newnexus(int (*action)()) { register struct nexus *p; - if ((p = (struct nexus *) calloc ((size_t) 1, sizeof *p)) == NULL) - adios (NULL, "unable to allocate component storage"); + if ((p = (struct nexus *) calloc((size_t) 1, sizeof *p)) == NULL) + adios(NULL, "unable to allocate component storage"); p->n_action = action; return p; @@ -485,7 +486,7 @@ newnexus (int (*action)()) #define args(a) a, fp, msgnum, start, stop -#define params args (n) +#define params args(n) #define plist \ register struct nexus *n; \ register FILE *fp; \ @@ -494,89 +495,89 @@ newnexus (int (*action)()) stop; int -pmatches (FILE *fp, int msgnum, long start, long stop) +pmatches(FILE *fp, int msgnum, long start, long stop) { if (!head) return 1; if (!talked++ && pdebug) - PRaction (head, 0); + PRaction(head, 0); - return (*head->n_action) (args (head)); + return (*head->n_action) (args(head)); } static void -PRaction (struct nexus *n, int level) +PRaction(struct nexus *n, int level) { register int i; for (i = 0; i < level; i++) - fprintf (stderr, "| "); + fprintf(stderr, "| "); if (n->n_action == ORaction) { - fprintf (stderr, "OR\n"); - PRaction (n->n_L_child, level + 1); - PRaction (n->n_R_child, level + 1); + fprintf(stderr, "OR\n"); + PRaction(n->n_L_child, level + 1); + PRaction(n->n_R_child, level + 1); return; } if (n->n_action == ANDaction) { - fprintf (stderr, "AND\n"); - PRaction (n->n_L_child, level + 1); - PRaction (n->n_R_child, level + 1); + fprintf(stderr, "AND\n"); + PRaction(n->n_L_child, level + 1); + PRaction(n->n_R_child, level + 1); return; } if (n->n_action == NOTaction) { - fprintf (stderr, "NOT\n"); - PRaction (n->n_L_child, level + 1); + fprintf(stderr, "NOT\n"); + PRaction(n->n_L_child, level + 1); return; } if (n->n_action == GREPaction) { - fprintf (stderr, "PATTERN(%s) %s\n", + fprintf(stderr, "PATTERN(%s) %s\n", n->n_header ? "header" : "body", n->n_patbuf); return; } if (n->n_action == TWSaction) { - fprintf (stderr, "TEMPORAL(%s) %s: %s\n", + fprintf(stderr, "TEMPORAL(%s) %s: %s\n", n->n_after ? "after" : "before", n->n_datef, - dasctime (&n->n_tws, TW_NULL)); + dasctime(&n->n_tws, TW_NULL)); return; } - fprintf (stderr, "UNKNOWN(0x%x)\n", + fprintf(stderr, "UNKNOWN(0x%x)\n", (unsigned int)(unsigned long) (*n->n_action)); } static int -ORaction (params) +ORaction(params) plist { - if ((*n->n_L_child->n_action) (args (n->n_L_child))) + if ((*n->n_L_child->n_action) (args(n->n_L_child))) return 1; - return (*n->n_R_child->n_action) (args (n->n_R_child)); + return (*n->n_R_child->n_action) (args(n->n_R_child)); } static int -ANDaction (params) +ANDaction(params) plist { - if (!(*n->n_L_child->n_action) (args (n->n_L_child))) + if (!(*n->n_L_child->n_action) (args(n->n_L_child))) return 0; - return (*n->n_R_child->n_action) (args (n->n_R_child)); + return (*n->n_R_child->n_action) (args(n->n_R_child)); } static int -NOTaction (params) +NOTaction(params) plist { - return (!(*n->n_L_child->n_action) (args (n->n_L_child))); + return (!(*n->n_L_child->n_action) (args(n->n_L_child))); } static int -gcompile (struct nexus *n, char *astr) +gcompile(struct nexus *n, char *astr) { register int c; int cclcnt; @@ -665,7 +666,7 @@ cerror: ; static int -GREPaction (params) +GREPaction(params) plist { int c, body, lf; @@ -673,7 +674,7 @@ plist register char *p1, *p2, *ebp, *cbp; char ibuf[BUFSIZ]; - fseek (fp, start, SEEK_SET); + fseek(fp, start, SEEK_SET); body = 0; ebp = cbp = ibuf; for (;;) { @@ -684,15 +685,15 @@ plist lf = 0; for (;;) { if (p2 >= ebp) { - if (fgets (ibuf, sizeof ibuf, fp) == NULL + if (fgets(ibuf, sizeof ibuf, fp) == NULL || (stop && pos >= stop)) { if (lf) break; return 0; } - pos += (long) strlen (ibuf); + pos += (long) strlen(ibuf); p2 = ibuf; - ebp = ibuf + strlen (ibuf); + ebp = ibuf + strlen(ibuf); } c = *p2++; if (lf && c != '\n') { @@ -725,7 +726,7 @@ plist p2 = n->n_expbuf; if (n->n_circf) { - if (advance (p1, p2)) + if (advance(p1, p2)) return 1; continue; } @@ -734,14 +735,14 @@ plist c = p2[1]; do { if (*p1 == c || cc[(unsigned char)*p1] == c) - if (advance (p1, p2)) + if (advance(p1, p2)) return 1; } while (*p1++); continue; } do { - if (advance (p1, p2)) + if (advance(p1, p2)) return 1; } while (*p1++); } @@ -749,7 +750,7 @@ plist static int -advance (char *alp, char *aep) +advance(char *alp, char *aep) { register unsigned char *lp, *ep, *curlp; @@ -776,14 +777,14 @@ advance (char *alp, char *aep) return 1; case CCL: - if (cclass (ep, *lp++, 1)) { + if (cclass(ep, *lp++, 1)) { ep += *ep + 1; continue; } return 0; case NCCL: - if (cclass (ep, *lp++, 0)) { + if (cclass(ep, *lp++, 0)) { ep += *ep + 1; continue; } @@ -805,7 +806,7 @@ advance (char *alp, char *aep) case CCL | STAR: case NCCL | STAR: curlp = lp; - while (cclass (ep, *lp++, ep[-1] == (CCL | STAR))) + while (cclass(ep, *lp++, ep[-1] == (CCL | STAR))) continue; ep += *ep + 1; goto star; @@ -813,23 +814,23 @@ advance (char *alp, char *aep) star: do { lp--; - if (advance (lp, ep)) + if (advance(lp, ep)) return (1); } while (lp > curlp); return 0; default: - admonish (NULL, "advance() botch -- you lose big"); + admonish(NULL, "advance() botch -- you lose big"); return 0; } } static int -cclass (unsigned char *aset, int ac, int af) +cclass(unsigned char *aset, int ac, int af) { register unsigned int n; - register unsigned char c, *set; + register unsigned char c, *set; set = aset; if ((c = ac) == 0) @@ -845,53 +846,53 @@ cclass (unsigned char *aset, int ac, int af) static int -tcompile (char *ap, struct tws *tb, int isafter) +tcompile(char *ap, struct tws *tb, int isafter) { register struct tws *tw; - if ((tw = tws_parse (ap, isafter)) == NULL) + if ((tw = tws_parse(ap, isafter)) == NULL) return 0; - twscopy (tb, tw); + twscopy(tb, tw); return 1; } static struct tws * -tws_parse (char *ap, int isafter) +tws_parse(char *ap, int isafter) { char buffer[BUFSIZ]; register struct tws *tw, *ts; - if ((tw = tws_special (ap)) != NULL) { + if ((tw = tws_special(ap)) != NULL) { tw->tw_sec = tw->tw_min = isafter ? 59 : 0; tw->tw_hour = isafter ? 23 : 0; return tw; } - if ((tw = dparsetime (ap)) != NULL) + if ((tw = dparsetime(ap)) != NULL) return tw; - if ((ts = dlocaltimenow ()) == NULL) + if ((ts = dlocaltimenow()) == NULL) return NULL; - snprintf (buffer, sizeof(buffer), "%s %s", ap, dtwszone (ts)); - if ((tw = dparsetime (buffer)) != NULL) + snprintf(buffer, sizeof(buffer), "%s %s", ap, dtwszone(ts)); + if ((tw = dparsetime(buffer)) != NULL) return tw; - snprintf (buffer, sizeof(buffer), "%s %02d:%02d:%02d %s", ap, - ts->tw_hour, ts->tw_min, ts->tw_sec, dtwszone (ts)); - if ((tw = dparsetime (buffer)) != NULL) + snprintf(buffer, sizeof(buffer), "%s %02d:%02d:%02d %s", ap, + ts->tw_hour, ts->tw_min, ts->tw_sec, dtwszone(ts)); + if ((tw = dparsetime(buffer)) != NULL) return tw; - snprintf (buffer, sizeof(buffer), "%02d %s %04d %s", + snprintf(buffer, sizeof(buffer), "%02d %s %04d %s", ts->tw_mday, tw_moty[ts->tw_mon], ts->tw_year, ap); - if ((tw = dparsetime (buffer)) != NULL) + if ((tw = dparsetime(buffer)) != NULL) return tw; - snprintf (buffer, sizeof(buffer), "%02d %s %04d %s %s", + snprintf(buffer, sizeof(buffer), "%02d %s %04d %s %s", ts->tw_mday, tw_moty[ts->tw_mon], ts->tw_year, - ap, dtwszone (ts)); - if ((tw = dparsetime (buffer)) != NULL) + ap, dtwszone(ts)); + if ((tw = dparsetime(buffer)) != NULL) return tw; return NULL; @@ -899,29 +900,29 @@ tws_parse (char *ap, int isafter) static struct tws * -tws_special (char *ap) +tws_special(char *ap) { int i; time_t clock; register struct tws *tw; - time (&clock); - if (!mh_strcasecmp (ap, "today")) - return dlocaltime (&clock); - if (!mh_strcasecmp (ap, "yesterday")) { + time(&clock); + if (!mh_strcasecmp(ap, "today")) + return dlocaltime(&clock); + if (!mh_strcasecmp(ap, "yesterday")) { clock -= (long) (60 * 60 * 24); - return dlocaltime (&clock); + return dlocaltime(&clock); } - if (!mh_strcasecmp (ap, "tomorrow")) { + if (!mh_strcasecmp(ap, "tomorrow")) { clock += (long) (60 * 60 * 24); - return dlocaltime (&clock); + return dlocaltime(&clock); } for (i = 0; tw_ldotw[i]; i++) - if (!mh_strcasecmp (ap, tw_ldotw[i])) + if (!mh_strcasecmp(ap, tw_ldotw[i])) break; if (tw_ldotw[i]) { - if ((tw = dlocaltime (&clock)) == NULL) + if ((tw = dlocaltime(&clock)) == NULL) return NULL; if ((i -= tw->tw_wday) > 0) i -= 7; @@ -930,15 +931,15 @@ tws_special (char *ap) if (*ap != '-') return NULL; else /* -ddd days ago */ - i = atoi (ap); /* we should error check this */ + i = atoi(ap); /* we should error check this */ clock += (long) ((60 * 60 * 24) * i); - return dlocaltime (&clock); + return dlocaltime(&clock); } static int -TWSaction (params) +TWSaction(params) plist { int state; @@ -946,21 +947,21 @@ plist char buf[BUFSIZ], name[NAMESZ]; register struct tws *tw; - fseek (fp, start, SEEK_SET); + fseek(fp, start, SEEK_SET); for (state = FLD, bp = NULL;;) { - switch (state = m_getfld (state, name, buf, sizeof buf, fp)) { + switch (state = m_getfld(state, name, buf, sizeof buf, fp)) { case FLD: case FLDEOF: case FLDPLUS: if (bp != NULL) - free (bp), bp = NULL; - bp = add (buf, NULL); + free(bp), bp = NULL; + bp = add(buf, NULL); while (state == FLDPLUS) { - state = m_getfld (state, name, buf, + state = m_getfld(state, name, buf, sizeof buf, fp); - bp = add (buf, bp); + bp = add(buf, bp); } - if (!mh_strcasecmp (name, n->n_datef)) + if (!mh_strcasecmp(name, n->n_datef)) break; if (state != FLDEOF) continue; @@ -971,25 +972,25 @@ plist case LENERR: case FMTERR: if (state == LENERR || state == FMTERR) - advise (NULL, "format error in message %d", msgnum); + advise(NULL, "format error in message %d", msgnum); if (bp != NULL) - free (bp); + free(bp); return 0; default: - adios (NULL, "internal error -- you lose"); + adios(NULL, "internal error -- you lose"); } break; } - if ((tw = dparsetime (bp)) == NULL) - advise (NULL, "unable to parse %s field in message %d, matching...", + if ((tw = dparsetime(bp)) == NULL) + advise(NULL, "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); + state = n->n_after ? (twsort(tw, &n->n_tws) > 0) + : (twsort(tw, &n->n_tws) < 0); if (bp != NULL) - free (bp); + free(bp); return state; }