=================================================================== RCS file: /cvs/mandoc/man_html.c,v retrieving revision 1.62 retrieving revision 1.64 diff -u -p -r1.62 -r1.64 --- mandoc/man_html.c 2011/01/07 13:20:58 1.62 +++ mandoc/man_html.c 2011/01/12 15:31:17 1.64 @@ -1,4 +1,4 @@ -/* $Id: man_html.c,v 1.62 2011/01/07 13:20:58 kristaps Exp $ */ +/* $Id: man_html.c,v 1.64 2011/01/12 15:31:17 kristaps Exp $ */ /* * Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons * @@ -186,24 +186,27 @@ print_man_node(MAN_ARGS) bufinit(h); - /* - * FIXME: embedded elements within next-line scopes (e.g., `br' - * within an empty `B') will cause formatting to be forgotten - * due to scope closing out. - */ - switch (n->type) { case (MAN_ROOT): child = man_root_pre(m, n, mh, h); break; case (MAN_TEXT): + if ('\0' == *n->string) { + print_otag(h, TAG_P, 0, NULL); + return; + } else if (' ' == *n->string && MAN_LINE & n->flags) + print_otag(h, TAG_BR, 0, NULL); + print_text(h, n->string); - if (MANH_LITERAL & mh->fl) + + if (MANH_LITERAL & mh->fl && + (NULL == n->next || + n->next->line > n->line)) print_otag(h, TAG_BR, 0, NULL); return; case (MAN_TBL): print_tbl(h, n->span); - break; + return; default: /* * Close out scope of font prior to opening a macro @@ -230,8 +233,6 @@ print_man_node(MAN_ARGS) switch (n->type) { case (MAN_ROOT): man_root_post(m, n, mh, h); - break; - case (MAN_TBL): break; default: if (mans[n->tok].post)