From 47cdaf0fdadf72cb7aba9bfecf789e29e518c79b Mon Sep 17 00:00:00 2001 From: Kristaps Dzonsons Date: Tue, 1 Jun 2010 11:47:28 +0000 Subject: Fixed condition of `\}' closing a conditional at the start of the line. Fixed flushed-out condition of \} causing subsequent arguments to be truncated, when in fact the whole line should be passed through (if the conditional succeeds) to the front-end and the \} ignored there. Added regression test of this behaviour. --- roff.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'roff.c') diff --git a/roff.c b/roff.c index 8ec71ad7..24aa46e6 100644 --- a/roff.c +++ b/roff.c @@ -1,4 +1,4 @@ -/* $Id: roff.c,v 1.85 2010/05/29 19:41:47 kristaps Exp $ */ +/* $Id: roff.c,v 1.86 2010/06/01 11:47:28 kristaps Exp $ */ /* * Copyright (c) 2010 Kristaps Dzonsons * @@ -666,10 +666,8 @@ roff_cond_text(ROFF_ARGS) return(ROFFRULE_DENY == rr ? ROFF_IGN : ROFF_CONT); } - if (ep > st && '\\' != *(ep - 1)) { - ep = '\0'; + if (ep == st || (ep > st && '\\' != *(ep - 1))) roffnode_pop(r); - } roffnode_cleanscope(r); return(ROFFRULE_DENY == rr ? ROFF_IGN : ROFF_CONT); -- cgit v1.2.3