diff options
author | Kristaps Dzonsons <kristaps@bsd.lv> | 2010-07-22 13:47:50 +0000 |
---|---|---|
committer | Kristaps Dzonsons <kristaps@bsd.lv> | 2010-07-22 13:47:50 +0000 |
commit | ec27c223d9975f7ea3d01a2a6ad864bbe4a96eb5 (patch) | |
tree | 193f05f1d963d85e4491cfc6ebd753271c270f26 | |
parent | aa5f04e0731be96750ee699e7cee4fe71ebb7a38 (diff) | |
download | mandoc-ec27c223d9975f7ea3d01a2a6ad864bbe4a96eb5.tar.gz |
Bring `sp', `Sp', and `br' behaviour for -man in line with how -mdoc's
is handled: correctly. This removes superfluous line breaks in many
-man manuals.
-rw-r--r-- | man_term.c | 25 |
1 files changed, 10 insertions, 15 deletions
@@ -92,7 +92,6 @@ static int pre_RS(DECL_ARGS); static int pre_SH(DECL_ARGS); static int pre_SS(DECL_ARGS); static int pre_TP(DECL_ARGS); -static int pre_br(DECL_ARGS); static int pre_fi(DECL_ARGS); static int pre_ign(DECL_ARGS); static int pre_nf(DECL_ARGS); @@ -106,7 +105,7 @@ static void post_SS(DECL_ARGS); static void post_TP(DECL_ARGS); static const struct termact termacts[MAN_MAX] = { - { pre_br, NULL, MAN_NOTEXT }, /* br */ + { pre_sp, NULL, MAN_NOTEXT }, /* br */ { NULL, NULL, 0 }, /* TH */ { pre_SH, post_SH, 0 }, /* SH */ { pre_SS, post_SS, 0 }, /* SS */ @@ -359,12 +358,18 @@ pre_sp(DECL_ARGS) { size_t i, len; - len = n->child ? - a2height(p, n->child->string) : term_len(p, 1); + switch (n->tok) { + case (MAN_br): + len = 0; + break; + default: + len = n->child ? a2height(p, n->child->string) : 1; + break; + } if (0 == len) term_newln(p); - for (i = 0; i <= len; i++) + for (i = 0; i < len; i++) term_vspace(p); return(0); @@ -373,16 +378,6 @@ pre_sp(DECL_ARGS) /* ARGSUSED */ static int -pre_br(DECL_ARGS) -{ - - term_newln(p); - return(0); -} - - -/* ARGSUSED */ -static int pre_HP(DECL_ARGS) { size_t len; |