Follow-up Comment #4, bug #61100 (project groff): [comment #2 comment #2:] > [comment #1 comment #1:] > > In ".do while ...", the "do" is valid for the whole loop. > > Is this documented? I don't find mention of it in the Texinfo manual.
Some language I just pushed, but had been working on since before I blundered into this bug, may provide part of the explanation. @code{de} defines a macro that inherits the compatibility mode enablement status of its context (@pxref{Implementation Differences}). Often it is desirable to make a macro that uses @code{groff} features callable from contexts where compatibility mode is on; for instance, when writing extensions to a historical macro package. To achieve this, compatibility mode needs to be switched off while such a macro is interpreted---without disturbing that state when it is finished. Combine this with some older existing text... The body of a @code{while} request is treated like the body of a @code{de} request: GNU @code{troff} temporarily stores it in a macro that is deleted after the loop exits. It can considerably slow down a macro if the body of the @code{while} request (within the macro) is large. Each time the macro is executed, the @code{while} body is parsed and stored again as a temporary macro. ...and I think the consequence is implied. I'll try a few different scenarios and see if just ditching the assertion is warranted; it might well be. _______________________________________________________ Reply to this item at: <https://savannah.gnu.org/bugs/?61100> _______________________________________________ Message sent via Savannah https://savannah.gnu.org/