summaryrefslogtreecommitdiffstatshomepage
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
commitaf2a03c0019957aeee8786d2055ba9a304d433d3 (patch)
tree233946af8db2644bf1588a2d0e85cfc16957ca17
parent3a025f9c259f9990e66a6984935a8b85cb9b8593 (diff)
downloadmandoc-af2a03c0019957aeee8786d2055ba9a304d433d3.tar.gz
mandoc-af2a03c0019957aeee8786d2055ba9a304d433d3.tar.zst
mandoc-af2a03c0019957aeee8786d2055ba9a304d433d3.zip
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.c8
-rw-r--r--term.c13
2 files changed, 12 insertions, 9 deletions
diff --git a/mdoc_term.c b/mdoc_term.c
index e3d0f1dc..ad4e0640 100644
--- a/mdoc_term.c
+++ b/mdoc_term.c
@@ -1,4 +1,4 @@
-/* $Id: mdoc_term.c,v 1.92 2009/10/18 19:03:37 kristaps Exp $ */
+/* $Id: mdoc_term.c,v 1.93 2009/10/19 15:18:30 kristaps Exp $ */
/*
* Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
*
@@ -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 b04f8db3..b125d4b0 100644
--- a/term.c
+++ b/term.c
@@ -1,4 +1,4 @@
-/* $Id: term.c,v 1.107 2009/10/18 19:03:37 kristaps Exp $ */
+/* $Id: term.c,v 1.108 2009/10/19 15:18:30 kristaps Exp $ */
/*
* Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
*
@@ -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. */