]> git.cameronkatri.com Git - mandoc.git/blobdiff - mdoc_term.c
In URIs in apropos(1) result tables,
[mandoc.git] / mdoc_term.c
index ecac6a6664cda046d90f41cc69de0b2c81506ba0..e9ea455a48e833c04698998e0ad77ebcce7a5598 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: mdoc_term.c,v 1.342 2017/02/04 11:58:09 schwarze Exp $ */
+/*     $Id: mdoc_term.c,v 1.346 2017/02/17 19:15:41 schwarze Exp $ */
 /*
  * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010, 2012-2017 Ingo Schwarze <schwarze@openbsd.org>
 /*
  * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010, 2012-2017 Ingo Schwarze <schwarze@openbsd.org>
@@ -395,14 +395,6 @@ print_mdoc_node(DECL_ARGS)
                 */
                if (ENDBODY_NOT != n->end)
                        n->body->flags |= NODE_ENDED;
                 */
                if (ENDBODY_NOT != n->end)
                        n->body->flags |= NODE_ENDED;
-
-               /*
-                * End of line terminating an implicit block
-                * while an explicit block is still open.
-                * Continue the explicit block without spacing.
-                */
-               if (ENDBODY_NOSPACE == n->end)
-                       p->flags |= TERMP_NOSPACE;
                break;
        }
 
                break;
        }
 
@@ -614,6 +606,7 @@ termp_ll_pre(DECL_ARGS)
 static int
 termp_it_pre(DECL_ARGS)
 {
 static int
 termp_it_pre(DECL_ARGS)
 {
+       struct roffsu           su;
        char                    buf[24];
        const struct roff_node *bl, *nn;
        size_t                  ncols, dcol;
        char                    buf[24];
        const struct roff_node *bl, *nn;
        size_t                  ncols, dcol;
@@ -691,9 +684,12 @@ termp_it_pre(DECL_ARGS)
 
                for (i = 0, nn = n->prev;
                    nn->prev && i < (int)ncols;
 
                for (i = 0, nn = n->prev;
                    nn->prev && i < (int)ncols;
-                   nn = nn->prev, i++)
-                       offset += dcol + a2width(p,
-                           bl->norm->Bl.cols[i]);
+                   nn = nn->prev, i++) {
+                       SCALE_HS_INIT(&su,
+                           term_strlen(p, bl->norm->Bl.cols[i]));
+                       su.scale /= term_strlen(p, "0");
+                       offset += term_hspan(p, &su) / 24 + dcol;
+               }
 
                /*
                 * When exceeding the declared number of columns, leave
 
                /*
                 * When exceeding the declared number of columns, leave
@@ -708,7 +704,9 @@ termp_it_pre(DECL_ARGS)
                 * Use the declared column widths, extended as explained
                 * in the preceding paragraph.
                 */
                 * Use the declared column widths, extended as explained
                 * in the preceding paragraph.
                 */
-               width = a2width(p, bl->norm->Bl.cols[i]) + dcol;
+               SCALE_HS_INIT(&su, term_strlen(p, bl->norm->Bl.cols[i]));
+               su.scale /= term_strlen(p, "0");
+               width = term_hspan(p, &su) / 24 + dcol;
                break;
        default:
                if (NULL == bl->norm->Bl.width)
                break;
        default:
                if (NULL == bl->norm->Bl.width)
@@ -996,7 +994,7 @@ termp_nm_pre(DECL_ARGS)
                return 1;
        }
 
                return 1;
        }
 
-       if (NULL == n->child && NULL == meta->name)
+       if (n->child == NULL)
                return 0;
 
        if (n->type == ROFFT_HEAD)
                return 0;
 
        if (n->type == ROFFT_HEAD)
@@ -1020,8 +1018,6 @@ termp_nm_pre(DECL_ARGS)
        }
 
        term_fontpush(p, TERMFONT_BOLD);
        }
 
        term_fontpush(p, TERMFONT_BOLD);
-       if (NULL == n->child)
-               term_word(p, meta->name);
        return 1;
 }
 
        return 1;
 }
 
@@ -1718,6 +1714,8 @@ termp_quote_pre(DECL_ARGS)
        case MDOC_Bq:
                term_word(p, "[");
                break;
        case MDOC_Bq:
                term_word(p, "[");
                break;
+       case MDOC__T:
+               /* FALLTHROUGH */
        case MDOC_Do:
        case MDOC_Dq:
                term_word(p, "\\(Lq");
        case MDOC_Do:
        case MDOC_Dq:
                term_word(p, "\\(Lq");
@@ -1732,7 +1730,6 @@ termp_quote_pre(DECL_ARGS)
        case MDOC_Pq:
                term_word(p, "(");
                break;
        case MDOC_Pq:
                term_word(p, "(");
                break;
-       case MDOC__T:
        case MDOC_Qo:
        case MDOC_Qq:
                term_word(p, "\"");
        case MDOC_Qo:
        case MDOC_Qq:
                term_word(p, "\"");
@@ -1775,6 +1772,8 @@ termp_quote_post(DECL_ARGS)
        case MDOC_Bq:
                term_word(p, "]");
                break;
        case MDOC_Bq:
                term_word(p, "]");
                break;
+       case MDOC__T:
+               /* FALLTHROUGH */
        case MDOC_Do:
        case MDOC_Dq:
                term_word(p, "\\(Rq");
        case MDOC_Do:
        case MDOC_Dq:
                term_word(p, "\\(Rq");
@@ -1791,7 +1790,6 @@ termp_quote_post(DECL_ARGS)
        case MDOC_Pq:
                term_word(p, ")");
                break;
        case MDOC_Pq:
                term_word(p, ")");
                break;
-       case MDOC__T:
        case MDOC_Qo:
        case MDOC_Qq:
                term_word(p, "\"");
        case MDOC_Qo:
        case MDOC_Qq:
                term_word(p, "\"");