diff options
author | 2018-08-23 14:29:38 +0000 | |
---|---|---|
committer | 2018-08-23 14:29:38 +0000 | |
commit | c56c17992552256b55134ead16c3e16164fd2e67 (patch) | |
tree | cfe287e6cfd33a9dcb04a6a781b093af17e5b556 /regress/roff/shift/basic.in | |
parent | 1483cf671448b44a8bf37ea7129c88e24f588abd (diff) | |
download | mandoc-c56c17992552256b55134ead16c3e16164fd2e67.tar.gz mandoc-c56c17992552256b55134ead16c3e16164fd2e67.tar.zst mandoc-c56c17992552256b55134ead16c3e16164fd2e67.zip |
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/shift/basic.in')
-rw-r--r-- | regress/roff/shift/basic.in | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/regress/roff/shift/basic.in b/regress/roff/shift/basic.in new file mode 100644 index 00000000..982042db --- /dev/null +++ b/regress/roff/shift/basic.in @@ -0,0 +1,35 @@ +.\" $OpenBSD: basic.in,v 1.1 2018/08/23 14:16:12 schwarze Exp $ +.TH SHIFT_BASIC 1 "August 23, 2018" +.SH NAME +.B shift-basic +\(en the shift request +.SH DESCRIPTION +.de showargs +original arguments: +.BI \\$@ +.PP +.shift 2 +after shift 2: +.BI \\$@ +.PP +.shift +after shift without argument: +.BI \\$@ +.PP +.shift 0 +after shift 0: +.BI \\$@ +.. +.de useargs +<\\$*> +.. +.showargs one two three four five +.PP +expand to less than three bytes: +.useargs 1 +.PP +expand to exactly three bytes: +.useargs x y +.PP +expand to more than three bytes: +.useargs "a longer argument..." "and another" |