aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/tbl_term.c
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2012-05-27 17:59:23 +0000
committerIngo Schwarze <schwarze@openbsd.org>2012-05-27 17:59:23 +0000
commit20fbc591274e3bc709ff1f06d4618f8429b49096 (patch)
tree25a9d2cbb7a9fc38bf184e5ffab64a64b922fca7 /tbl_term.c
parentee72941131e356c2314d4c3009737bbc0f101fc0 (diff)
downloadmandoc-20fbc591274e3bc709ff1f06d4618f8429b49096.tar.gz
mandoc-20fbc591274e3bc709ff1f06d4618f8429b49096.tar.zst
mandoc-20fbc591274e3bc709ff1f06d4618f8429b49096.zip
Correct width of horizontal spans; relevant in case of centered or
flush right text, for boxes, and when more columns follow the span. Issue found by sthen@ in the net/arp-scan(1) port manual. "Please check them in and I'll look into them later!" kristaps@
Diffstat (limited to 'tbl_term.c')
-rw-r--r--tbl_term.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/tbl_term.c b/tbl_term.c
index 644f6cec..64107fb7 100644
--- a/tbl_term.c
+++ b/tbl_term.c
@@ -1,7 +1,7 @@
-/* $Id: tbl_term.c,v 1.22 2012/05/27 17:54:54 schwarze Exp $ */
+/* $Id: tbl_term.c,v 1.23 2012/05/27 17:59:23 schwarze Exp $ */
/*
* Copyright (c) 2009, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
- * Copyright (c) 2011 Ingo Schwarze <schwarze@openbsd.org>
+ * Copyright (c) 2011, 2012 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
@@ -337,11 +337,19 @@ static void
tbl_literal(struct termp *tp, const struct tbl_dat *dp,
const struct roffcol *col)
{
- size_t len, padl, padr;
+ struct tbl_head *hp;
+ size_t width, len, padl, padr;
+ int spans;
assert(dp->string);
len = term_strlen(tp, dp->string);
- padr = col->width > len ? col->width - len : 0;
+
+ hp = dp->layout->head->next;
+ width = col->width;
+ for (spans = dp->spans; spans--; hp = hp->next)
+ width += tp->tbl.cols[hp->ident].width + 3;
+
+ padr = width > len ? width - len : 0;
padl = 0;
switch (dp->layout->pos) {