]> git.cameronkatri.com Git - mandoc.git/commitdiff
Have mdoc_args() use enum mdoc_list instead of scanning.
authorKristaps Dzonsons <kristaps@bsd.lv>
Sun, 30 May 2010 23:59:59 +0000 (23:59 +0000)
committerKristaps Dzonsons <kristaps@bsd.lv>
Sun, 30 May 2010 23:59:59 +0000 (23:59 +0000)
mdoc_argv.c

index c7ca2e64b9773d05a38fe167ec8db0fb091fe6e6..ceba9873ef42f375db32631020911ce311e502b3 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: mdoc_argv.c,v 1.49 2010/05/17 22:11:42 kristaps Exp $ */
+/*     $Id: mdoc_argv.c,v 1.50 2010/05/30 23:59:59 kristaps Exp $ */
 /*
  * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
  *
@@ -339,7 +339,7 @@ enum margserr
 mdoc_args(struct mdoc *m, int line, int *pos, 
                char *buf, enum mdoct tok, char **v)
 {
-       int               fl, c, i;
+       int               fl;
        struct mdoc_node *n;
 
        fl = mdoc_argflags[tok];
@@ -347,26 +347,13 @@ mdoc_args(struct mdoc *m, int line, int *pos,
        if (MDOC_It != tok)
                return(args(m, line, pos, buf, fl, v));
 
-       /* 
-        * The `It' macro is a special case, as it acquires parameters from its
-        * parent `Bl' context, specifically, we're concerned with -column.
-        */
-
        for (n = m->last; n; n = n->parent)
-               if (MDOC_BLOCK == n->type && MDOC_Bl == n->tok)
+               if (MDOC_Bl == n->tok)
                        break;
 
-       assert(n);
-       c = (int)(n->args ? n->args->argc : 0);
-       assert(c > 0);
-
-       /* LINTED */
-       for (i = 0; i < c; i++) {
-               if (MDOC_Column != n->args->argv[i].arg) 
-                       continue;
+       if (n && LIST_column == n->data.list) {
                fl |= ARGS_TABSEP;
                fl &= ~ARGS_DELIM;
-               break;
        }
 
        return(args(m, line, pos, buf, fl, v));