]> git.cameronkatri.com Git - mandoc.git/blobdiff - mdoc_term.c
Partial cleanup of argument count validation in mdoc(7):
[mandoc.git] / mdoc_term.c
index f6a9a0fcdf19ca049021598564ae13e6e824fa6f..97b6f6025ab55442f8c22b3c6a25c277b5de7d99 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: mdoc_term.c,v 1.204 2010/12/25 23:25:53 kristaps Exp $ */
+/*     $Id: mdoc_term.c,v 1.207 2011/01/02 12:21:07 kristaps Exp $ */
 /*
  * Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010 Ingo Schwarze <schwarze@openbsd.org>
@@ -312,11 +312,20 @@ print_mdoc_node(DECL_ARGS)
 
        memset(&npair, 0, sizeof(struct termpair));
        npair.ppair = pair;
-
-       if (MDOC_TEXT == n->type)
-               term_word(p, n->string); 
-       else if (termacts[n->tok].pre && ENDBODY_NOT == n->end)
-               chld = (*termacts[n->tok].pre)(p, &npair, m, n);
+       
+       switch (n->type) {
+       case (MDOC_TEXT):
+               term_word(p, n->string);
+               break;
+       case (MDOC_TBL):
+               term_tbl(p, n->span);
+               break;
+       default:
+               if (termacts[n->tok].pre && ENDBODY_NOT == n->end)
+                       chld = (*termacts[n->tok].pre)
+                               (p, &npair, m, n);
+               break;
+       }
 
        /*
         * Keeps only work until the end of a line.  If a keep was
@@ -353,8 +362,14 @@ print_mdoc_node(DECL_ARGS)
 
        term_fontpopq(p, font);
 
-       if (MDOC_TEXT != n->type && termacts[n->tok].post && 
-                       ! (MDOC_ENDED & n->flags)) {
+       switch (n->type) {
+       case (MDOC_TEXT):
+               break;
+       case (MDOC_TBL):
+               break;
+       default:
+               if ( ! termacts[n->tok].post || MDOC_ENDED & n->flags)
+                       break;
                (void)(*termacts[n->tok].post)(p, &npair, m, n);
 
                /*
@@ -372,6 +387,7 @@ print_mdoc_node(DECL_ARGS)
                 */
                if (ENDBODY_NOSPACE == n->end)
                        p->flags |= TERMP_NOSPACE;
+               break;
        }
 
        if (MDOC_EOS & n->flags)
@@ -1855,8 +1871,6 @@ termp_quote_pre(DECL_ARGS)
        case (MDOC_Bq):
                term_word(p, "[");
                break;
-       case (MDOC__T):
-               /* FALLTHROUGH */
        case (MDOC_Do):
                /* FALLTHROUGH */
        case (MDOC_Dq):
@@ -1867,6 +1881,8 @@ termp_quote_pre(DECL_ARGS)
        case (MDOC_Pq):
                term_word(p, "(");
                break;
+       case (MDOC__T):
+               /* FALLTHROUGH */
        case (MDOC_Qo):
                /* FALLTHROUGH */
        case (MDOC_Qq):
@@ -1919,8 +1935,6 @@ termp_quote_post(DECL_ARGS)
        case (MDOC_Bq):
                term_word(p, "]");
                break;
-       case (MDOC__T):
-               /* FALLTHROUGH */
        case (MDOC_Do):
                /* FALLTHROUGH */
        case (MDOC_Dq):
@@ -1931,6 +1945,8 @@ termp_quote_post(DECL_ARGS)
        case (MDOC_Pq):
                term_word(p, ")");
                break;
+       case (MDOC__T):
+               /* FALLTHROUGH */
        case (MDOC_Qo):
                /* FALLTHROUGH */
        case (MDOC_Qq):