Update of bug #66387 (group groff):

                  Status:             In Progress => Fixed                  
             Open/Closed:                    Open => Closed                 
         Planned Release:                    None => 1.24.0                 

    _______________________________________________________

Follow-up Comment #5:


commit 1e7bee0221852192adb3634a451d02511c969c3b
Author: G. Branden Robinson <g.branden.robin...@gmail.com>
Date:   Thu Oct 31 03:00:56 2024 -0500

    [troff]: Fix Savannah #66387.
    
    Couple the current hyphenation language more tightly with the
    environment.  This is to ease maintenance of multilingual documents, and
    address a curious situation where an environment could bear an automatic
    hyphenation code that had nothing to do with the selected hyphenation
    language, because the `hla` request has to date never altered the
    environment.
    
    * src/roff/troff/env.h (class environment): Add private member variable
      `language_code` of type `symbol`.  Declare public member functions
      `get_language_code()` and `set_language_code()`.  Declare
      `environment_switch()` as a friend function.
    
    * src/roff/troff/env.cpp (environment::environment): Plain constructor
      initializes `language_code` as empty string.
    
      (environment::environment): Copy constructor copies the language code
      from the source object.
    
      (environment::copy): Member function backing `evc` request copies the
      language code from the source environment.
    
      (environment::print_env): Report the hyphenation language code in use
      by the environment.  Clarify when the automatic hyphenation mode is
      ignored because no hyphenation language is configured in the
      environment.
    
      (select_hyphenation_language): When the `hla` request is called
      without an argument, set the current environment's hyphenation
      language code to the empty string.  With an argument, update the
      environment's hyphenation to the value of the argument.  Add
      assertions prior to function return to enforce invariants: (1) the
      current environment's hyphenation language code must not be null and
      (2) the `current_language` global variable and the current
      environment's hyphenation language code must agree.
    
      (environment_copy, environment_switch): Set the `current_language`
      global variable to current environment's hyphenation language code.

      (environment::get_language_code): Implement accessor.
    
      (environment::set_language_code): Implement mutator.
    
    * src/roff/groff/tests/current-language-and-environment-in-sync.sh: Add
      unit test.
    * src/roff/groff/groff.am (groff_TESTS): Run test.
    
    Fixes <https://savannah.gnu.org/bugs/?66387>.




    _______________________________________________________

Reply to this item at:

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

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

Attachment: signature.asc
Description: PGP signature

Reply via email to