Follow-up Comment #11, bug #42675 (group groff):

The output of Carsten's example in
http://lists.gnu.org/r/groff/2014-07/msg00024.html tells us is that sections 1
and 3 call .A with no parameters; section 2 effectively calls it with one
parameter, which is "\}".  Thus, the "\}" in section 2 of the code, being
interpreted as a parameter to .A, should _not_ be used for flow control.  So
the second .if branch is never terminated.

This is testable by changing the ".if 1" in section 2 to ".if 0".  Then the
entirety of section 3--still inside an unclosed open brace--should be skipped,
as it's all inside the branch associated with ".if 0".

But this is not what happens.  Section 2 is indeed skipped, but section 3 runs
as normal.

So the \} in section 2 is acting both as a literal parameter to macro .A _and_
as flow control.  To me, this seems like the bug.


    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?42675>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/


Reply via email to