X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=sbr%2Freadconfig.c;h=65ca28af0285ab24fde31a9986678aacd3744346;hb=374ece2e88368afd6e0a29c4ee4b75ffa9e28b39;hp=eba6eece17ad2c2d1e82ca45473ddca486b8aae2;hpb=81a21a9a97d8633f6d6231e31fdb6e328d0d3ff2;p=mmh diff --git a/sbr/readconfig.c b/sbr/readconfig.c index eba6eec..65ca28a 100644 --- a/sbr/readconfig.c +++ b/sbr/readconfig.c @@ -3,8 +3,6 @@ * readconfig.c -- base routine to read nmh configuration files * -- such as nmh profile, context file, or mhn.defaults. * - * $Id$ - * * This code is Copyright (c) 2002, by the authors of nmh. See the * COPYRIGHT file in the root directory of the nmh distribution for * complete copyright information. @@ -22,8 +20,8 @@ static struct procstr procs[] = { { "context", &context }, { "mh-sequences", &mh_seq }, { "buildmimeproc", &buildmimeproc }, - { "faceproc", &faceproc }, { "fileproc", &fileproc }, + { "formatproc", &formatproc }, { "incproc", &incproc }, { "installproc", &installproc }, { "lproc", &lproc }, @@ -33,7 +31,6 @@ static struct procstr procs[] = { { "mshproc", &mshproc }, { "packproc", &packproc }, { "postproc", &postproc }, - { "rmfproc", &rmfproc }, { "rmmproc", &rmmproc }, { "sendproc", &sendproc }, { "showmimeproc", &showmimeproc }, @@ -109,5 +106,29 @@ readconfig (struct node **npp, FILE *ib, char *file, int ctx) break; } + if (opp == NULL) { + /* Check for duplicated non-null profile entries. Also ignore + profile entries that are just "#", 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. */ + + 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)) { + printf ("%d\n", strlen (np->n_name)); + admonish (NULL, "multiple \"%s\" profile components " + "in %s, ignoring \"%s\"", + np->n_name, defpath, np2->n_field); + } + } + } + } + } + opp = npp; }