aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/man_html.c
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2011-01-12 15:41:09 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2011-01-12 15:41:09 +0000
commit5f6cfc51841517a03c234988b077d265f7bfcf38 (patch)
treefa5e623b081e3308a42ee4fa27c3dcb424a84c07 /man_html.c
parent2a677979d5b94a58bb3b5bac12084fa09a6cfcdd (diff)
downloadmandoc-5f6cfc51841517a03c234988b077d265f7bfcf38.tar.gz
mandoc-5f6cfc51841517a03c234988b077d265f7bfcf38.tar.zst
mandoc-5f6cfc51841517a03c234988b077d265f7bfcf38.zip
Bring in -Tascii comments for -Thtml MANH_LITERAL line-breaking stuff.
Diffstat (limited to 'man_html.c')
-rw-r--r--man_html.c22
1 files changed, 16 insertions, 6 deletions
diff --git a/man_html.c b/man_html.c
index de8cf2ed..ab1afb43 100644
--- a/man_html.c
+++ b/man_html.c
@@ -1,4 +1,4 @@
-/* $Id: man_html.c,v 1.64 2011/01/12 15:31:17 kristaps Exp $ */
+/* $Id: man_html.c,v 1.65 2011/01/12 15:41:09 kristaps Exp $ */
/*
* Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
*
@@ -67,7 +67,7 @@ static int man_ign_pre(MAN_ARGS);
static int man_in_pre(MAN_ARGS);
static int man_literal_pre(MAN_ARGS);
static void man_root_post(MAN_ARGS);
-static int man_root_pre(MAN_ARGS);
+static void man_root_pre(MAN_ARGS);
static int man_B_pre(MAN_ARGS);
static int man_HP_pre(MAN_ARGS);
static int man_I_pre(MAN_ARGS);
@@ -183,14 +183,18 @@ print_man_node(MAN_ARGS)
child = 1;
t = h->tags.head;
-
bufinit(h);
switch (n->type) {
case (MAN_ROOT):
- child = man_root_pre(m, n, mh, h);
+ man_root_pre(m, n, mh, h);
break;
case (MAN_TEXT):
+ /*
+ * If we have a blank line, output a vertical space.
+ * If we have a space as the first character, break
+ * before printing the line's data.
+ */
if ('\0' == *n->string) {
print_otag(h, TAG_P, 0, NULL);
return;
@@ -199,6 +203,13 @@ print_man_node(MAN_ARGS)
print_text(h, n->string);
+ /*
+ * If we're in a literal context, make sure that words
+ * togehter on the same line stay together. This is a
+ * POST-printing call, so we check the NEXT word. Since
+ * -man doesn't have nested macros, we don't need to be
+ * more specific than this.
+ */
if (MANH_LITERAL & mh->fl &&
(NULL == n->next ||
n->next->line > n->line))
@@ -256,7 +267,7 @@ a2width(const struct man_node *n, struct roffsu *su)
/* ARGSUSED */
-static int
+static void
man_root_pre(MAN_ARGS)
{
struct htmlpair tag[3];
@@ -310,7 +321,6 @@ man_root_pre(MAN_ARGS)
print_text(h, title);
print_tagq(h, t);
- return(1);
}