=================================================================== RCS file: /cvs/mandoc/man_term.c,v retrieving revision 1.58 retrieving revision 1.61 diff -u -p -r1.58 -r1.61 --- mandoc/man_term.c 2010/03/23 12:42:22 1.58 +++ mandoc/man_term.c 2010/05/10 08:27:09 1.61 @@ -1,4 +1,4 @@ -/* $Id: man_term.c,v 1.58 2010/03/23 12:42:22 kristaps Exp $ */ +/* $Id: man_term.c,v 1.61 2010/05/10 08:27:09 kristaps Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * @@ -142,6 +142,12 @@ static const struct termact termacts[MAN_MAX] = { { pre_sp, NULL, MAN_NOTEXT }, /* Sp */ { pre_nf, NULL, 0 }, /* Vb */ { pre_fi, NULL, 0 }, /* Ve */ + { pre_ign, NULL, MAN_NOTEXT }, /* de */ + { pre_ign, NULL, MAN_NOTEXT }, /* dei */ + { pre_ign, NULL, MAN_NOTEXT }, /* am */ + { pre_ign, NULL, MAN_NOTEXT }, /* ami */ + { pre_ign, NULL, MAN_NOTEXT }, /* ig */ + { NULL, NULL, 0 }, /* . */ }; @@ -254,7 +260,6 @@ static int pre_fi(DECL_ARGS) { - p->rmargin = p->maxrmargin = 65; mt->fl &= ~MANT_LITERAL; return(1); } @@ -265,10 +270,7 @@ static int pre_nf(DECL_ARGS) { - p->rmargin = p->maxrmargin = 78; - term_newln(p); mt->fl |= MANT_LITERAL; - return(MAN_Vb != n->tok); } @@ -367,7 +369,7 @@ pre_sp(DECL_ARGS) if (0 == len) term_newln(p); - for (i = 0; i < len; i++) + for (i = 0; i <= len; i++) term_vspace(p); return(0); @@ -708,6 +710,9 @@ pre_SH(DECL_ARGS) if (n->prev && MAN_SH == n->prev->tok) if (NULL == n->prev->body->child) break; + /* If the first macro, no vspae. */ + if (NULL == n->prev) + break; term_vspace(p); break; case (MAN_HEAD): @@ -785,6 +790,8 @@ post_RS(DECL_ARGS) case (MAN_BLOCK): mt->offset = mt->lmargin = INDENT; break; + case (MAN_HEAD): + break; default: term_newln(p); p->offset = INDENT; @@ -812,8 +819,10 @@ print_man_node(DECL_ARGS) /* FIXME: this means that macro lines are munged! */ if (MANT_LITERAL & mt->fl) { + p->rmargin = p->maxrmargin = TERM_MAXMARGIN; p->flags |= TERMP_NOSPACE; term_flushln(p); + p->rmargin = p->maxrmargin = 65; } break; default: @@ -886,6 +895,12 @@ print_man_head(struct termp *p, const struct man_meta p->rmargin = p->maxrmargin; +#ifdef __OpenBSD__ + term_vspace(p); + term_vspace(p); + term_vspace(p); +#endif + p->offset = 0; buf[0] = title[0] = '\0'; @@ -925,4 +940,13 @@ print_man_head(struct termp *p, const struct man_meta p->rmargin = p->maxrmargin; p->offset = 0; p->flags &= ~TERMP_NOSPACE; + +#ifdef __OpenBSD__ + term_vspace(p); + term_vspace(p); +#else + term_vspace(p); + term_vspace(p); + term_vspace(p); +#endif }