[latex3-commits] [git/LaTeX3-latex3-latex3] main: Correct support for ypogegrammeni in Greek (fixes #1088) (cc8a6603e)

Joseph Wright joseph.wright at morningstar2.co.uk
Fri Apr 29 00:36:49 CEST 2022


Repository : https://github.com/latex3/latex3
On branch  : main
Link       : https://github.com/latex3/latex3/commit/cc8a6603efb3c001136cbfbb628c0a0fad95e1a5

>---------------------------------------------------------------

commit cc8a6603efb3c001136cbfbb628c0a0fad95e1a5
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date:   Thu Apr 28 23:36:49 2022 +0100

    Correct support for ypogegrammeni in Greek (fixes #1088)
    
    The el-xiota option to add in a second commit tomorrow.


>---------------------------------------------------------------

cc8a6603efb3c001136cbfbb628c0a0fad95e1a5
 l3kernel/CHANGELOG.md                   | 3 +++
 l3kernel/l3text-case.dtx                | 9 ++++++++-
 l3kernel/testfiles/m3text002.luatex.tlg | 4 ++++
 l3kernel/testfiles/m3text002.lvt        | 2 +-
 l3kernel/testfiles/m3text002.tlg        | 3 ++-
 l3kernel/testfiles/m3text002.uptex.tlg  | 4 ++++
 l3kernel/testfiles/m3text002.xetex.tlg  | 4 ++++
 7 files changed, 26 insertions(+), 3 deletions(-)

diff --git a/l3kernel/CHANGELOG.md b/l3kernel/CHANGELOG.md
index 53e01867e..21341a087 100644
--- a/l3kernel/CHANGELOG.md
+++ b/l3kernel/CHANGELOG.md
@@ -12,6 +12,9 @@ this project uses date-based 'snapshot' version identifiers.
   `luaotfload`
 - Allow for `\lccode`/`\uccode` changes in `\char_...case:n` functions
 
+### Fixed
+- Support for ypogegrammeni in case changing Greek (see issue \#1088)
+
 ## [2022-04-20]
 
 ### Changed
diff --git a/l3kernel/l3text-case.dtx b/l3kernel/l3text-case.dtx
index 10825f0c2..507819a27 100644
--- a/l3kernel/l3text-case.dtx
+++ b/l3kernel/l3text-case.dtx
@@ -820,7 +820,14 @@
           }
           {
             \int_compare:nNnTF { `#4 } = { "0345 }
-              { \@@_change_case_loop:nnw {#2} {#3} }
+              {
+                \@@_change_case_store:e
+                  {
+                    \char_generate:nn { "0399 }
+                      { \char_value_catcode:n { "0399 } }
+                  }
+                \@@_change_case_loop:nnw {#2} {#3}
+              }
               { \@@_change_case_char:nnnN {#1} {#2} {#3} #4 }
           }
       }
diff --git a/l3kernel/testfiles/m3text002.luatex.tlg b/l3kernel/testfiles/m3text002.luatex.tlg
index 1c325329e..95717433c 100644
--- a/l3kernel/testfiles/m3text002.luatex.tlg
+++ b/l3kernel/testfiles/m3text002.luatex.tlg
@@ -176,6 +176,10 @@ TEST 15: Greek
 ΡΩΜΕΪΚΑ
 Ὀδυσσεύς
 Ὀδυσσεύς
+ΉΙ
+ΗΙ
+ΗΊ
+ΗΙ
 ============================================================
 ============================================================
 TEST 16: Turkish/Azeri
diff --git a/l3kernel/testfiles/m3text002.lvt b/l3kernel/testfiles/m3text002.lvt
index ad013cbcc..a5ef007af 100644
--- a/l3kernel/testfiles/m3text002.lvt
+++ b/l3kernel/testfiles/m3text002.lvt
@@ -184,7 +184,7 @@
     \greektest:n { Το~ένα~ή~το~άλλο. }                    \NEWLINE
     \greektest:n { ρωμέικα }                              \NEWLINE
     \text_titlecase:n         { ὈΔΥΣΣΕΎΣ } \NEWLINE
-    \text_titlecase:nn { el } { ὈΔΥΣΣΕΎΣ }
+    \text_titlecase:nn { el } { ὈΔΥΣΣΕΎΣ } \NEWLINE
     % Taken from luaotfload tests
     \greektest:n { ῄ }                                    \NEWLINE
     \greektest:n { ῄ }                                   \NEWLINE
diff --git a/l3kernel/testfiles/m3text002.tlg b/l3kernel/testfiles/m3text002.tlg
index da2d11576..d0b3bf81b 100644
--- a/l3kernel/testfiles/m3text002.tlg
+++ b/l3kernel/testfiles/m3text002.tlg
@@ -175,7 +175,8 @@ TEST 15: Greek
 ^^ce^^a1^^ce^^a9^^ce^^9c^^ce^^88^^ce^^99^^ce^^9a^^ce^^91
 ^^ce^^a1^^ce^^a9^^ce^^9c^^ce^^88^^ce^^99^^ce^^9a^^ce^^91
 ^^e1^^bd^^88^^ce^^b4^^cf^^85^^cf^^83^^cf^^83^^ce^^b5^^cf^^8d^^cf^^82
-^^e1^^bd^^88^^ce^^b4^^cf^^85^^cf^^83^^cf^^83^^ce^^b5^^cf^^8d^^cf^^82^^e1^^bf^^84
+^^e1^^bd^^88^^ce^^b4^^cf^^85^^cf^^83^^cf^^83^^ce^^b5^^cf^^8d^^cf^^82
+^^e1^^bf^^84
 ^^e1^^bf^^84
 ^^e1^^bf^^8c^^cc^^81
 ^^e1^^bf^^8c^^cc^^81
diff --git a/l3kernel/testfiles/m3text002.uptex.tlg b/l3kernel/testfiles/m3text002.uptex.tlg
index 16a51a873..96997cabc 100644
--- a/l3kernel/testfiles/m3text002.uptex.tlg
+++ b/l3kernel/testfiles/m3text002.uptex.tlg
@@ -176,6 +176,10 @@ TEST 15: Greek
 ^^ce^^a1^^ce^^a9^^ce^^9c^^ce^^88^^ce^^99^^ce^^9a^^ce^^91
 ^^e1^^bd^^88^^ce^^b4^^cf^^85^^cf^^83^^cf^^83^^ce^^b5^^cf^^8d^^cf^^82
 ^^e1^^bd^^88^^ce^^b4^^cf^^85^^cf^^83^^cf^^83^^ce^^b5^^cf^^8d^^cf^^82
+^^e1^^bf^^84
+^^e1^^bf^^84
+^^e1^^bf^^83^^cc^^81
+^^e1^^bf^^83^^cc^^81
 ============================================================
 ============================================================
 TEST 16: Turkish/Azeri
diff --git a/l3kernel/testfiles/m3text002.xetex.tlg b/l3kernel/testfiles/m3text002.xetex.tlg
index 1c325329e..95717433c 100644
--- a/l3kernel/testfiles/m3text002.xetex.tlg
+++ b/l3kernel/testfiles/m3text002.xetex.tlg
@@ -176,6 +176,10 @@ TEST 15: Greek
 ΡΩΜΕΪΚΑ
 Ὀδυσσεύς
 Ὀδυσσεύς
+ΉΙ
+ΗΙ
+ΗΊ
+ΗΙ
 ============================================================
 ============================================================
 TEST 16: Turkish/Azeri





More information about the latex3-commits mailing list.