]> git.cameronkatri.com Git - mandoc.git/blobdiff - mdoc_man.c
No need to populate the TYPE_arch and TYPE_sec bits, the information
[mandoc.git] / mdoc_man.c
index b3d98f540090481ac243de0220596612e689ea10..ab245313492a452f3056a6ed262bc672079f3ed2 100644 (file)
@@ -1,6 +1,6 @@
-/*     $Id: mdoc_man.c,v 1.94 2015/10/06 18:32:19 schwarze Exp $ */
+/*     $Id: mdoc_man.c,v 1.96 2016/01/08 17:48:09 schwarze Exp $ */
 /*
- * Copyright (c) 2011-2015 Ingo Schwarze <schwarze@openbsd.org>
+ * Copyright (c) 2011-2016 Ingo Schwarze <schwarze@openbsd.org>
  *
  * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
@@ -610,7 +610,8 @@ print_node(DECL_ARGS)
                 */
                act = manacts + n->tok;
                cond = act->cond == NULL || (*act->cond)(meta, n);
-               if (cond && act->pre && (n->end == ENDBODY_NOT || n->nchild))
+               if (cond && act->pre != NULL &&
+                   (n->end == ENDBODY_NOT || n->child != NULL))
                        do_sub = (*act->pre)(meta, n);
        }
 
@@ -681,30 +682,29 @@ post_enc(DECL_ARGS)
 static int
 pre_ex(DECL_ARGS)
 {
-       int      nchild;
+       struct roff_node *nch;
 
        outflags |= MMAN_br | MMAN_nl;
 
        print_word("The");
 
-       nchild = n->nchild;
-       for (n = n->child; n; n = n->next) {
+       for (nch = n->child; nch != NULL; nch = nch->next) {
                font_push('B');
-               print_word(n->string);
+               print_word(nch->string);
                font_pop();
 
-               if (n->next == NULL)
+               if (nch->next == NULL)
                        continue;
 
-               if (nchild > 2) {
+               if (nch->prev != NULL || nch->next->next != NULL) {
                        outflags &= ~MMAN_spc;
                        print_word(",");
                }
-               if (n->next->next == NULL)
+               if (nch->next->next == NULL)
                        print_word("and");
        }
 
-       if (nchild > 1)
+       if (n->child != NULL && n->child->next != NULL)
                print_word("utilities exit\\~0");
        else
                print_word("utility exits\\~0");
@@ -818,13 +818,9 @@ pre_syn(const struct roff_node *n)
 
        switch (n->prev->tok) {
        case MDOC_Fd:
-               /* FALLTHROUGH */
        case MDOC_Fn:
-               /* FALLTHROUGH */
        case MDOC_Fo:
-               /* FALLTHROUGH */
        case MDOC_In:
-               /* FALLTHROUGH */
        case MDOC_Vt:
                outflags |= MMAN_sp;
                break;
@@ -877,7 +873,7 @@ static int
 pre_aq(DECL_ARGS)
 {
 
-       print_word(n->nchild == 1 &&
+       print_word(n->child != NULL && n->child->next == NULL &&
            n->child->tok == MDOC_Mt ?  "<" : "\\(la");
        outflags &= ~MMAN_spc;
        return 1;
@@ -888,7 +884,7 @@ post_aq(DECL_ARGS)
 {
 
        outflags &= ~(MMAN_spc | MMAN_nl);
-       print_word(n->nchild == 1 &&
+       print_word(n->child != NULL && n->child->next == NULL &&
            n->child->tok == MDOC_Mt ?  ">" : "\\(ra");
 }
 
@@ -1004,7 +1000,7 @@ pre_bl(DECL_ARGS)
                return 1;
        }
 
-       if (n->nchild) {
+       if (n->child != NULL) {
                print_line(".TS", MMAN_nl);
                for (icol = 0; icol < n->norm->Bl.ncols; icol++)
                        print_word("l");
@@ -1020,7 +1016,7 @@ post_bl(DECL_ARGS)
 
        switch (n->norm->Bl.type) {
        case LIST_column:
-               if (n->nchild)
+               if (n->child != NULL)
                        print_line(".TE", 0);
                break;
        case LIST_enum:
@@ -1218,7 +1214,7 @@ pre_fl(DECL_ARGS)
 
        font_push('B');
        print_word("\\-");
-       if (n->nchild)
+       if (n->child != NULL)
                outflags &= ~MMAN_spc;
        return 1;
 }
@@ -1228,7 +1224,7 @@ post_fl(DECL_ARGS)
 {
 
        font_pop();
-       if ( ! (n->nchild ||
+       if (!(n->child != NULL ||
            n->next == NULL ||
            n->next->type == ROFFT_TEXT ||
            n->next->flags & MDOC_LINE))
@@ -1375,9 +1371,7 @@ pre_it(DECL_ARGS)
                case LIST_item:
                        return 0;
                case LIST_inset:
-                       /* FALLTHROUGH */
                case LIST_diag:
-                       /* FALLTHROUGH */
                case LIST_ohang:
                        if (bln->norm->Bl.type == LIST_diag)
                                print_line(".B \"", 0);
@@ -1386,9 +1380,7 @@ pre_it(DECL_ARGS)
                        outflags &= ~MMAN_spc;
                        return 1;
                case LIST_bullet:
-                       /* FALLTHROUGH */
                case LIST_dash:
-                       /* FALLTHROUGH */
                case LIST_hyphen:
                        print_width(&bln->norm->Bl, NULL);
                        TPremain = 0;
@@ -1478,15 +1470,10 @@ post_it(DECL_ARGS)
        case ROFFT_BODY:
                switch (bln->norm->Bl.type) {
                case LIST_bullet:
-                       /* FALLTHROUGH */
                case LIST_dash:
-                       /* FALLTHROUGH */
                case LIST_hyphen:
-                       /* FALLTHROUGH */
                case LIST_enum:
-                       /* FALLTHROUGH */
                case LIST_hang:
-                       /* FALLTHROUGH */
                case LIST_tag:
                        assert(Bl_stack_len);
                        Bl_stack[--Bl_stack_len] = 0;
@@ -1600,7 +1587,6 @@ post_nm(DECL_ARGS)
                outflags &= ~MMAN_Bk;
                break;
        case ROFFT_HEAD:
-               /* FALLTHROUGH */
        case ROFFT_ELEM:
                if (n->child != NULL || meta->name != NULL)
                        font_pop();
@@ -1659,34 +1645,33 @@ pre_rs(DECL_ARGS)
 static int
 pre_rv(DECL_ARGS)
 {
-       int      nchild;
+       struct roff_node *nch;
 
        outflags |= MMAN_br | MMAN_nl;
 
-       nchild = n->nchild;
-       if (nchild > 0) {
+       if (n->child != NULL) {
                print_word("The");
 
-               for (n = n->child; n; n = n->next) {
+               for (nch = n->child; nch != NULL; nch = nch->next) {
                        font_push('B');
-                       print_word(n->string);
+                       print_word(nch->string);
                        font_pop();
 
                        outflags &= ~MMAN_spc;
                        print_word("()");
 
-                       if (n->next == NULL)
+                       if (nch->next == NULL)
                                continue;
 
-                       if (nchild > 2) {
+                       if (nch->prev != NULL || nch->next->next != NULL) {
                                outflags &= ~MMAN_spc;
                                print_word(",");
                        }
-                       if (n->next->next == NULL)
+                       if (nch->next->next == NULL)
                                print_word("and");
                }
 
-               if (nchild > 1)
+               if (n->child != NULL && n->child->next != NULL)
                        print_word("functions return");
                else
                        print_word("function returns");