diff options
author | Kristaps Dzonsons <kristaps@bsd.lv> | 2009-10-18 19:03:36 +0000 |
---|---|---|
committer | Kristaps Dzonsons <kristaps@bsd.lv> | 2009-10-18 19:03:36 +0000 |
commit | b24acbb5f3ae16c8a4e9645043803117dda71323 (patch) | |
tree | 1a7428e9636ad90860f62860b0e85c725e8cb556 /man_term.c | |
parent | d6c7a4661f77e1989e0da0c6d16c039362c1d97d (diff) | |
download | mandoc-b24acbb5f3ae16c8a4e9645043803117dda71323.tar.gz |
Made sure devices and formats recognise that -man and -mdoc have different syntax for scaling widths: -mdoc assumes no unit means that the value is a string literal while -man instead uses the default vertical/horizontal scale.
Diffstat (limited to 'man_term.c')
-rw-r--r-- | man_term.c | 16 |
1 files changed, 10 insertions, 6 deletions
@@ -23,6 +23,7 @@ #include <stdlib.h> #include <string.h> +#include "out.h" #include "man.h" #include "term.h" #include "chars.h" @@ -183,25 +184,28 @@ terminal_man(void *arg, const struct man *man) static int arg2height(const struct man_node *n) { - int r; + struct roffsu su; assert(MAN_TEXT == n->type); assert(n->string); + if ( ! a2roffsu(n->string, &su, SCALE_VS)) + SCALE_VS_INIT(&su, strlen(n->string)); - if ((r = a2height(n->string)) < 0) - return(1); - - return(r); + return(term_vspan(&su)); } static int arg2width(const struct man_node *n) { + struct roffsu su; assert(MAN_TEXT == n->type); assert(n->string); - return(a2width(n->string)); + if ( ! a2roffsu(n->string, &su, SCALE_BU)) + SCALE_HS_INIT(&su, strlen(n->string) + 2); + + return(term_hspan(&su)); } |