From a99c9a30e9f41eb3ce553ac0b2ac6ff963ebe49d Mon Sep 17 00:00:00 2001 From: Ingo Schwarze Date: Thu, 23 Aug 2018 14:29:38 +0000 Subject: 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(). --- regress/roff/shift/basic.out_ascii | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 regress/roff/shift/basic.out_ascii (limited to 'regress/roff/shift/basic.out_ascii') diff --git a/regress/roff/shift/basic.out_ascii b/regress/roff/shift/basic.out_ascii new file mode 100644 index 00000000..40675c67 --- /dev/null +++ b/regress/roff/shift/basic.out_ascii @@ -0,0 +1,25 @@ +SHIFT_BASIC(1) General Commands Manual SHIFT_BASIC(1) + + + +NNAAMMEE + sshhiifftt--bbaassiicc - the shift request + +DDEESSCCRRIIPPTTIIOONN + original arguments: oonnee_t_w_otthhrreeee_f_o_u_rffiivvee + + after shift 2: tthhrreeee_f_o_u_rffiivvee + + after shift without argument: ffoouurr_f_i_v_e + + after shift 0: ffoouurr_f_i_v_e + + expand to less than three bytes: <1> + + expand to exactly three bytes: + + expand to more than three bytes: + + + +OpenBSD August 23, 2018 SHIFT_BASIC(1) -- cgit