=================================================================== RCS file: /cvs/mandoc/man_term.c,v retrieving revision 1.117 retrieving revision 1.119 diff -u -p -r1.117 -r1.119 --- mandoc/man_term.c 2011/09/19 22:36:16 1.117 +++ mandoc/man_term.c 2011/09/20 13:13:23 1.119 @@ -1,4 +1,4 @@ -/* $Id: man_term.c,v 1.117 2011/09/19 22:36:16 schwarze Exp $ */ +/* $Id: man_term.c,v 1.119 2011/09/20 13:13:23 schwarze Exp $ */ /* * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2010, 2011 Ingo Schwarze @@ -826,7 +826,8 @@ pre_RS(DECL_ARGS) sz = (size_t)ival; mt->offset += sz; - p->offset = mt->offset; + p->rmargin = p->maxrmargin; + p->offset = mt->offset < p->rmargin ? mt->offset : p->rmargin; if (++mt->lmarginsz < MAXMARGINS) mt->lmargincur = mt->lmarginsz; @@ -1007,9 +1008,9 @@ print_man_head(struct termp *p, const void *arg) * point we did so here. */ + p->offset = 0; p->rmargin = p->maxrmargin; - p->offset = 0; buf[0] = title[0] = '\0'; if (m->vol) @@ -1019,12 +1020,12 @@ print_man_head(struct termp *p, const void *arg) snprintf(title, BUFSIZ, "%s(%s)", m->title, m->msec); titlen = term_strlen(p, title); + p->flags |= TERMP_NOBREAK | TERMP_NOSPACE; p->offset = 0; p->rmargin = 2 * (titlen+1) + buflen < p->maxrmargin ? (p->maxrmargin - term_strlen(p, buf) + term_len(p, 1)) / 2 : p->maxrmargin - buflen; - p->flags |= TERMP_NOBREAK | TERMP_NOSPACE; term_word(p, title); term_flushln(p); @@ -1046,9 +1047,9 @@ print_man_head(struct termp *p, const void *arg) term_flushln(p); } - p->rmargin = p->maxrmargin; - p->offset = 0; p->flags &= ~TERMP_NOSPACE; + p->offset = 0; + p->rmargin = p->maxrmargin; /* * Groff likes to have some leading spaces before content. Well