• Michal Nazarewicz's avatar
    Implement special sigma casing rule (bug#24603) · c1fa0722
    Michal Nazarewicz authored
    In Greek, a sigma character has two lower case forms which depend on
    their position in the word.  Implement logic determining it.
    
    * src/casefiddle.c (struct casing_context, case_character_impl): Don’t
    assume inword is true when flag is CASE_UP and false when flag is
    CASE_DOWN.  For final sigma detection we need this information tracked
    reliably;.
    (CAPITAL_SIGMA, SMALL_SIGMA, SMALL_FINAL_SIGMA): New macros defining
    Unicode code point of different forms of sigma letter.
    (case_character): Implement support for final sigma casing.
    (do_casify_multibyte_string, do_casify_multibyte_region): Update after
    changes to case_character.
    
    * test/src/casefiddle-tests.el (casefiddle-tests-casing): Add test
    cases for final sigma.
    c1fa0722
casefiddle-tests.el 10.5 KB