X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=sbr%2Freadconfig.c;h=4cf05f1b2db56faa222446601007f0b93f766fb8;hb=0808f3e85977428948be17783e31c14c4f4b8622;hp=56749266ff2605ac897912440765a37898d8a681;hpb=703b7d98727c1f7e1e76434a04a3125d76d7d168;p=mmh diff --git a/sbr/readconfig.c b/sbr/readconfig.c index 5674926..4cf05f1 100644 --- a/sbr/readconfig.c +++ b/sbr/readconfig.c @@ -20,7 +20,6 @@ static struct procstr procs[] = { { "context", &context }, { "mh-sequences", &mh_seq }, { "buildmimeproc", &buildmimeproc }, - { "faceproc", &faceproc }, { "fileproc", &fileproc }, { "formatproc", &formatproc }, { "incproc", &incproc }, @@ -107,5 +106,36 @@ readconfig (struct node **npp, FILE *ib, char *file, int ctx) break; } + if (opp == NULL) { + /* Check for duplicated non-null profile entries. Except + allow multiple profile entries named "#", because that's + what the mh-profile man page suggests using for comments. + + Only do this check on the very first call from + context_read(), when opp is NULL. That way, entries in + mhn.defaults can be overridden without triggering + warnings. + + Note that that mhn.defaults, $MHN, $MHBUILD, $MHSHOW, and + $MHSTORE all put their entries into just one list, m_defs, + the same list that the profile uses. */ + + struct node *np; + for (np = m_defs; np; np = np->n_next) { + /* Yes, this is O(N^2). The profile should be small enough so + that's not a performance problem. */ + if (strlen (np->n_name) > 0 && strcmp ("#", np->n_name)) { + struct node *np2; + for (np2 = np->n_next; np2; np2 = np2->n_next) { + if (! mh_strcasecmp (np->n_name, np2->n_name)) { + admonish (NULL, "multiple \"%s\" profile components " + "in %s, ignoring \"%s\"", + np->n_name, defpath, np2->n_field); + } + } + } + } + } + opp = npp; }