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/


Reply via email to