summaryrefslogtreecommitdiffstats
path: root/regress/roff/de
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2018-08-23 14:29:38 +0000
committerIngo Schwarze <schwarze@openbsd.org>2018-08-23 14:29:38 +0000
commita99c9a30e9f41eb3ce553ac0b2ac6ff963ebe49d (patch)
tree9de2c70188a81c04c2b08671dcf1d3eb421403da /regress/roff/de
parent50f5bf83cff66e2f7baa88e327d78c37143bed97 (diff)
downloadmandoc-a99c9a30e9f41eb3ce553ac0b2ac6ff963ebe49d.tar.gz
Implement the roff(7) .shift and .return requests,
for example used by groff_hdtbl(7) and groff_mom(7). Also correctly interpolate arguments during nested macro execution even after .shift and .return, implemented using a stack of argument arrays. Note that only read.c, but not roff.c can detect the end of a macro execution, and the existence of .shift implies that arguments cannot be interpolated up front, so unfortunately, this includes a partial revert of roff.c rev. 1.337, moving argument interpolation back into the function roff_res().
Diffstat (limited to 'regress/roff/de')
-rw-r--r--regress/roff/de/infinite.in6
-rw-r--r--regress/roff/de/infinite.out_ascii4
-rw-r--r--regress/roff/de/infinite.out_lint3
3 files changed, 7 insertions, 6 deletions
diff --git a/regress/roff/de/infinite.in b/regress/roff/de/infinite.in
index 62f66965..33f71642 100644
--- a/regress/roff/de/infinite.in
+++ b/regress/roff/de/infinite.in
@@ -1,4 +1,4 @@
-.\" $OpenBSD: infinite.in,v 1.3 2017/07/04 14:53:27 schwarze Exp $
+.\" $OpenBSD: infinite.in,v 1.4 2018/08/23 14:16:12 schwarze Exp $
.Dd $Mdocdate$
.Dt DE-INFINITE 1
.Os
@@ -10,8 +10,8 @@ initial text
.de mym
.Op \\$1 \\$2
..
-.mym $1 \$1
-.mym \$1 nothing
+.mym $1 \$1 end
+.mym \$1 middle end
middle text
.de mym
.mym
diff --git a/regress/roff/de/infinite.out_ascii b/regress/roff/de/infinite.out_ascii
index 452af775..074362da 100644
--- a/regress/roff/de/infinite.out_ascii
+++ b/regress/roff/de/infinite.out_ascii
@@ -4,6 +4,6 @@ NNAAMMEE
ddee--iinnffiinniittee - inifinte recursion in a user-defined macro
DDEESSCCRRIIPPTTIIOONN
- initial text [$1 $1] middle text final text
+ initial text [$1 end] [middle end] middle text final text
-OpenBSD July 4, 2017 OpenBSD
+OpenBSD August 23, 2018 OpenBSD
diff --git a/regress/roff/de/infinite.out_lint b/regress/roff/de/infinite.out_lint
index e7beb090..06254be5 100644
--- a/regress/roff/de/infinite.out_lint
+++ b/regress/roff/de/infinite.out_lint
@@ -1,2 +1,3 @@
-mandoc: infinite.in:14:5: ERROR: input stack limit exceeded, infinite loop?
+mandoc: infinite.in:13:9: ERROR: using macro argument outside macro: \$1
+mandoc: infinite.in:14:6: ERROR: using macro argument outside macro: \$1
mandoc: infinite.in:20:5: ERROR: input stack limit exceeded, infinite loop?