summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2010-07-22 13:47:50 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2010-07-22 13:47:50 +0000
commitec27c223d9975f7ea3d01a2a6ad864bbe4a96eb5 (patch)
tree193f05f1d963d85e4491cfc6ebd753271c270f26
parentaa5f04e0731be96750ee699e7cee4fe71ebb7a38 (diff)
downloadmandoc-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.c25
1 files changed, 10 insertions, 15 deletions
diff --git a/man_term.c b/man_term.c
index 6958ac45..2f122958 100644
--- a/man_term.c
+++ b/man_term.c
@@ -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;