Update of bug #65474 (group groff):
Status: In Progress => Fixed
Open/Closed: Open => Closed
Planned Release: None => 1.24.0
_______________________________________________________
Follow-up Comment #28:
commit b2ea8a3d84929baa4ee9f74db07113a3ce50fa4e
Author: G. Branden Robinson <[email protected]>
Date: Fri Apr 5 19:23:28 2024 -0500
[troff]: Retire "el" warning category.
It's much too hard to perform this analysis without the risk of throwing
this warning spuriously. Paul Eggert reported a real-world use of
`ie`/`el` requests nested without the use of brace escape sequences in
his zic(8) man page that is structurally equivalent to the following
(with indentation added for clarity).
.ie \nA .tm register A is truthy
.el .ie t .tm in typesetter mode
. el .tm in terminal mode
Without brace escape sequences, the `skip_branch{}` function that
discards input corresponding to control flow branches not taken does not
reliably keep track of the nesting level. So why not just make
`skip_branch()` more sophisticated to handle this case? Because it
doesn't generalize. What if the input changes the control character, or
uses the no-break control character? What if the input has renamed the
`ie` request or invokes it through a macro?
* src/roff/troff/input.cpp: Drop this warning category from the
`warning_table` global.
(else_request): Stop throwing it.
* src/roff/troff/troff.h: Comment out its value in the `warning_type`
enum.
Fixes <https://savannah.gnu.org/bugs/?65474>. Thanks to Paul Eggert for
the report.
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?65474>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/