summaryrefslogtreecommitdiffstats
path: root/regress/roff/cond/de.in
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2020-08-03 11:02:57 +0000
committerIngo Schwarze <schwarze@openbsd.org>2020-08-03 11:02:57 +0000
commitc1e37572ba6067152750a7c237a80328c4cad0ee (patch)
tree09706c0c82f4fee63839ab839311b9e17bcd7337 /regress/roff/cond/de.in
parent5b4cf1561a643f1c2c419e4cc5f2d90813652057 (diff)
downloadmandoc-c1e37572ba6067152750a7c237a80328c4cad0ee.tar.gz
Put the code handling \} into a new function roff_cond_checkend()
and call that function not only from both places where copies existed - when processing text lines and when processing request/macro lines in conditional block scope - but also when closing a macro definition request, such that this construction works: .if n \{.de macroname macro content .. \} ignored arguments .macroname This fixes a bug reported by John Gardner <gardnerjohng at gmail dot com>. While here, avoid a confusing decrement of the line scope counter in roffnode_cleanscope() for conditional blocks that do not have line scope in the first place (no functional change for this part). Also improve validation of an internal invariant in roff_cblock() and polish some comments.
Diffstat (limited to 'regress/roff/cond/de.in')
-rw-r--r--regress/roff/cond/de.in19
1 files changed, 19 insertions, 0 deletions
diff --git a/regress/roff/cond/de.in b/regress/roff/cond/de.in
new file mode 100644
index 00000000..eeaeb295
--- /dev/null
+++ b/regress/roff/cond/de.in
@@ -0,0 +1,19 @@
+.\" $OpenBSD: de.in,v 1.1 2020/08/03 10:52:39 schwarze Exp $
+.TH COND-DE 1 "August 3, 2020"
+.SH NAME
+cond-de \- close macro definition and conditional block on the same line
+.SH DESCRIPTION
+.if n \{.de m1
+first content
+.. \}
+.if n \{.de m2
+second content
+.. \}ignored
+.if t \{.de m3
+does not show up
+.. \}ignored
+initial text
+.m1
+.m2
+.m3
+final text