summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--roff.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/roff.c b/roff.c
index 17aacf66..f2644602 100644
--- a/roff.c
+++ b/roff.c
@@ -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;
}