From af2a03c0019957aeee8786d2055ba9a304d433d3 Mon Sep 17 00:00:00 2001 From: Kristaps Dzonsons Date: Mon, 19 Oct 2009 15:18:30 +0000 Subject: 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). --- mdoc_term.c | 8 ++++---- term.c | 13 ++++++++----- 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 * @@ -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 * @@ -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. */ -- cgit v1.2.3