diff options
author | Ingo Schwarze <schwarze@openbsd.org> | 2020-08-03 11:02:57 +0000 |
---|---|---|
committer | Ingo Schwarze <schwarze@openbsd.org> | 2020-08-03 11:02:57 +0000 |
commit | 16d4788cef7bb58fdc8820bdd5ecb511933f0d15 (patch) | |
tree | bf3311df1f25ef3a44bb86fa7d6dfb9b27370aba /regress/roff/cond/close.in | |
parent | 53d5687049e8bdb3b568febbdf4ed19da4e1a95f (diff) | |
download | mandoc-16d4788cef7bb58fdc8820bdd5ecb511933f0d15.tar.gz mandoc-16d4788cef7bb58fdc8820bdd5ecb511933f0d15.tar.zst mandoc-16d4788cef7bb58fdc8820bdd5ecb511933f0d15.zip |
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/close.in')
-rw-r--r-- | regress/roff/cond/close.in | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/regress/roff/cond/close.in b/regress/roff/cond/close.in index 74b402c8..3702002d 100644 --- a/regress/roff/cond/close.in +++ b/regress/roff/cond/close.in @@ -1,4 +1,4 @@ -.\" $OpenBSD: close.in,v 1.3 2017/07/04 14:53:26 schwarze Exp $ +.\" $OpenBSD: close.in,v 1.5 2020/08/03 10:52:39 schwarze Exp $ .TH COND-CLOSE 1 "November 26, 2018" .SH NAME cond-close \- closing conditional macros @@ -12,6 +12,22 @@ closing after an ignored macro .if t \{text \} closing after plain text .PP +.if t \{text +\} +text line contains closing brace only +.PP +.if t \{text +\} plus something +text line contains closing brace and additional words +.PP +.if t \{text +.\} +request line contains closing brace only +.PP +.if t \{text +.\}with following args +request line contains closing brace and additional args +.PP .if n \{conditional content \} following words with whitespace .PP .if n \{conditional content\}following words without whitespace @@ -28,5 +44,26 @@ non-standard multi-line style \} following words .PP +preceding words +.if n \{text line block end +\} with additional words +following words +.PP +.if n \{two +.if n \{closes +on\} the\} same +text line +.PP +preceding words +.if n \{close on request line +.\}with following args +following words +.PP +preceding words +.if n \{two +.if n \{closes +.BR\}on\}the same +macro line +.PP .if n \{ still open at the end of the file |