[latex3-commits] [git/LaTeX3-latex3-latex3] main: Avoid case changing high chars in (u)pTeX (issue #939) (0e42f6c0f)

Joseph Wright joseph.wright at morningstar2.co.uk
Mon Jun 14 17:58:40 CEST 2021


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

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

commit 0e42f6c0fa10b65d97dfafc9edea02b22a409811
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date:   Mon Jun 14 16:58:40 2021 +0100

    Avoid case changing high chars in (u)pTeX (issue #939)


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

0e42f6c0fa10b65d97dfafc9edea02b22a409811
 l3kernel/CHANGELOG.md                   |  1 +
 l3kernel/l3text-case.dtx                | 37 +++++++++++++++-----
 l3kernel/testfiles/m3text002.luatex.tlg | 44 +++++++++++++----------
 l3kernel/testfiles/m3text002.lvt        |  7 ++++
 l3kernel/testfiles/m3text002.ptex.tlg   |  8 +++++
 l3kernel/testfiles/m3text002.tlg        | 44 +++++++++++++----------
 l3kernel/testfiles/m3text002.uptex.tlg  | 62 +++++++++++++++++++--------------
 l3kernel/testfiles/m3text002.xetex.tlg  | 44 +++++++++++++----------
 8 files changed, 157 insertions(+), 90 deletions(-)

diff --git a/l3kernel/CHANGELOG.md b/l3kernel/CHANGELOG.md
index ab08609e1..d8c369158 100644
--- a/l3kernel/CHANGELOG.md
+++ b/l3kernel/CHANGELOG.md
@@ -9,6 +9,7 @@ this project uses date-based 'snapshot' version identifiers.
 
 ### Fixed
 - Incorrect internal function name (issue #939)
+- Case-changing exceptions for (u)pTeX (issue #939)
 
 ## [2021-06-01]
 
diff --git a/l3kernel/l3text-case.dtx b/l3kernel/l3text-case.dtx
index 74781a45b..4516a4579 100644
--- a/l3kernel/l3text-case.dtx
+++ b/l3kernel/l3text-case.dtx
@@ -163,7 +163,12 @@
 % \begin{macro}[EXP]
 %   {\@@_change_case_char_title:nN, \@@_change_case_char_titleonly:nN}
 % \begin{macro}[EXP]{\@@_change_case_char_title:nnnN}
-% \begin{macro}[EXP]{\@@_change_case_char:nnnN, \@@_change_case_char_aux:nnnN}
+% \begin{macro}[EXP]
+%   {
+%     \@@_change_case_char:nnnN       ,
+%     \@@_change_case_char_auxi:nnnN  ,
+%     \@@_change_case_char_auxii:nnnN
+%   }
 % \begin{macro}[EXP]{\@@_change_case_char_UTFviii:nnnNN}
 % \begin{macro}[EXP]{\@@_change_case_char_UTFviii:nnnNNN}
 % \begin{macro}[EXP]{\@@_change_case_char_UTFviii:nnnNNNN}
@@ -608,6 +613,7 @@
 %   are to deal with. Those can then be grabbed to reconstruct the full
 %   Unicode character, which is then used in a lookup. (As will become
 %   obvious below, there is no intention here of covering all of Unicode.)
+%   For (u)p-\TeX{} there are a limited number of tokens we can touch.
 %    \begin{macrocode}
 \cs_new:Npn \@@_change_case_char:nnnN #1#2#3#4
   {
@@ -623,7 +629,7 @@
   { \sys_if_engine_luatex_p: }
   { \sys_if_engine_xetex_p: }
   {
-    \cs_new_eq:NN \@@_change_case_char_aux:nnnN
+    \cs_new_eq:NN \@@_change_case_char_auxi:nnnN
       \@@_change_case_char:nnnN
     \cs_gset:Npn \@@_change_case_char:nnnN #1#2#3#4
       {
@@ -631,15 +637,28 @@
           {
             \int_compare:nNnTF { `#4 } < { "E0 }
               { \@@_change_case_char_UTFviii:nnnNN }
-              {
-                \int_compare:nNnTF { `#4 } < { "F0 }
-                  { \@@_change_case_char_UTFviii:nnnNNN }
-                  { \@@_change_case_char_UTFviii:nnnNNNN }
-              }
-                {#1} {#2} {#3} #4
+              { \@@_change_case_char_auxii:nnnN }
           }
-          { \@@_change_case_char_aux:nnnN {#1} {#2} {#3} #4 }
+          { \@@_change_case_char_auxi:nnnN }
+            {#1} {#2} {#3} #4
        }
+    \sys_if_engine_pdftex:TF
+      {
+        \cs_new:Npn \@@_change_case_char_auxii:nnnN #1#2#3#4
+          {
+            \int_compare:nNnTF { `#4 } < { "F0 }
+              { \@@_change_case_char_UTFviii:nnnNNN }
+              { \@@_change_case_char_UTFviii:nnnNNNN }
+                {#1} {#2} {#3} #4
+          }
+      }
+      {
+        \cs_new:Npn \@@_change_case_char_auxii:nnnN #1#2#3#4
+          {
+            \@@_change_case_store:n {#4}
+            \use:c { @@_change_case_char_next_ #2 :nn } {#2} {#3}
+          }
+      }
     \cs_new:Npn \@@_change_case_char_UTFviii:nnnNN #1#2#3#4#5
       { \@@_change_case_char_UTFviii:nnnn {#1} {#2} {#3} {#4#5} }
     \cs_new:Npn \@@_change_case_char_UTFviii:nnnNNN #1#2#3#4#5#6
diff --git a/l3kernel/testfiles/m3text002.luatex.tlg b/l3kernel/testfiles/m3text002.luatex.tlg
index 0113899d4..1c325329e 100644
--- a/l3kernel/testfiles/m3text002.luatex.tlg
+++ b/l3kernel/testfiles/m3text002.luatex.tlg
@@ -88,7 +88,15 @@ No problems
 No problems
 ============================================================
 ============================================================
-TEST 9: Unicode case changing
+TEST 9: (u)pTeX-based tests
+============================================================
+abc^^e8日本語
+ABC^^c8日本語
+Abc^^e8日本語
+ABC^^c8日本語
+============================================================
+============================================================
+TEST 10: Unicode case changing
 ============================================================
 ^^e5^^e9^^ee^^f8ὥдαɛ
 ^^c5^^c9^^ce^^d8ὭДΑƐ
@@ -96,7 +104,7 @@ TEST 9: Unicode case changing
 ^^c5^^e9^^ee^^f8ὭдαƐ
 ============================================================
 ============================================================
-TEST 10: Unicode case changing exceptions
+TEST 11: Unicode case changing exceptions
 ============================================================
 fu^^dfball
 FUSSBALL
@@ -104,7 +112,7 @@ Fu^^dfball
 Fu^^dfball
 ============================================================
 ============================================================
-TEST 11: The final sigma rule
+TEST 12: The final sigma rule
 ============================================================
 ὀδυσσεύς (ὀδυσσεύς) ὀδυσσεύς, ὀδυσσεύς{} ὀδυσσεύς\noop 
 ὈΔΥΣΣΕΎΣ (ὈΔΥΣΣΕΎΣ) ὈΔΥΣΣΕΎΣ, ὈΔΥΣΣΕΎΣ{} ὈΔΥΣΣΕΎΣ\noop 
@@ -116,7 +124,7 @@ TEST 11: The final sigma rule
 ὈΔΥΣΣΕΎΣ
 ============================================================
 ============================================================
-TEST 12: Cyrillic
+TEST 13: Cyrillic
 ============================================================
 доклады академии наук
 ДОКЛАДЫ АКАДЕМИИ НАУК
@@ -124,13 +132,13 @@ TEST 12: Cyrillic
 Доклады Академии наук
 ============================================================
 ============================================================
-TEST 13: German-alternative
+TEST 14: German-alternative
 ============================================================
 FUSSBALL
 FUẞBALL
 ============================================================
 ============================================================
-TEST 14: Greek
+TEST 15: Greek
 ============================================================
 ΆΔΙΚΟΣ, ΚΕΊΜΕΝΟ, ΊΡΙΔΑ
 ΑΔΙΚΟΣ, ΚΕΙΜΕΝΟ, ΙΡΙΔΑ
@@ -170,7 +178,7 @@ TEST 14: Greek
 Ὀδυσσεύς
 ============================================================
 ============================================================
-TEST 15: Turkish/Azeri
+TEST 16: Turkish/Azeri
 ============================================================
 ragıp hul^^fbsi ^^f6zdem
 ragip hul^^fbsi̇ ^^f6zdem
@@ -182,7 +190,7 @@ Ip hul^^fbsi ^^f6zdem
 Ip hul^^fbsi ^^f6zdem
 ============================================================
 ============================================================
-TEST 16: Lithuanian
+TEST 17: Lithuanian
 ============================================================
 i̇̀i̇́i̇̃i̇̀i̇́i̇̃j̇̀j̇́j̇̃į̇̀į̇́į̇̃
 ^^ec^^edĩìíĩj̀j́j̃į̀į́į̃
@@ -194,7 +202,7 @@ Ìi̇̀i̇̃i̇̀i̇́i̇̃j̇̀j̇́j̇̃į̇̀į̇́į̇̃
 İ̀i̇̀i̇̃i̇̀i̇́i̇̃j̇̀j̇́j̇̃į̇̀į̇́į̇̃
 ============================================================
 ============================================================
-TEST 17: Dutch
+TEST 18: Dutch
 ============================================================
 ijsselmeer
 ijsselmeer
@@ -210,13 +218,13 @@ Im
 Im
 ============================================================
 ============================================================
-TEST 18: Titlecase exceptions
+TEST 19: Titlecase exceptions
 ============================================================
 Ssoo
 Ç…!
 ============================================================
 ============================================================
-TEST 19: Case changing braced arguments
+TEST 20: Case changing braced arguments
 ============================================================
 foo \emph {BAR} {baz}
 FOO \emph {BAR} {BAZ}
@@ -228,7 +236,7 @@ FOO \emph {BAR} {BAZ}
 \emph {BAR} {BAZ}
 ============================================================
 ============================================================
-TEST 20: Expanding content
+TEST 21: Expanding content
 ============================================================
 some text hello
 SOME TEXT HELLO
@@ -256,7 +264,7 @@ Some text \cs_tmp:w
 \cs_tmp:w  Sometext
 ============================================================
 ============================================================
-TEST 21: Math-mode escape
+TEST 22: Math-mode escape
 ============================================================
 some text $y = mx + c$
 SOME TEXT $y = mx + c$
@@ -272,7 +280,7 @@ Opps not close token in $y = mx + c
 Opps not close token in $y = mx + c
 ============================================================
 ============================================================
-TEST 22: Nesting
+TEST 23: Nesting
 ============================================================
 HELLO
 hello
@@ -280,7 +288,7 @@ FUSSBALL
 ὈΔΥΣΣΕΎΣ
 ============================================================
 ============================================================
-TEST 23: Letter-like commands
+TEST 24: Letter-like commands
 ============================================================
 \aa \aa \J \ae \dh \ss \l \o 
 \AA \AA \J \AE \DH \SS \L \O 
@@ -288,7 +296,7 @@ TEST 23: Letter-like commands
 \AA \aa \J \ae \dh \ss \l \O 
 ============================================================
 ============================================================
-TEST 24: Accents
+TEST 25: Accents
 ============================================================
 \"{a}\u {e}\H {i}\v {o}\.{u}
 \"{A}\u {E}\H {I}\v {O}\.{U}
@@ -296,7 +304,7 @@ TEST 24: Accents
 \"{A}\u {e}\H {i}\v {o}\.{u}
 ============================================================
 ============================================================
-TEST 25: Active chars
+TEST 26: Active chars
 ============================================================
 "`lo"=rem"'
 "`LO"=REM"'
@@ -304,7 +312,7 @@ TEST 25: Active chars
 "`Lo"=rem"'
 ============================================================
 ============================================================
-TEST 26: Case changing exclusions
+TEST 27: Case changing exclusions
 ============================================================
 Variant \tl_show:x already defined; not changing it on line ...
 > foo\NoCaseChange {BAR}.
diff --git a/l3kernel/testfiles/m3text002.lvt b/l3kernel/testfiles/m3text002.lvt
index a45449625..a62765fc1 100644
--- a/l3kernel/testfiles/m3text002.lvt
+++ b/l3kernel/testfiles/m3text002.lvt
@@ -119,7 +119,14 @@
     \NEWLINE
     \test:nn { tr } { No~problems }
   }
+
+\TESTEXP { (u)pTeX-based~tests }
+  {
+    \test:n { ABCÈ日本語}
+  }
+
 \sys_if_engine_ptex:T { \END }
+
 \TESTEXP { Unicode~case~changing }
   {
     \test:n { åéîøὭдαƐ }
diff --git a/l3kernel/testfiles/m3text002.ptex.tlg b/l3kernel/testfiles/m3text002.ptex.tlg
index f9599f5c3..3b52ceee8 100644
--- a/l3kernel/testfiles/m3text002.ptex.tlg
+++ b/l3kernel/testfiles/m3text002.ptex.tlg
@@ -87,3 +87,11 @@ NO PROBLEMS
 No problems
 No problems
 ============================================================
+============================================================
+TEST 9: (u)pTeX-based tests
+============================================================
+abc竪日本語
+ABCÃ^^88日本語
+Abc竪日本語
+ABCÃ^^88日本語
+============================================================
diff --git a/l3kernel/testfiles/m3text002.tlg b/l3kernel/testfiles/m3text002.tlg
index 962bb2623..942ce0422 100644
--- a/l3kernel/testfiles/m3text002.tlg
+++ b/l3kernel/testfiles/m3text002.tlg
@@ -88,7 +88,15 @@ No problems
 No problems
 ============================================================
 ============================================================
-TEST 9: Unicode case changing
+TEST 9: (u)pTeX-based tests
+============================================================
+abc^^c3^^a8^^e6^^97^^a5^^e6^^9c^^ac^^e8^^aa^^9e
+ABC^^c3^^88^^e6^^97^^a5^^e6^^9c^^ac^^e8^^aa^^9e
+Abc^^c3^^a8^^e6^^97^^a5^^e6^^9c^^ac^^e8^^aa^^9e
+ABC^^c3^^88^^e6^^97^^a5^^e6^^9c^^ac^^e8^^aa^^9e
+============================================================
+============================================================
+TEST 10: Unicode case changing
 ============================================================
 ^^c3^^a5^^c3^^a9^^c3^^ae^^c3^^b8^^e1^^bd^^a5^^d0^^b4^^ce^^b1^^c6^^90
 ^^c3^^85^^c3^^89^^c3^^8e^^c3^^98^^e1^^bd^^ad^^d0^^94^^ce^^91^^c6^^90
@@ -96,7 +104,7 @@ TEST 9: Unicode case changing
 ^^c3^^85^^c3^^a9^^c3^^ae^^c3^^b8^^e1^^bd^^ad^^d0^^b4^^ce^^b1^^c6^^90
 ============================================================
 ============================================================
-TEST 10: Unicode case changing exceptions
+TEST 11: Unicode case changing exceptions
 ============================================================
 fu^^c3^^9fball
 FUSSBALL
@@ -104,7 +112,7 @@ Fu^^c3^^9fball
 Fu^^c3^^9fball
 ============================================================
 ============================================================
-TEST 11: The final sigma rule
+TEST 12: The final sigma rule
 ============================================================
 ^^e1^^bd^^80^^ce^^b4^^cf^^85^^cf^^83^^cf^^83^^ce^^b5^^cf^^8d^^cf^^82 (^^e1^^bd^^80^^ce^^b4^^cf^^85^^cf^^83^^cf^^83^^ce^^b5^^cf^^8d^^cf^^82) ^^e1^^bd^^80^^ce^^b4^^cf^^85^^cf^^83^^cf^^83^^ce^^b5^^cf^^8d^^cf^^82, ^^e1^^bd^^80^^ce^^b4^^cf^^85^^cf^^83^^cf^^83^^ce^^b5^^cf^^8d^^cf^^82{} ^^e1^^bd^^80^^ce^^b4^^cf^^85^^cf^^83^^cf^^83^^ce^^b5^^cf^^8d^^cf^^82\noop 
 ^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3 (^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3) ^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3, ^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3{} ^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3\noop 
@@ -116,7 +124,7 @@ TEST 11: The final sigma rule
 ^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3
 ============================================================
 ============================================================
-TEST 12: Cyrillic
+TEST 13: Cyrillic
 ============================================================
 ^^d0^^b4^^d0^^be^^d0^^ba^^d0^^bb^^d0^^b0^^d0^^b4^^d1^^8b ^^d0^^b0^^d0^^ba^^d0^^b0^^d0^^b4^^d0^^b5^^d0^^bc^^d0^^b8^^d0^^b8 ^^d0^^bd^^d0^^b0^^d1^^83^^d0^^ba
 ^^d0^^94^^d0^^9e^^d0^^9a^^d0^^9b^^d0^^90^^d0^^94^^d0^^ab ^^d0^^90^^d0^^9a^^d0^^90^^d0^^94^^d0^^95^^d0^^9c^^d0^^98^^d0^^98 ^^d0^^9d^^d0^^90^^d0^^a3^^d0^^9a
@@ -124,13 +132,13 @@ TEST 12: Cyrillic
 ^^d0^^94^^d0^^be^^d0^^ba^^d0^^bb^^d0^^b0^^d0^^b4^^d1^^8b ^^d0^^90^^d0^^ba^^d0^^b0^^d0^^b4^^d0^^b5^^d0^^bc^^d0^^b8^^d0^^b8 ^^d0^^bd^^d0^^b0^^d1^^83^^d0^^ba
 ============================================================
 ============================================================
-TEST 13: German-alternative
+TEST 14: German-alternative
 ============================================================
 FUSSBALL
 FU^^e1^^ba^^9eBALL
 ============================================================
 ============================================================
-TEST 14: Greek
+TEST 15: Greek
 ============================================================
 ^^ce^^86^^ce^^94^^ce^^99^^ce^^9a^^ce^^9f^^ce^^a3, ^^ce^^9a^^ce^^95^^ce^^8a^^ce^^9c^^ce^^95^^ce^^9d^^ce^^9f, ^^ce^^8a^^ce^^a1^^ce^^99^^ce^^94^^ce^^91
 ^^ce^^86^^ce^^94^^ce^^99^^ce^^9a^^ce^^9f^^ce^^a3, ^^ce^^9a^^ce^^95^^ce^^8a^^ce^^9c^^ce^^95^^ce^^9d^^ce^^9f, ^^ce^^8a^^ce^^a1^^ce^^99^^ce^^94^^ce^^91
@@ -170,7 +178,7 @@ TEST 14: Greek
 ^^e1^^bd^^88^^ce^^b4^^cf^^85^^cf^^83^^cf^^83^^ce^^b5^^cf^^8d^^cf^^82
 ============================================================
 ============================================================
-TEST 15: Turkish/Azeri
+TEST 16: Turkish/Azeri
 ============================================================
 rag^^c4^^b1p hul^^c3^^bbsi ^^c3^^b6zdem
 ragip hul^^c3^^bbs^^c4^^b0 ^^c3^^b6zdem
@@ -182,7 +190,7 @@ Rag^^c4^^b1p hul^^c3^^bbsi ^^c3^^b6zdem
 ^^c4^^b1p hul^^c3^^bbsi ^^c3^^b6zdem
 ============================================================
 ============================================================
-TEST 16: Lithuanian
+TEST 17: Lithuanian
 ============================================================
 ^^c3^^ac^^c3^^ad^^c4^^a9
 ^^c3^^ac^^c3^^ad^^c4^^a9
@@ -190,7 +198,7 @@ TEST 16: Lithuanian
 ^^c3^^8c^^c3^^ad^^c4^^a9
 ============================================================
 ============================================================
-TEST 17: Dutch
+TEST 18: Dutch
 ============================================================
 ijsselmeer
 ijsselmeer
@@ -206,13 +214,13 @@ Im
 Im
 ============================================================
 ============================================================
-TEST 18: Titlecase exceptions
+TEST 19: Titlecase exceptions
 ============================================================
 Ssoo
 ^^c7^^85!
 ============================================================
 ============================================================
-TEST 19: Case changing braced arguments
+TEST 20: Case changing braced arguments
 ============================================================
 foo \emph {BAR} {baz}
 FOO \emph {BAR} {BAZ}
@@ -224,7 +232,7 @@ FOO \emph {BAR} {BAZ}
 \emph {BAR} {BAZ}
 ============================================================
 ============================================================
-TEST 20: Expanding content
+TEST 21: Expanding content
 ============================================================
 some text hello
 SOME TEXT HELLO
@@ -252,7 +260,7 @@ Some text \cs_tmp:w
 \cs_tmp:w  Sometext
 ============================================================
 ============================================================
-TEST 21: Math-mode escape
+TEST 22: Math-mode escape
 ============================================================
 some text $y = mx + c$
 SOME TEXT $y = mx + c$
@@ -268,7 +276,7 @@ Opps not close token in $y = mx + c
 Opps not close token in $y = mx + c
 ============================================================
 ============================================================
-TEST 22: Nesting
+TEST 23: Nesting
 ============================================================
 HELLO
 hello
@@ -276,7 +284,7 @@ FUSSBALL
 ^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3
 ============================================================
 ============================================================
-TEST 23: Letter-like commands
+TEST 24: Letter-like commands
 ============================================================
 \aa \aa \J \ae \dh \ss \l \o 
 \AA \AA \J \AE \DH \SS \L \O 
@@ -284,7 +292,7 @@ TEST 23: Letter-like commands
 \AA \aa \J \ae \dh \ss \l \O 
 ============================================================
 ============================================================
-TEST 24: Accents
+TEST 25: Accents
 ============================================================
 \"{a}\u {e}\H {i}\v {o}\.{u}
 \"{A}\u {E}\H {I}\v {O}\.{U}
@@ -292,7 +300,7 @@ TEST 24: Accents
 \"{A}\u {e}\H {i}\v {o}\.{u}
 ============================================================
 ============================================================
-TEST 25: Active chars
+TEST 26: Active chars
 ============================================================
 "`lo"=rem"'
 "`LO"=REM"'
@@ -300,7 +308,7 @@ TEST 25: Active chars
 "`Lo"=rem"'
 ============================================================
 ============================================================
-TEST 26: Case changing exclusions
+TEST 27: Case changing exclusions
 ============================================================
 Variant \tl_show:x already defined; not changing it on line ...
 > foo\NoCaseChange {BAR}.
diff --git a/l3kernel/testfiles/m3text002.uptex.tlg b/l3kernel/testfiles/m3text002.uptex.tlg
index 75f033e6e..dc5a67c78 100644
--- a/l3kernel/testfiles/m3text002.uptex.tlg
+++ b/l3kernel/testfiles/m3text002.uptex.tlg
@@ -88,15 +88,23 @@ No problems
 No problems
 ============================================================
 ============================================================
-TEST 9: Unicode case changing
+TEST 9: (u)pTeX-based tests
 ============================================================
-^^e5^^e9^^ee^^f8ὥдαƐ
+abc^^e8日本語
+ABC^^c8日本語
+Abc^^e8日本語
+ABC^^c8日本語
+============================================================
+============================================================
+TEST 10: Unicode case changing
+============================================================
+^^e5^^e9^^ee^^f8ὭдαƐ
 ^^c5^^c9^^ce^^d8ὭДΑƐ
-^^c5^^e9^^ee^^f8ὥдαƐ
+^^c5^^e9^^ee^^f8ὭдαƐ
 ^^c5^^e9^^ee^^f8ὭдαƐ
 ============================================================
 ============================================================
-TEST 10: Unicode case changing exceptions
+TEST 11: Unicode case changing exceptions
 ============================================================
 fu^^dfball
 FUSSBALL
@@ -104,19 +112,19 @@ Fu^^dfball
 Fu^^dfball
 ============================================================
 ============================================================
-TEST 11: The final sigma rule
+TEST 12: The final sigma rule
 ============================================================
-ὀδυσσεύς (ὀδυσσεύς) ὀδυσσεύς, ὀδυσσεύς{} ὀδυσσεύς\noop 
+Ὀδυσσεύς (Ὀδυσσεύς) Ὀδυσσεύς, Ὀδυσσεύς{} Ὀδυσσεύς\noop 
 ὈΔΥΣΣΕΎΣ (ὈΔΥΣΣΕΎΣ) ὈΔΥΣΣΕΎΣ, ὈΔΥΣΣΕΎΣ{} ὈΔΥΣΣΕΎΣ\noop 
-Ὀδυσσεύς (ὀδυσσεύς) ὀδυσσεύς, ὀδυσσεύς{} ὀδυσσεύς\noop 
+Ὀδυσσεύς (Ὀδυσσεύς) Ὀδυσσεύς, Ὀδυσσεύς{} Ὀδυσσεύς\noop 
 ὈΔΥΣΣΕΎΣ (ὈΔΥΣΣΕΎΣ) ὈΔΥΣΣΕΎΣ, ὈΔΥΣΣΕΎΣ{} ὈΔΥΣΣΕΎΣ\noop 
-ὀδυσσεύς
+Ὀδυσσεύς
 ὈΔΥΣΣΕΎΣ
 Ὀδυσσεύς
 ὈΔΥΣΣΕΎΣ
 ============================================================
 ============================================================
-TEST 12: Cyrillic
+TEST 13: Cyrillic
 ============================================================
 доклады академии наук
 ДОКЛАДЫ АКАДЕМИИ НАУК
@@ -124,13 +132,13 @@ TEST 12: Cyrillic
 Доклады Академии наук
 ============================================================
 ============================================================
-TEST 13: German-alternative
+TEST 14: German-alternative
 ============================================================
 FUSSBALL
 FUẞBALL
 ============================================================
 ============================================================
-TEST 14: Greek
+TEST 15: Greek
 ============================================================
 ΆΔΙΚΟΣ, ΚΕΊΜΕΝΟ, ΊΡΙΔΑ
 ΆΔΙΚΟΣ, ΚΕΊΜΕΝΟ, ΊΡΙΔΑ
@@ -152,10 +160,10 @@ TEST 14: Greek
 ΕΠΕΙΔΉ Η ΑΝΑΓΝΏΡΙΣΗ ΤΗΣ ΑΞΙΟΠΡΈΠΕΙΑΣ
 ΝΟΜΙΚΟΎ Ή ΔΙΕΘΝΟΎΣ
 ΝΟΜΙΚΟΎ Ή ΔΙΕΘΝΟΎΣ
-ἘΠΕΙΔῊ Ἡ ἈΝΑΓΝΏΡΙΣΗ
-ἘΠΕΙΔῊ Ἡ ἈΝΑΓΝΏΡΙΣΗ
-ΝΟΜΙΚΟῦ Ἢ ΔΙΕΘΝΟῦΣ
-ΝΟΜΙΚΟῦ Ἢ ΔΙΕΘΝΟῦΣ
+ἘΠΕΙΔὴ ἡ ἀΝΑΓΝΏΡΙΣΗ
+ἘΠΕΙΔὴ ἡ ἀΝΑΓΝΏΡΙΣΗ
+ΝΟΜΙΚΟῦ ἢ ΔΙΕΘΝΟῦΣ
+ΝΟΜΙΚΟῦ ἢ ΔΙΕΘΝΟῦΣ
 ΝΈΟ, ΔΗΜΙΟΥΡΓΊΑ
 ΝΈΟ, ΔΗΜΙΟΥΡΓΊΑ
 ΕΛΆΤΕ ΝΑ ΦΆΤΕ ΤΑ ΚΑΛΎΤΕΡΑ ΠΑΪΔΆΚΙΑ!
@@ -170,7 +178,7 @@ TEST 14: Greek
 Ὀδυσσεύς
 ============================================================
 ============================================================
-TEST 15: Turkish/Azeri
+TEST 16: Turkish/Azeri
 ============================================================
 ragıp hul^^fbsi ^^f6zdem
 ragip hul^^fbsÄ° ^^f6zdem
@@ -182,7 +190,7 @@ Ragıp hul^^fbsi ^^f6zdem
 ıp hul^^fbsi ^^f6zdem
 ============================================================
 ============================================================
-TEST 16: Lithuanian
+TEST 17: Lithuanian
 ============================================================
 ^^ec^^edĩ
 ^^ec^^edĩ
@@ -190,7 +198,7 @@ TEST 16: Lithuanian
 ^^cc^^edĩ
 ============================================================
 ============================================================
-TEST 17: Dutch
+TEST 18: Dutch
 ============================================================
 ijsselmeer
 ijsselmeer
@@ -206,13 +214,13 @@ Im
 Im
 ============================================================
 ============================================================
-TEST 18: Titlecase exceptions
+TEST 19: Titlecase exceptions
 ============================================================
 Ssoo
 Ç…!
 ============================================================
 ============================================================
-TEST 19: Case changing braced arguments
+TEST 20: Case changing braced arguments
 ============================================================
 foo \emph {BAR} {baz}
 FOO \emph {BAR} {BAZ}
@@ -224,7 +232,7 @@ FOO \emph {BAR} {BAZ}
 \emph {BAR} {BAZ}
 ============================================================
 ============================================================
-TEST 20: Expanding content
+TEST 21: Expanding content
 ============================================================
 some text hello
 SOME TEXT HELLO
@@ -252,7 +260,7 @@ Some text \cs_tmp:w
 \cs_tmp:w  Sometext
 ============================================================
 ============================================================
-TEST 21: Math-mode escape
+TEST 22: Math-mode escape
 ============================================================
 some text $y = mx + c$
 SOME TEXT $y = mx + c$
@@ -268,7 +276,7 @@ Opps not close token in $y = mx + c
 Opps not close token in $y = mx + c
 ============================================================
 ============================================================
-TEST 22: Nesting
+TEST 23: Nesting
 ============================================================
 HELLO
 hello
@@ -276,7 +284,7 @@ FUSSBALL
 ὈΔΥΣΣΕΎΣ
 ============================================================
 ============================================================
-TEST 23: Letter-like commands
+TEST 24: Letter-like commands
 ============================================================
 \aa \aa \J \ae \dh \ss \l \o 
 \AA \AA \J \AE \DH \SS \L \O 
@@ -284,7 +292,7 @@ TEST 23: Letter-like commands
 \AA \aa \J \ae \dh \ss \l \O 
 ============================================================
 ============================================================
-TEST 24: Accents
+TEST 25: Accents
 ============================================================
 \"{a}\u {e}\H {i}\v {o}\.{u}
 \"{A}\u {E}\H {I}\v {O}\.{U}
@@ -292,7 +300,7 @@ TEST 24: Accents
 \"{A}\u {e}\H {i}\v {o}\.{u}
 ============================================================
 ============================================================
-TEST 25: Active chars
+TEST 26: Active chars
 ============================================================
 "`lo"=rem"'
 "`LO"=REM"'
@@ -300,7 +308,7 @@ TEST 25: Active chars
 "`Lo"=rem"'
 ============================================================
 ============================================================
-TEST 26: Case changing exclusions
+TEST 27: Case changing exclusions
 ============================================================
 Variant \tl_show:x already defined; not changing it on line ...
 > foo\NoCaseChange {BAR}.
diff --git a/l3kernel/testfiles/m3text002.xetex.tlg b/l3kernel/testfiles/m3text002.xetex.tlg
index 0113899d4..1c325329e 100644
--- a/l3kernel/testfiles/m3text002.xetex.tlg
+++ b/l3kernel/testfiles/m3text002.xetex.tlg
@@ -88,7 +88,15 @@ No problems
 No problems
 ============================================================
 ============================================================
-TEST 9: Unicode case changing
+TEST 9: (u)pTeX-based tests
+============================================================
+abc^^e8日本語
+ABC^^c8日本語
+Abc^^e8日本語
+ABC^^c8日本語
+============================================================
+============================================================
+TEST 10: Unicode case changing
 ============================================================
 ^^e5^^e9^^ee^^f8ὥдαɛ
 ^^c5^^c9^^ce^^d8ὭДΑƐ
@@ -96,7 +104,7 @@ TEST 9: Unicode case changing
 ^^c5^^e9^^ee^^f8ὭдαƐ
 ============================================================
 ============================================================
-TEST 10: Unicode case changing exceptions
+TEST 11: Unicode case changing exceptions
 ============================================================
 fu^^dfball
 FUSSBALL
@@ -104,7 +112,7 @@ Fu^^dfball
 Fu^^dfball
 ============================================================
 ============================================================
-TEST 11: The final sigma rule
+TEST 12: The final sigma rule
 ============================================================
 ὀδυσσεύς (ὀδυσσεύς) ὀδυσσεύς, ὀδυσσεύς{} ὀδυσσεύς\noop 
 ὈΔΥΣΣΕΎΣ (ὈΔΥΣΣΕΎΣ) ὈΔΥΣΣΕΎΣ, ὈΔΥΣΣΕΎΣ{} ὈΔΥΣΣΕΎΣ\noop 
@@ -116,7 +124,7 @@ TEST 11: The final sigma rule
 ὈΔΥΣΣΕΎΣ
 ============================================================
 ============================================================
-TEST 12: Cyrillic
+TEST 13: Cyrillic
 ============================================================
 доклады академии наук
 ДОКЛАДЫ АКАДЕМИИ НАУК
@@ -124,13 +132,13 @@ TEST 12: Cyrillic
 Доклады Академии наук
 ============================================================
 ============================================================
-TEST 13: German-alternative
+TEST 14: German-alternative
 ============================================================
 FUSSBALL
 FUẞBALL
 ============================================================
 ============================================================
-TEST 14: Greek
+TEST 15: Greek
 ============================================================
 ΆΔΙΚΟΣ, ΚΕΊΜΕΝΟ, ΊΡΙΔΑ
 ΑΔΙΚΟΣ, ΚΕΙΜΕΝΟ, ΙΡΙΔΑ
@@ -170,7 +178,7 @@ TEST 14: Greek
 Ὀδυσσεύς
 ============================================================
 ============================================================
-TEST 15: Turkish/Azeri
+TEST 16: Turkish/Azeri
 ============================================================
 ragıp hul^^fbsi ^^f6zdem
 ragip hul^^fbsi̇ ^^f6zdem
@@ -182,7 +190,7 @@ Ip hul^^fbsi ^^f6zdem
 Ip hul^^fbsi ^^f6zdem
 ============================================================
 ============================================================
-TEST 16: Lithuanian
+TEST 17: Lithuanian
 ============================================================
 i̇̀i̇́i̇̃i̇̀i̇́i̇̃j̇̀j̇́j̇̃į̇̀į̇́į̇̃
 ^^ec^^edĩìíĩj̀j́j̃į̀į́į̃
@@ -194,7 +202,7 @@ Ìi̇̀i̇̃i̇̀i̇́i̇̃j̇̀j̇́j̇̃į̇̀į̇́į̇̃
 İ̀i̇̀i̇̃i̇̀i̇́i̇̃j̇̀j̇́j̇̃į̇̀į̇́į̇̃
 ============================================================
 ============================================================
-TEST 17: Dutch
+TEST 18: Dutch
 ============================================================
 ijsselmeer
 ijsselmeer
@@ -210,13 +218,13 @@ Im
 Im
 ============================================================
 ============================================================
-TEST 18: Titlecase exceptions
+TEST 19: Titlecase exceptions
 ============================================================
 Ssoo
 Ç…!
 ============================================================
 ============================================================
-TEST 19: Case changing braced arguments
+TEST 20: Case changing braced arguments
 ============================================================
 foo \emph {BAR} {baz}
 FOO \emph {BAR} {BAZ}
@@ -228,7 +236,7 @@ FOO \emph {BAR} {BAZ}
 \emph {BAR} {BAZ}
 ============================================================
 ============================================================
-TEST 20: Expanding content
+TEST 21: Expanding content
 ============================================================
 some text hello
 SOME TEXT HELLO
@@ -256,7 +264,7 @@ Some text \cs_tmp:w
 \cs_tmp:w  Sometext
 ============================================================
 ============================================================
-TEST 21: Math-mode escape
+TEST 22: Math-mode escape
 ============================================================
 some text $y = mx + c$
 SOME TEXT $y = mx + c$
@@ -272,7 +280,7 @@ Opps not close token in $y = mx + c
 Opps not close token in $y = mx + c
 ============================================================
 ============================================================
-TEST 22: Nesting
+TEST 23: Nesting
 ============================================================
 HELLO
 hello
@@ -280,7 +288,7 @@ FUSSBALL
 ὈΔΥΣΣΕΎΣ
 ============================================================
 ============================================================
-TEST 23: Letter-like commands
+TEST 24: Letter-like commands
 ============================================================
 \aa \aa \J \ae \dh \ss \l \o 
 \AA \AA \J \AE \DH \SS \L \O 
@@ -288,7 +296,7 @@ TEST 23: Letter-like commands
 \AA \aa \J \ae \dh \ss \l \O 
 ============================================================
 ============================================================
-TEST 24: Accents
+TEST 25: Accents
 ============================================================
 \"{a}\u {e}\H {i}\v {o}\.{u}
 \"{A}\u {E}\H {I}\v {O}\.{U}
@@ -296,7 +304,7 @@ TEST 24: Accents
 \"{A}\u {e}\H {i}\v {o}\.{u}
 ============================================================
 ============================================================
-TEST 25: Active chars
+TEST 26: Active chars
 ============================================================
 "`lo"=rem"'
 "`LO"=REM"'
@@ -304,7 +312,7 @@ TEST 25: Active chars
 "`Lo"=rem"'
 ============================================================
 ============================================================
-TEST 26: Case changing exclusions
+TEST 27: Case changing exclusions
 ============================================================
 Variant \tl_show:x already defined; not changing it on line ...
 > foo\NoCaseChange {BAR}.





More information about the latex3-commits mailing list.