Follow-up Comment #12, bug #42675 (group groff): [comment #5 comment #5:] > This is not a bug, as the results of the test cases are > according to the description of how macros work, CSTR #54, > chapter 7.3. Arguments.
That claim is undermined by the subsequent comment #10 demonstration that groff produces different results from DWB 3.3 and Unix V7 (which also intriguingly produce different results from each other). But even if we don't presume that their behaviors are complaint with CSTR#54 section 7.3, I don't see anything there to indicate that a \} that performs flow control should _also_ (see comment #11) be taken as a macro parameter. Below is the complete text of that section. Can you point to the wording that you think supports groff's overloading of \}? ---- *_7.3. Arguments._* When a macro is invoked by name, the remainder of the line is taken to contain up to nine arguments. The argument separator is the space character (not tab), and arguments may be surrounded by double quotes to permit embedded space characters. Pairs of double quotes may be embedded in double-quoted arguments to represent a single double-quote character. The argument "" is explicitly null. If the desired arguments won’t fit on a line, a concealed newline may be used to continue on the next line. A trailing double quote may be omitted. When a macro is invoked the _input level_ is _pushed down_ and any arguments available at the previous level become unavailable until the macro is completely read and the previous level is restored. A macro’s own arguments can be interpolated at any point within the macro with \$_N_, which interpolates the _N_th argument (1≤_N_≤9). If an invoked argument does not exist, a null string results. For example, the macro _xx_ may be defined by .de xx \" begin definition Today is \\$1 the \\$2. .. \" end definition and called by .xx Monday 14th to produce the text Today is Monday the 14th. Note that each \$ was concealed in the definition with a prepended \. The number of arguments is in the .$ register. No arguments are available at the top (non-macro) level, within a string, or within a trap-invoked macro. Arguments are copied in copy mode onto a stack where they are available for reference. It is advisable to conceal string references (with an extra \) to delay interpolation until argument reference time. _______________________________________________________ Reply to this item at: <https://savannah.gnu.org/bugs/?42675> _______________________________________________ Message sent via Savannah https://savannah.gnu.org/