]> git.cameronkatri.com Git - mandoc.git/blobdiff - mdoc_term.c
Tag an internal release, 1.10.7, that marks being in sync with OpenBSD's
[mandoc.git] / mdoc_term.c
index 2bdb85a0fe51376d7b61732c20b822ea6525df5d..bdc16100fac228d598ac538ceab68186f26ed2e2 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: mdoc_term.c,v 1.191 2010/09/27 23:03:44 schwarze Exp $ */
+/*     $Id: mdoc_term.c,v 1.196 2010/12/05 15:37:30 kristaps Exp $ */
 /*
  * Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010 Ingo Schwarze <schwarze@openbsd.org>
@@ -102,6 +102,7 @@ static      int       termp_fl_pre(DECL_ARGS);
 static int       termp_fn_pre(DECL_ARGS);
 static int       termp_fo_pre(DECL_ARGS);
 static int       termp_ft_pre(DECL_ARGS);
+static int       termp_igndelim_pre(DECL_ARGS);
 static int       termp_in_pre(DECL_ARGS);
 static int       termp_it_pre(DECL_ARGS);
 static int       termp_li_pre(DECL_ARGS);
@@ -109,7 +110,6 @@ static      int       termp_lk_pre(DECL_ARGS);
 static int       termp_nd_pre(DECL_ARGS);
 static int       termp_nm_pre(DECL_ARGS);
 static int       termp_ns_pre(DECL_ARGS);
-static int       termp_pf_pre(DECL_ARGS);
 static int       termp_quote_pre(DECL_ARGS);
 static int       termp_rs_pre(DECL_ARGS);
 static int       termp_rv_pre(DECL_ARGS);
@@ -196,12 +196,12 @@ static    const struct termact termacts[MDOC_MAX] = {
        { NULL, NULL }, /* Eo */
        { termp_xx_pre, NULL }, /* Fx */
        { termp_bold_pre, NULL }, /* Ms */
-       { NULL, NULL }, /* No */
+       { termp_igndelim_pre, NULL }, /* No */
        { termp_ns_pre, NULL }, /* Ns */
        { termp_xx_pre, NULL }, /* Nx */
        { termp_xx_pre, NULL }, /* Ox */
        { NULL, NULL }, /* Pc */
-       { termp_pf_pre, termp_pf_post }, /* Pf */
+       { termp_igndelim_pre, termp_pf_post }, /* Pf */
        { termp_quote_pre, termp_quote_post }, /* Po */
        { termp_quote_pre, termp_quote_post }, /* Pq */
        { NULL, NULL }, /* Qc */
@@ -1584,12 +1584,18 @@ termp_bd_pre(DECL_ARGS)
                 * anyway, so don't sweat it.
                 */
                switch (nn->tok) {
+               case (MDOC_Sm):
+                       /* FALLTHROUGH */
                case (MDOC_br):
                        /* FALLTHROUGH */
                case (MDOC_sp):
                        /* FALLTHROUGH */
                case (MDOC_Bl):
                        /* FALLTHROUGH */
+               case (MDOC_D1):
+                       /* FALLTHROUGH */
+               case (MDOC_Dl):
+                       /* FALLTHROUGH */
                case (MDOC_Lp):
                        /* FALLTHROUGH */
                case (MDOC_Pp):
@@ -1655,7 +1661,7 @@ termp_xx_pre(DECL_ARGS)
        pp = NULL;
        switch (n->tok) {
        case (MDOC_Bsx):
-               pp = "BSDI BSD/OS";
+               pp = "BSD/OS";
                break;
        case (MDOC_Dx):
                pp = "DragonFly";
@@ -1684,7 +1690,7 @@ termp_xx_pre(DECL_ARGS)
 
 /* ARGSUSED */
 static int
-termp_pf_pre(DECL_ARGS)
+termp_igndelim_pre(DECL_ARGS)
 {
 
        p->flags |= TERMP_IGNDELIM;
@@ -1697,7 +1703,6 @@ static void
 termp_pf_post(DECL_ARGS)
 {
 
-       p->flags &= ~TERMP_IGNDELIM;
        p->flags |= TERMP_NOSPACE;
 }
 
@@ -2075,7 +2080,7 @@ termp_lk_pre(DECL_ARGS)
 
        nn = sv = n->child;
 
-       if (NULL == nn->next)
+       if (NULL == nn || NULL == nn->next)
                return(1);
 
        for (nn = nn->next; nn; nn = nn->next)