=================================================================== RCS file: /cvs/mandoc/mdoc_term.c,v retrieving revision 1.127 retrieving revision 1.132 diff -u -p -r1.127 -r1.132 --- mandoc/mdoc_term.c 2010/05/22 20:41:48 1.127 +++ mandoc/mdoc_term.c 2010/05/29 18:47:54 1.132 @@ -1,4 +1,4 @@ -/* $Id: mdoc_term.c,v 1.127 2010/05/22 20:41:48 joerg Exp $ */ +/* $Id: mdoc_term.c,v 1.132 2010/05/29 18:47:54 kristaps Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * @@ -274,6 +274,7 @@ terminal_mdoc(void *arg, const struct mdoc *mdoc) p->overstep = 0; p->maxrmargin = p->defrmargin; + p->tabwidth = 5; if (NULL == p->symtab) switch (p->enc) { @@ -613,7 +614,7 @@ print_bvspace(struct termp *p, /* A `-column' does not assert vspace within the list. */ - if (MDOC_Bl == bl->tok && LIST_diag == bl->data.list) + if (MDOC_Bl == bl->tok && LIST_column == bl->data.list) if (n->prev && MDOC_It == n->prev->tok) return; @@ -1013,14 +1014,14 @@ termp_it_post(DECL_ARGS) /* FALLTHROUGH */ case (LIST_inset): if (MDOC_BODY == n->type) - term_flushln(p); + term_newln(p); break; case (LIST_column): if (MDOC_HEAD == n->type) term_flushln(p); break; default: - term_flushln(p); + term_newln(p); break; } @@ -1191,6 +1192,7 @@ termp_rv_pre(DECL_ARGS) term_fontpop(p); term_word(p, "is set to indicate the error."); + p->flags |= TERMP_SENTENCE; return(0); } @@ -1223,6 +1225,7 @@ termp_ex_pre(DECL_ARGS) term_word(p, "utility exits"); term_word(p, "0 on success, and >0 if an error occurs."); + p->flags |= TERMP_SENTENCE; return(0); } @@ -1424,6 +1427,7 @@ termp_bt_pre(DECL_ARGS) { term_word(p, "is currently in beta test."); + p->flags |= TERMP_SENTENCE; return(0); } @@ -1444,6 +1448,7 @@ termp_ud_pre(DECL_ARGS) { term_word(p, "currently under development."); + p->flags |= TERMP_SENTENCE; return(0); } @@ -1593,6 +1598,7 @@ termp_fa_pre(DECL_ARGS) static int termp_bd_pre(DECL_ARGS) { + size_t tabwidth; int i, type; size_t rm, rmax; const struct mdoc_node *nn; @@ -1622,6 +1628,8 @@ termp_bd_pre(DECL_ARGS) if (MDOC_Literal != type && MDOC_Unfilled != type) return(1); + tabwidth = p->tabwidth; + p->tabwidth = 8; rm = p->rmargin; rmax = p->maxrmargin; p->rmargin = p->maxrmargin = TERM_MAXMARGIN; @@ -1629,13 +1637,12 @@ termp_bd_pre(DECL_ARGS) for (nn = n->child; nn; nn = nn->next) { p->flags |= TERMP_NOSPACE; print_mdoc_node(p, pair, m, nn); - if (NULL == nn->next) - continue; - if (nn->prev && nn->prev->line < nn->line) + if (NULL == nn->prev || + nn->prev->line < nn->line || + NULL == nn->next) term_flushln(p); - else if (NULL == nn->prev) - term_flushln(p); } + p->tabwidth = tabwidth; p->rmargin = rm; p->maxrmargin = rmax; @@ -1663,7 +1670,7 @@ termp_bd_post(DECL_ARGS) p->rmargin = p->maxrmargin = TERM_MAXMARGIN; p->flags |= TERMP_NOSPACE; - term_flushln(p); + term_newln(p); p->rmargin = rm; p->maxrmargin = rmax; @@ -2091,6 +2098,8 @@ termp_li_pre(DECL_ARGS) { term_fontpush(p, TERMFONT_NONE); + if (NULL == n->child) + term_word(p, ""); return(1); }