diff options
author | Ingo Schwarze <schwarze@openbsd.org> | 2017-01-08 22:51:55 +0000 |
---|---|---|
committer | Ingo Schwarze <schwarze@openbsd.org> | 2017-01-08 22:51:55 +0000 |
commit | 84899683ac7364eaba7f2fbd1ff194612d1a7db0 (patch) | |
tree | 1c985ac13175c8045a5f2c4bef6fe6dd120c216e | |
parent | 6c7378e60ac7c58a6240de9ec382c4f1da4e8e4f (diff) | |
download | mandoc-84899683ac7364eaba7f2fbd1ff194612d1a7db0.tar.gz |
Indentation must be measured in units of the surrounding text,
not in units of the contained text. Consequently, "display"
and "lit" class tags must not be on the same element: First,
"display" must set up the indentation, still using the outer
units, and only after that, "lit" may change the font.
This fixes .Bd -literal which got the wrong indentation.
Bug reported by tb@.
-rw-r--r-- | mdoc_html.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/mdoc_html.c b/mdoc_html.c index 8b046466..40252c5f 100644 --- a/mdoc_html.c +++ b/mdoc_html.c @@ -1,7 +1,7 @@ /* $Id$ */ /* * Copyright (c) 2008-2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv> - * Copyright (c) 2014, 2015, 2016 Ingo Schwarze <schwarze@openbsd.org> + * Copyright (c) 2014, 2015, 2016, 2017 Ingo Schwarze <schwarze@openbsd.org> * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -1121,15 +1121,15 @@ mdoc_bd_pre(MDOC_ARGS) bufcat_su(h, "margin-left", &su); PAIR_STYLE_INIT(&tag[0], h); - if (DISP_unfilled != n->norm->Bd.type && - DISP_literal != n->norm->Bd.type) { - PAIR_CLASS_INIT(&tag[1], "display"); - print_otag(h, TAG_DIV, 2, tag); + PAIR_CLASS_INIT(&tag[1], "display"); + print_otag(h, TAG_DIV, 2, tag); + + if (n->norm->Bd.type != DISP_unfilled && + n->norm->Bd.type != DISP_literal) return 1; - } - PAIR_CLASS_INIT(&tag[1], "lit display"); - print_otag(h, TAG_PRE, 2, tag); + PAIR_CLASS_INIT(&tag[0], "lit"); + print_otag(h, TAG_PRE, 1, tag); /* This can be recursive: save & set our literal state. */ |