Follow-up Comment #3, bug #68524 (group groff):

Hi Dave,

At 2026-07-13T22:20:39-0400, Dave wrote:
> Update of bug #68524 (group groff):
>
> Summary: Regression: first .sy after .hpfa ignored =>
> Regression: request after .hpfa ignored
>
> _______________________________________________________
>
> Follow-up Comment #2:
>
> Once again, I submitted the report before really boiling it down to bare
> essentials.  This bug has nothing to do with the .sy request: it's whatever
> request follows the .hpfa that is ignored.
>
> $ cat sy.test
> .hpfa /tmp/hyphenation_exceptions
> .tm foo
> .tm bar
> $ touch /tmp/hyphenation_exceptions
> $ groff-1.24 sy.test
> foo
> bar
> $ groff-latest sy.test
> bar

I'll bet this commit either regressed it or is otherwise implicated.


commit 85c8daa27d73da849e221b1ca250d414f6902bd7
Author: G. Branden Robinson <[email protected]>
Date:   Wed Apr 1 18:28:02 2026 -0500

    src/roff/troff/env.cpp: Slightly refactor.

    * src/roff/troff/env.cpp: Make request handler functions more consistent
      such that calling `skip_line()` is the last thing they do before
      returning.  The goal is to build confidence that request handlers
      reliably leave the input stream in a well-defined state.  Doing so
      would prevent several bugs I introduced (and resolved, with help from
      fellow developers) in the groff 1.23.0 development cycle, but also
      cases like Savannah #68064, which lurked insidiously for about 35
      years.

      (read_hyphenation_patterns_from_file): Stop calling `tok.next()`
      before returning.

      (load_hyphenation_patterns_from_file_request)
      (append_hyphenation_patterns_from_file_request): Call `skip_line()`
      before returning.


A mystery brews inside the formatter: why some request handlers have to
end with `tok.next()` and others (most of them) must end with
`skip_line()`.  It'll be a banner day when I figure that one out.

Maybe it has to do with reading arguments in copy mode (rare) versus
intepretation mode (common).  I observe that since `hpfa`'s argument is
a file name, it's in the "rare" group.



    _______________________________________________________

Reply to this item at:

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

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

Attachment: signature.asc
Description: PGP signature

Reply via email to