=================================================================== RCS file: /cvs/mandoc/man_term.c,v retrieving revision 1.177 retrieving revision 1.181 diff -u -p -r1.177 -r1.181 --- mandoc/man_term.c 2015/04/06 13:35:08 1.177 +++ mandoc/man_term.c 2015/04/18 17:53:21 1.181 @@ -1,4 +1,4 @@ -/* $Id: man_term.c,v 1.177 2015/04/06 13:35:08 schwarze Exp $ */ +/* $Id: man_term.c,v 1.181 2015/04/18 17:53:21 schwarze Exp $ */ /* * Copyright (c) 2008-2012 Kristaps Dzonsons * Copyright (c) 2010-2015 Ingo Schwarze @@ -138,28 +138,23 @@ static const struct termact termacts[MAN_MAX] = { void -terminal_man(void *arg, const struct man *man) +terminal_man(void *arg, const struct roff_man *man) { struct termp *p; - const struct roff_meta *meta; struct roff_node *n; struct mtermp mt; p = (struct termp *)arg; - p->overstep = 0; p->rmargin = p->maxrmargin = p->defrmargin; p->tabwidth = term_len(p, 5); - n = man_node(man)->child; - meta = man_meta(man); - memset(&mt, 0, sizeof(struct mtermp)); - mt.lmargin[mt.lmargincur] = term_len(p, p->defindent); mt.offset = term_len(p, p->defindent); mt.pardist = 1; + n = man->first->child; if (p->synopsisonly) { while (n != NULL) { if (n->tok == MAN_SH && @@ -167,7 +162,8 @@ terminal_man(void *arg, const struct man *man) !strcmp(n->child->child->string, "SYNOPSIS")) { if (n->child->next->child != NULL) print_man_nodelist(p, &mt, - n->child->next->child, meta); + n->child->next->child, + &man->meta); term_newln(p); break; } @@ -176,10 +172,10 @@ terminal_man(void *arg, const struct man *man) } else { if (p->defindent == 0) p->defindent = 7; - term_begin(p, print_man_head, print_man_foot, meta); + term_begin(p, print_man_head, print_man_foot, &man->meta); p->flags |= TERMP_NOSPACE; if (n != NULL) - print_man_nodelist(p, &mt, n, meta); + print_man_nodelist(p, &mt, n, &man->meta); term_end(p); } } @@ -321,7 +317,10 @@ pre_alternate(DECL_ARGS) term_fontrepl(p, font[i]); if (savelit && NULL == nn->next) mt->fl |= MANT_LITERAL; - print_man_node(p, mt, nn, meta); + assert(nn->type == ROFFT_TEXT); + term_word(p, nn->string); + if (nn->flags & MAN_EOS) + p->flags |= TERMP_SENTENCE; if (nn->next) p->flags |= TERMP_NOSPACE; } @@ -895,7 +894,7 @@ pre_RS(DECL_ARGS) if (++mt->lmarginsz < MAXMARGINS) mt->lmargincur = mt->lmarginsz; - mt->lmargin[mt->lmargincur] = mt->lmargin[mt->lmargincur - 1]; + mt->lmargin[mt->lmargincur] = term_len(p, p->defindent); return(1); }