summaryrefslogtreecommitdiff
path: root/usr.bin/mandoc/mdoc_html.c
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@cvs.openbsd.org>2017-01-08 22:51:54 +0000
committerIngo Schwarze <schwarze@cvs.openbsd.org>2017-01-08 22:51:54 +0000
commitb48830065830f0f1c32e799c66fb805c0d7aeb5c (patch)
tree0df6bc8b8e3c281ab5f27ac035623316b47fa942 /usr.bin/mandoc/mdoc_html.c
parent7c157441270a4ec462b24710c0402f621e57bb5c (diff)
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@.
Diffstat (limited to 'usr.bin/mandoc/mdoc_html.c')
-rw-r--r--usr.bin/mandoc/mdoc_html.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/usr.bin/mandoc/mdoc_html.c b/usr.bin/mandoc/mdoc_html.c
index 2fe3a55081e..894a5e16c2e 100644
--- a/usr.bin/mandoc/mdoc_html.c
+++ b/usr.bin/mandoc/mdoc_html.c
@@ -1,7 +1,7 @@
-/* $OpenBSD: mdoc_html.c,v 1.115 2016/01/08 17:48:04 schwarze Exp $ */
+/* $OpenBSD: mdoc_html.c,v 1.116 2017/01/08 22:51:53 schwarze Exp $ */
/*
* 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
@@ -1119,15 +1119,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. */