Refinement to e30560d793ff5bc704dadc2eab9d31100ad4636b: don't
authorDavid Levine <levinedl@acm.org>
Wed, 20 Jun 2012 00:54:04 +0000 (19:54 -0500)
committerDavid Levine <levinedl@acm.org>
Wed, 20 Jun 2012 00:54:04 +0000 (19:54 -0500)
warn about profile components that are null, e.g.,

: This could be a comment.

or just a hash, e.g.,

sbr/readconfig.c

index 5900c37..0f38fdf 100644 (file)
@@ -107,18 +107,25 @@ readconfig (struct node **npp, FILE *ib, char *file, int ctx)
     }
 
     if (opp == NULL) {
-       /* Check for duplicated profile entries.  But only on this
-          very first call from context_read(), when opp is 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. */
-           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);
+           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);
+                   }
                }
            }
        }