diff options
author | Ingo Schwarze <schwarze@openbsd.org> | 2014-10-30 20:10:02 +0000 |
---|---|---|
committer | Ingo Schwarze <schwarze@openbsd.org> | 2014-10-30 20:10:02 +0000 |
commit | b1573399d364f789f4e71b2dc02d52688bdd1605 (patch) | |
tree | b001869ef99a8d43fed78d8b8891370fbebd7e8c /mdoc_man.c | |
parent | 43e328cce4bb9763404660bc28b055e4959842f3 (diff) | |
download | mandoc-b1573399d364f789f4e71b2dc02d52688bdd1605.tar.gz |
Major bugsquashing with respect to -offset and -width:
1. Support specifying the .Bd and .Bl -offset as a macro default width;
while here, simplify the code handling the same for .Bl -width.
2. Correct handling of .Bl -offset arguments: unlike .Bd -offset, the
arguments "left", "indent", and "indent-two" have no special meaning.
3. Fix the scaling of string length -offset and -width arguments in -Thtml.
Triggered by an incomplete documentation patch from bentley@.
Diffstat (limited to 'mdoc_man.c')
-rw-r--r-- | mdoc_man.c | 16 |
1 files changed, 8 insertions, 8 deletions
@@ -112,7 +112,7 @@ static int pre_xr(DECL_ARGS); static void print_word(const char *); static void print_line(const char *, int); static void print_block(const char *, int); -static void print_offs(const char *); +static void print_offs(const char *, int); static void print_width(const char *, const struct mdoc_node *, size_t); static void print_count(int *); @@ -416,7 +416,7 @@ print_block(const char *s, int newflags) } static void -print_offs(const char *v) +print_offs(const char *v, int keywords) { char buf[24]; struct roffsu su; @@ -425,11 +425,11 @@ print_offs(const char *v) print_line(".RS", MMAN_Bk_susp); /* Convert v into a number (of characters). */ - if (NULL == v || '\0' == *v || 0 == strcmp(v, "left")) + if (NULL == v || '\0' == *v || (keywords && !strcmp(v, "left"))) sz = 0; - else if (0 == strcmp(v, "indent")) + else if (keywords && !strcmp(v, "indent")) sz = 6; - else if (0 == strcmp(v, "indent-two")) + else if (keywords && !strcmp(v, "indent-two")) sz = 12; else if (a2roffsu(v, &su, SCALE_MAX)) { if (SCALE_EN == su.unit) @@ -876,7 +876,7 @@ pre_bd(DECL_ARGS) print_line(".nf", 0); if (0 == n->norm->Bd.comp && NULL != n->parent->prev) outflags |= MMAN_sp; - print_offs(n->norm->Bd.offs); + print_offs(n->norm->Bd.offs, 1); return(1); } @@ -963,7 +963,7 @@ pre_bl(DECL_ARGS) * just nest and do not add up their indentation. */ if (n->norm->Bl.offs) { - print_offs(n->norm->Bl.offs); + print_offs(n->norm->Bl.offs, 0); Bl_stack[Bl_stack_len++] = 0; } @@ -1048,7 +1048,7 @@ static int pre_dl(DECL_ARGS) { - print_offs("6n"); + print_offs("6n", 0); return(1); } |