[BACK]Return to de.in CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / mandoc / regress / roff / cond

File: [cvsweb.bsd.lv] / mandoc / regress / roff / cond / de.in (download)

Revision 1.1, Mon Aug 3 11:02:58 2020 UTC (3 years, 10 months ago) by schwarze
Branch: MAIN
CVS Tags: VERSION_1_14_6, HEAD

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.

.\" $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