summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2017-01-08 22:51:55 +0000
committerIngo Schwarze <schwarze@openbsd.org>2017-01-08 22:51:55 +0000
commit84899683ac7364eaba7f2fbd1ff194612d1a7db0 (patch)
tree1c985ac13175c8045a5f2c4bef6fe6dd120c216e
parent6c7378e60ac7c58a6240de9ec382c4f1da4e8e4f (diff)
downloadmandoc-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.c16
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. */