[latex3-commits] [latex3/latex3] main: Allow for NFD into >3 codepoints (fixes #1236) (ebff6bde8)

github at latex-project.org github at latex-project.org
Wed Jun 21 14:12:23 CEST 2023


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

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

commit ebff6bde8026908f1ddaf657d43e030a31f59e36
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date:   Wed Jun 21 13:00:16 2023 +0100

    Allow for NFD into >3 codepoints (fixes #1236)


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

ebff6bde8026908f1ddaf657d43e030a31f59e36
 l3kernel/CHANGELOG.md                   | 3 +++
 l3kernel/l3text-case.dtx                | 5 +++--
 l3kernel/testfiles/m3text002.luatex.tlg | 2 ++
 l3kernel/testfiles/m3text002.lvt        | 1 +
 l3kernel/testfiles/m3text002.ptex.tlg   | 2 ++
 l3kernel/testfiles/m3text002.tlg        | 2 ++
 l3kernel/testfiles/m3text002.uptex.tlg  | 2 ++
 l3kernel/testfiles/m3text002.xetex.tlg  | 2 ++
 8 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/l3kernel/CHANGELOG.md b/l3kernel/CHANGELOG.md
index 34bbeb527..21ede6a58 100644
--- a/l3kernel/CHANGELOG.md
+++ b/l3kernel/CHANGELOG.md
@@ -14,6 +14,9 @@ this project uses date-based 'snapshot' version identifiers.
 - Drop notes about slow `\expanded` emulation. `\expanded` is required since
   release 2023-05-15
 
+### Fixed
+- Case changing of Greek characters with complex NFD representation (issue \#1236)
+
 ## [2023-06-16]
 
 ### Changed
diff --git a/l3kernel/l3text-case.dtx b/l3kernel/l3text-case.dtx
index f761831a6..bd1690d56 100644
--- a/l3kernel/l3text-case.dtx
+++ b/l3kernel/l3text-case.dtx
@@ -1717,8 +1717,9 @@
          {#1} {#2} {#3} {#4} {#5}
      }
      {
-       \@@_change_case_breathing_aux:nnnnn
-         {#1} {#2} {#3} {#4} {#6}
+       \@@_codepoint_process:nN
+         { \@@_change_case_breathing:nnnnnw {#1} {#2} {#3} {#4} }
+           #6 \q_mark
      }
   }
 \cs_new:Npn \@@_change_case_breathing_aux:nnnnn #1#2#3#4#5
diff --git a/l3kernel/testfiles/m3text002.luatex.tlg b/l3kernel/testfiles/m3text002.luatex.tlg
index bf84b1996..3732ab100 100644
--- a/l3kernel/testfiles/m3text002.luatex.tlg
+++ b/l3kernel/testfiles/m3text002.luatex.tlg
@@ -233,6 +233,8 @@ TEST 17: Greek
 ΑΫΠΝΙΑ
 ᾸᾹῘῙῨῩ
 ᾸᾹῘῙῨῩ
+ἊΙ
+ᾼ
 ============================================================
 ============================================================
 TEST 18: Turkish/Azeri
diff --git a/l3kernel/testfiles/m3text002.lvt b/l3kernel/testfiles/m3text002.lvt
index b932985df..2c04e2f8d 100644
--- a/l3kernel/testfiles/m3text002.lvt
+++ b/l3kernel/testfiles/m3text002.lvt
@@ -226,6 +226,7 @@
     \greektest:n { ; }                                    \NEWLINE
     \greektest:n { ἀυπνία }                               \NEWLINE
     \greektest:n { ᾰᾱ ῐῑ ῠῡ }                             \NEWLINE
+    \greektest:n { ᾂ }                                    \NEWLINE
   }
 
 \TESTEXP { Turkish/Azeri }
diff --git a/l3kernel/testfiles/m3text002.ptex.tlg b/l3kernel/testfiles/m3text002.ptex.tlg
index 5ec6dc401..1d3bfd338 100644
--- a/l3kernel/testfiles/m3text002.ptex.tlg
+++ b/l3kernel/testfiles/m3text002.ptex.tlg
@@ -233,6 +233,8 @@ TEST 17: Greek
 ^^ce^^91υπν^^ce^^99α
 ^^e1^^be^^b8^^e1^^be^^b9^^e1^^bf^^98^^e1^^bf^^99^^e1^^bf^^a8^^e1^^bf^^a9
 ^^e1^^be^^b8^^e1^^be^^b9^^e1^^bf^^98^^e1^^bf^^99^^e1^^bf^^a8^^e1^^bf^^a9
+^^e1^^bc^^8a^^ce^^99
+^^e1^^be^^bc
 ============================================================
 ============================================================
 TEST 18: Turkish/Azeri
diff --git a/l3kernel/testfiles/m3text002.tlg b/l3kernel/testfiles/m3text002.tlg
index 87cc6719b..ac2311cf5 100644
--- a/l3kernel/testfiles/m3text002.tlg
+++ b/l3kernel/testfiles/m3text002.tlg
@@ -233,6 +233,8 @@ TEST 17: Greek
 ^^ce^^91^^ce^^ab^^ce^^a0^^ce^^9d^^ce^^99^^ce^^91
 ^^e1^^be^^b8^^e1^^be^^b9^^e1^^bf^^98^^e1^^bf^^99^^e1^^bf^^a8^^e1^^bf^^a9
 ^^e1^^be^^b8^^e1^^be^^b9^^e1^^bf^^98^^e1^^bf^^99^^e1^^bf^^a8^^e1^^bf^^a9
+^^e1^^bc^^8a^^ce^^99
+^^e1^^be^^bc
 ============================================================
 ============================================================
 TEST 18: Turkish/Azeri
diff --git a/l3kernel/testfiles/m3text002.uptex.tlg b/l3kernel/testfiles/m3text002.uptex.tlg
index 9d59f0f6f..79fd9170d 100644
--- a/l3kernel/testfiles/m3text002.uptex.tlg
+++ b/l3kernel/testfiles/m3text002.uptex.tlg
@@ -233,6 +233,8 @@ TEST 17: Greek
 ^^ce^^91^^ce^^ab^^ce^^a0^^ce^^9d^^ce^^99^^ce^^91
 ^^e1^^be^^b8^^e1^^be^^b9^^e1^^bf^^98^^e1^^bf^^99^^e1^^bf^^a8^^e1^^bf^^a9
 ^^e1^^be^^b8^^e1^^be^^b9^^e1^^bf^^98^^e1^^bf^^99^^e1^^bf^^a8^^e1^^bf^^a9
+^^e1^^bc^^8a^^ce^^99
+^^e1^^be^^bc
 ============================================================
 ============================================================
 TEST 18: Turkish/Azeri
diff --git a/l3kernel/testfiles/m3text002.xetex.tlg b/l3kernel/testfiles/m3text002.xetex.tlg
index bf84b1996..3732ab100 100644
--- a/l3kernel/testfiles/m3text002.xetex.tlg
+++ b/l3kernel/testfiles/m3text002.xetex.tlg
@@ -233,6 +233,8 @@ TEST 17: Greek
 ΑΫΠΝΙΑ
 ᾸᾹῘῙῨῩ
 ᾸᾹῘῙῨῩ
+ἊΙ
+ᾼ
 ============================================================
 ============================================================
 TEST 18: Turkish/Azeri





More information about the latex3-commits mailing list.