summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2009-10-19 15:18:30 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2009-10-19 15:18:30 +0000
commit4adbe5cf76760740befd56e2a28d830dcc269c21 (patch)
treedf1161da41f73d57cc1f72e1e55575bff0c47825
parent7c66abf718a841b668e220adaff53df0c108d52f (diff)
downloadmandoc-4adbe5cf76760740befd56e2a28d830dcc269c21.tar.gz
More fixes to scaling-width multipliers (which, just to make my life difficult, differ not only between -mdoc and -man, but between various invocation, e.g., -offset and -width).
-rw-r--r--mdoc_term.c6
-rw-r--r--term.c11
2 files changed, 10 insertions, 7 deletions
diff --git a/mdoc_term.c b/mdoc_term.c
index 5457836d..789d3454 100644
--- a/mdoc_term.c
+++ b/mdoc_term.c
@@ -494,13 +494,13 @@ arg2width(const struct mdoc_argv *arg, int pos)
assert(arg->value[pos]);
if ( ! a2roffsu(arg->value[pos], &su, SCALE_MAX))
- SCALE_HS_INIT(&su, strlen(arg->value[pos]) + 2);
+ SCALE_HS_INIT(&su, strlen(arg->value[pos]));
- return(term_hspan(&su));
+ /* XXX: pachemu? */
+ return(term_hspan(&su) + 2);
}
-/* FIXME: put in utility file for front-ends. */
static int
arg_listtype(const struct mdoc_node *n)
{
diff --git a/term.c b/term.c
index 5ba6c8ab..20db6cfe 100644
--- a/term.c
+++ b/term.c
@@ -602,18 +602,21 @@ term_hspan(const struct roffsu *su)
{
double r;
+ /* XXX: CM, IN, and PT are approximations. */
+
switch (su->unit) {
case (SCALE_CM):
- r = (4 * su->scale) + 2; /* FIXME: double-check. */
+ r = 4 * su->scale;
break;
case (SCALE_IN):
- r = (10 * su->scale) + 2; /* FIXME: double-check. */
+ /* XXX: this is an approximation. */
+ r = 10 * su->scale;
break;
case (SCALE_PC):
- r = (10 * su->scale) / 6; /* FIXME: double-check. */
+ r = (10 * su->scale) / 6;
break;
case (SCALE_PT):
- r = (10 * su->scale) / 72; /* FIXME: double-check. */
+ r = (10 * su->scale) / 72;
break;
case (SCALE_MM):
r = su->scale / 1000; /* FIXME: double-check. */