gbranden pushed a commit to branch master
in repository groff.

commit b3e0b25f085abf395a1fa7e8e139946fdf312106
Author: G. Branden Robinson <[email protected]>
AuthorDate: Mon Jul 27 20:15:15 2026 -0500

    ChangeLog: Clarify Savannah #68558 defect history.
    
    The problem dates back to commit b04d345ed2 (groff 1.06), 1992-09-01,
    which originally implemented the `do` request.  The request handler
    disabled compatibility mode, then if it failed to read a valid
    identifier for any reason (invalid syntax, or no argument present),
    called `skip_line()`--meaning that the next input line would be
    interpreted with compatibility mode disabled.  It did _not_ undo
    compatibility mode disablement and did not return early.
    
    Here's that original 1992 implementation.
    
    void do_request()
    {
      int saved_compatible_flag = compatible_flag;
      compatible_flag = 0;
      symbol nm = get_name();
      if (nm.is_null())
        skip_line();
      else
        interpolate_macro(nm);
      compatible_flag = saved_compatible_flag;
    }
    
    Since commit 205334d6e5, 2024-09-01, an argumentless `do` request no
    longer manipulates compatibility mode, and since commit ba660bda6d,
    yesterday, the request no longer does so for an invalid argument either.
---
 ChangeLog | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index ca841bf19..a1ad836df 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -67,9 +67,13 @@
        we just did and return early, maintaining the integrity of
        aforesaid stack.
 
-       Fixes <https://savannah.gnu.org/bugs/?68558>.  Problem appears
-       to date back at least to groff 1.22.3 (2014), and possibly much
-       earlier.
+       Fixes <https://savannah.gnu.org/bugs/?68558>.  Problem dates
+       back to commit b04d345ed2 (groff 1.06), 1992-09-01, which
+       originally implemented the `do` request.  The request handler
+       disabled compatibility mode, then if it failed to read a valid
+       identifier for any reason (invalid syntax, or no argument
+       present), called `skip_line()`--meaning that the next input
+       line would be interpreted with compatibility mode disabled.
 
 2026-07-24  G. Branden Robinson <[email protected]>
 

_______________________________________________
groff-commit mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/groff-commit

Reply via email to