bug-groff
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #65474] [troff] spurious "warning: unbalanced 'el' request" when fo


From: G. Branden Robinson
Subject: [bug #65474] [troff] spurious "warning: unbalanced 'el' request" when formatting zic(8) from TZDB project
Date: Sat, 13 Apr 2024 17:57:59 -0400 (EDT)

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 <g.branden.robinson@gmail.com>
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/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]