summaryrefslogtreecommitdiffstats
path: root/roff.c
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2010-06-01 11:47:28 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2010-06-01 11:47:28 +0000
commit6a326e77cc468375313c05cf8a009161f948d63f (patch)
tree0f4d87e6df20142cf74216135af57ee401db1133 /roff.c
parent3ad34d6afa6592e12f7e699004c65131586f0630 (diff)
downloadmandoc-6a326e77cc468375313c05cf8a009161f948d63f.tar.gz
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.
Diffstat (limited to 'roff.c')
-rw-r--r--roff.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/roff.c b/roff.c
index 480182cf..f6c85c7a 100644
--- a/roff.c
+++ b/roff.c
@@ -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);