X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=sbr%2Fseq_read.c;h=26337c03729ed80190d22a30266ce0264c6dd655;hp=141c1a2e66b3aedc35b88ad82470ca0fb85b3945;hb=5b792c4424571f05bc2008e3109797d18d7d00d1;hpb=714b5c530ece27ea2835a313013f5b770163403c diff --git a/sbr/seq_read.c b/sbr/seq_read.c index 141c1a2..26337c0 100644 --- a/sbr/seq_read.c +++ b/sbr/seq_read.c @@ -60,10 +60,8 @@ seq_public(struct msgs *mp) FILE *fp; /* - ** If mh_seq == NULL (such as if nmh been compiled with - ** NOPUBLICSEQ), or if *mh_seq == '\0' (the user has defined - ** the "mh-sequences" profile entry, but left it empty), - ** then just return, and do not initialize any public sequences. + ** If public sequences are disabled (e.g. the user has defined + ** an empty `Mh-Sequences' profile entry), then just return. */ if (mh_seq == NULL || *mh_seq == '\0') return; @@ -76,35 +74,38 @@ seq_public(struct msgs *mp) /* Use m_getfld to scan sequence file */ for (state = FLD;;) { - switch (state = m_getfld(state, name, field, sizeof(field), fp)) { - case FLD: - case FLDPLUS: - case FLDEOF: - if (state == FLDPLUS) { - cp = getcpy(field); - while (state == FLDPLUS) { - state = m_getfld(state, name, field, sizeof(field), fp); - cp = add(field, cp); - } - seq_init(mp, getcpy(name), trimcpy(cp)); - free(cp); - } else { - seq_init(mp, getcpy(name), trimcpy(field)); + switch (state = m_getfld(state, name, field, sizeof(field), + fp)) { + case FLD: + case FLDPLUS: + case FLDEOF: + if (state == FLDPLUS) { + cp = getcpy(field); + while (state == FLDPLUS) { + state = m_getfld(state, name, field, + sizeof(field), fp); + cp = add(field, cp); } - if (state == FLDEOF) - break; - continue; + seq_init(mp, getcpy(name), trimcpy(cp)); + free(cp); + } else { + seq_init(mp, getcpy(name), trimcpy(field)); + } + if (state == FLDEOF) + break; + continue; - case BODY: - case BODYEOF: - adios(NULL, "no blank lines are permitted in %s", seqfile); - /* fall */ + case BODY: + case BODYEOF: + adios(NULL, "no blank lines are permitted in %s", + seqfile); + /* fall */ - case FILEEOF: - break; + case FILEEOF: + break; - default: - adios(NULL, "%s is poorly formatted", seqfile); + default: + adios(NULL, "%s is poorly formatted", seqfile); } break; /* break from for loop */ } @@ -131,7 +132,7 @@ seq_private(struct msgs *mp) plen = strlen(mp->foldpath) + 1; for (np = m_defs; np; np = np->n_next) { - if (ssequal("atr-", np->n_name) + if (isprefix("atr-", np->n_name) && (j = strlen(np->n_name) - plen) > alen && *(np->n_name + j) == '-' && strcmp(mp->foldpath, np->n_name + j + 1)