diff options
Diffstat (limited to 'roff.c')
-rw-r--r-- | roff.c | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -1,4 +1,4 @@ -/* $Id: roff.c,v 1.382 2022/04/24 13:38:46 schwarze Exp $ */ +/* $Id: roff.c,v 1.383 2022/04/24 17:40:22 schwarze Exp $ */ /* * Copyright (c) 2010-2015, 2017-2022 Ingo Schwarze <schwarze@openbsd.org> * Copyright (c) 2008-2012, 2014 Kristaps Dzonsons <kristaps@bsd.lv> @@ -2433,9 +2433,11 @@ roff_cond_sub(ROFF_ARGS) } } } else if (t != TOKEN_NONE && - (rr || roffs[t].flags & ROFFMAC_STRUCT)) + (rr || roffs[t].flags & ROFFMAC_STRUCT)) { irc |= (*roffs[t].proc)(r, t, buf, ln, ppos, pos, offs); - else + if (irc & ROFF_WHILE) + irc &= ~(ROFF_LOOPCONT | ROFF_LOOPEXIT); + } else irc |= rr ? ROFF_CONT : ROFF_IGN; return irc; } |