=================================================================== RCS file: /cvs/mandoc/man_term.c,v retrieving revision 1.181 retrieving revision 1.184 diff -u -p -r1.181 -r1.184 --- mandoc/man_term.c 2015/04/18 17:53:21 1.181 +++ mandoc/man_term.c 2015/09/21 13:25:00 1.184 @@ -1,4 +1,4 @@ -/* $Id: man_term.c,v 1.181 2015/04/18 17:53:21 schwarze Exp $ */ +/* $Id: man_term.c,v 1.184 2015/09/21 13:25:00 schwarze Exp $ */ /* * Copyright (c) 2008-2012 Kristaps Dzonsons * Copyright (c) 2010-2015 Ingo Schwarze @@ -482,6 +482,17 @@ pre_sp(DECL_ARGS) for (i = 0; i < len; i++) term_vspace(p); + /* + * Handle an explicit break request in the same way + * as an overflowing line. + */ + + if (p->flags & TERMP_BRIND) { + p->offset = p->rmargin; + p->rmargin = p->maxrmargin; + p->flags &= ~(TERMP_NOBREAK | TERMP_BRIND); + } + return(0); } @@ -660,7 +671,7 @@ pre_TP(DECL_ARGS) switch (n->type) { case ROFFT_HEAD: - p->flags |= TERMP_NOBREAK; + p->flags |= TERMP_NOBREAK | TERMP_BRTRSP; p->trailspace = 1; break; case ROFFT_BODY: @@ -712,7 +723,7 @@ pre_TP(DECL_ARGS) p->offset = mt->offset + len; p->rmargin = p->maxrmargin; p->trailspace = 0; - p->flags &= ~TERMP_NOBREAK; + p->flags &= ~(TERMP_NOBREAK | TERMP_BRTRSP); break; default: break; @@ -756,7 +767,7 @@ pre_SS(DECL_ARGS) do { n = n->prev; - } while (n != NULL && n->tok != MAN_MAX && + } while (n != NULL && n->tok != TOKEN_NONE && termacts[n->tok].flags & MAN_NOTEXT); if (n == NULL || (n->tok == MAN_SS && n->body->child == NULL)) break;