macros within an unfilled or literal `Bd'.
************************************************************************
* Official mandoc TODO.
-* $Id: TODO,v 1.54 2010/09/27 10:47:48 kristaps Exp $
+* $Id: TODO,v 1.55 2010/09/27 11:21:39 kristaps Exp $
************************************************************************
************************************************************************
In -unfilled, tabs are 5 spaces, just like in -filled and -ragged.
See the CCDF_* display in OpenBSD ccdconfig(8).
-- In .Bd -unfilled, .Pp should produce one blank line, not two;
- see the ccd.conf display in OpenBSD ccdconfig(8).
-
- .Nx 1.0a
should be "NetBSD 1.0A", not "NetBSD 1.0a",
see OpenBSD ccdconfig(8).
-.\" $Id: mdoc.7,v 1.160 2010/09/27 06:56:44 kristaps Exp $
+.\" $Id: mdoc.7,v 1.161 2010/09/27 11:21:39 kristaps Exp $
.\"
.\" Copyright (c) 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
.\" Copyright (c) 2010 Ingo Schwarze <schwarze@openbsd.org>
Left- and right-justify the block.
.It Fl literal
Do not justify the block at all.
-Preserve white space as it appears in the input.
+Preserve white space and newlines as they appear in the input, including
+if it follows a macro.
.It Fl ragged
Only left-justify the block.
.It Fl unfilled
-/* $Id: mdoc_html.c,v 1.107 2010/09/26 10:32:14 kristaps Exp $ */
+/* $Id: mdoc_html.c,v 1.108 2010/09/27 11:21:39 kristaps Exp $ */
/*
* Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
*
for (nn = n->child; nn; nn = nn->next) {
print_mdoc_node(m, nn, h);
+ /*
+ * If the printed node flushes its own line, then we
+ * needn't do it here as well. This is hacky, but the
+ * notion of selective eoln whitespace is pretty dumb
+ * anyway, so don't sweat it.
+ */
+ switch (nn->tok) {
+ case (MDOC_br):
+ /* FALLTHROUGH */
+ case (MDOC_sp):
+ /* FALLTHROUGH */
+ case (MDOC_Bl):
+ /* FALLTHROUGH */
+ case (MDOC_Lp):
+ /* FALLTHROUGH */
+ case (MDOC_Pp):
+ continue;
+ default:
+ break;
+ }
if (nn->next && nn->next->line == nn->line)
continue;
print_text(h, "\n");
-/* $Id: mdoc_term.c,v 1.189 2010/09/26 10:00:42 kristaps Exp $ */
+/* $Id: mdoc_term.c,v 1.190 2010/09/27 11:21:39 kristaps Exp $ */
/*
* Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2010 Ingo Schwarze <schwarze@openbsd.org>
for (nn = n->child; nn; nn = nn->next) {
print_mdoc_node(p, pair, m, nn);
+ /*
+ * If the printed node flushes its own line, then we
+ * needn't do it here as well. This is hacky, but the
+ * notion of selective eoln whitespace is pretty dumb
+ * anyway, so don't sweat it.
+ */
+ switch (nn->tok) {
+ case (MDOC_br):
+ /* FALLTHROUGH */
+ case (MDOC_sp):
+ /* FALLTHROUGH */
+ case (MDOC_Bl):
+ /* FALLTHROUGH */
+ case (MDOC_Lp):
+ /* FALLTHROUGH */
+ case (MDOC_Pp):
+ continue;
+ default:
+ break;
+ }
if (nn->next && nn->next->line == nn->line)
continue;
term_flushln(p);