From 0e42f6c0fa10b65d97dfafc9edea02b22a409811 Mon Sep 17 00:00:00 2001 From: Joseph Wright Date: Mon, 14 Jun 2021 16:58:40 +0100 Subject: [PATCH] Avoid case changing high chars in (u)pTeX (issue #939) --- 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 ab08609e1f..d8c369158e 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 74781a45b5..4516a4579a 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 0113899d43..1c325329e5 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 Dž! ============================================================ ============================================================ -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 a454496253..a62765fc1c 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 f9599f5c3d..3b52ceee88 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 962bb26239..942ce0422f 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 75f033e6e8..dc5a67c78a 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 Dž! ============================================================ ============================================================ -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 0113899d43..1c325329e5 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 Dž! ============================================================ ============================================================ -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}.