]> git.ozlabs.org Git - ccan/commitdiff
Canonicalize typenames, and remove empty sections.
authorRusty Russell <rusty@rustcorp.com.au>
Sat, 15 Nov 2008 12:09:34 +0000 (22:39 +1030)
committerRusty Russell <rusty@rustcorp.com.au>
Sat, 15 Nov 2008 12:09:34 +0000 (22:39 +1030)
tools/doc_extract-core.c
tools/doc_extract.c

index a8d9335b0c7a9a46ce94340801d09da1835cab28..f3666e59924926aeed86bec1478fad53e1f6eb56 100644 (file)
@@ -79,15 +79,41 @@ static bool is_summary_line(const char *line)
        return true;
 }
 
+static bool empty_section(struct doc_section *d)
+{
+       unsigned int i;
+
+       for (i = 0; i < d->num_lines; i++)
+               if (!is_blank(d->lines[i]))
+                       return false;
+       return true;
+}
+
 static struct doc_section *new_section(struct list_head *list,
                                       const char *function,
                                       const char *type)
 {
-       struct doc_section *d = talloc(list, struct doc_section);
+       struct doc_section *d;
+       char *lowertype;
+       unsigned int i;
+
+       /* If previous section was empty, delete it. */
+       d = list_tail(list, struct doc_section, list);
+       if (d && empty_section(d)) {
+               list_del(&d->list);
+               talloc_free(d);
+       }
+
+       d = talloc(list, struct doc_section);
        d->function = function;
-       d->type = type;
+       lowertype = talloc_size(d, strlen(type) + 1);
+       /* Canonicalize type to lower case. */
+       for (i = 0; i < strlen(type)+1; i++)
+               lowertype[i] = tolower(type[i]);
+       d->type = lowertype;
        d->lines = NULL;
        d->num_lines = 0;
+
        list_add_tail(list, &d->list);
        return d;
 }
index b8969ef23504b3108bb88355ce0f70a176113e84..c8ecbf8e6965240c02630884bc64b9af44ccfdf6 100644 (file)
@@ -59,9 +59,9 @@ int main(int argc, char *argv[])
                                        if (!streq(d->function, function))
                                                continue;
                                }
-                               if (strcasecmp(type, "all") == 0)
+                               if (streq(type, "all"))
                                        printf("%s:\n", d->type);
-                               else if (strcasecmp(d->type, type) != 0)
+                               else if (!streq(d->type, type))
                                        continue;
 
                                for (j = 0; j < d->num_lines; j++)