[latex3-commits] [latex3/latex3] main: Treat "titlecase" and "titlecase_first" as equivalent (83d77593b)
github at latex-project.org
github at latex-project.org
Fri Oct 13 14:57:35 CEST 2023
Repository : https://github.com/latex3/latex3
On branch : main
Link : https://github.com/latex3/latex3/commit/83d77593bd4ed061be69b7c495a71878366f27e1
>---------------------------------------------------------------
commit 83d77593bd4ed061be69b7c495a71878366f27e1
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date: Thu Jul 6 23:23:25 2023 +0100
Treat "titlecase" and "titlecase_first" as equivalent
No doc changes at this stage as this is a 'stepping stone'
commit: further changes are anticipated.
>---------------------------------------------------------------
83d77593bd4ed061be69b7c495a71878366f27e1
l3kernel/l3text-case.dtx | 56 ++++++-------------------------
l3kernel/testfiles/m3text002.luatex.tlg | 58 ++++++++++++++++-----------------
l3kernel/testfiles/m3text002.ptex.tlg | 56 +++++++++++++++----------------
l3kernel/testfiles/m3text002.tlg | 58 ++++++++++++++++-----------------
l3kernel/testfiles/m3text002.uptex.tlg | 50 ++++++++++++++--------------
l3kernel/testfiles/m3text002.xetex.tlg | 58 ++++++++++++++++-----------------
6 files changed, 150 insertions(+), 186 deletions(-)
diff --git a/l3kernel/l3text-case.dtx b/l3kernel/l3text-case.dtx
index 0e20a797f..d4892a22e 100644
--- a/l3kernel/l3text-case.dtx
+++ b/l3kernel/l3text-case.dtx
@@ -97,7 +97,7 @@
\cs_new:Npn \text_titlecase:n #1
{ \@@_change_case:nnn { title } { } {#1} }
\cs_new:Npn \text_titlecase_first:n #1
- { \@@_change_case:nnn { titleonly } { } {#1} }
+ { \@@_change_case:nnn { title } { } {#1} }
\cs_new:Npn \text_lowercase:nn #1#2
{ \@@_change_case:nnn { lower } {#1} {#2} }
\cs_new:Npn \text_uppercase:nn #1#2
@@ -105,7 +105,7 @@
\cs_new:Npn \text_titlecase:nn #1#2
{ \@@_change_case:nnn { title } {#1} {#2} }
\cs_new:Npn \text_titlecase_first:nn #1#2
- { \@@_change_case:nnn { titleonly } {#1} {#2} }
+ { \@@_change_case:nnn { title } {#1} {#2} }
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -159,40 +159,32 @@
% {
% \@@_change_case_switch_lower:nnNnnnn ,
% \@@_change_case_switch_upper:nnNnnnn ,
-% \@@_change_case_switch_title:nnNnnnn ,
-% \@@_change_case_switch_titleonly:nnNnnnn
+% \@@_change_case_switch_title:nnNnnnn
% }
% \begin{macro}[EXP]
% {
% \@@_change_case_letterlike_lower:nnN ,
% \@@_change_case_letterlike_upper:nnN ,
-% \@@_change_case_letterlike_title:nnN ,
-% \@@_change_case_letterlike_titleonly:nnN
+% \@@_change_case_letterlike_title:nnN
% }
% \begin{macro}[EXP]{\@@_change_case_letterlike:nnnnN}
% \begin{macro}[EXP]
% {
% \@@_change_case_custom_lower:nnn ,
% \@@_change_case_custom_title:nnn ,
-% \@@_change_case_custom_upper:nnn ,
-% \@@_change_case_custom_titleonly:nnn
+% \@@_change_case_custom_upper:nnn
% }
% \begin{macro}[EXP]{\@@_change_case_custom:nnn}
% \begin{macro}[EXP]
% {
% \@@_change_case_codepoint_lower:nnn ,
% \@@_change_case_codepoint_upper:nnn ,
-% \@@_change_case_codepoint_title:nnn ,
-% \@@_change_case_codepoint_titleonly:nnn
+% \@@_change_case_codepoint_title:nnn
% }
% \begin{macro}[EXP]{\@@_change_case_lower_sigma:nnnn}
% \begin{macro}[EXP]{\@@_change_case_lower_sigma:nnnw}
% \begin{macro}[EXP]{\@@_change_case_lower_sigma:nnnN}
-% \begin{macro}[EXP]
-% {
-% \@@_change_case_codepoint_title:nn ,
-% \@@_change_case_codepoint_titleonly:nn
-% }
+% \begin{macro}[EXP]{\@@_change_case_codepoint_title:nn}
% \begin{macro}[EXP]{\@@_change_case_codepoint_title:nnnn}
% \begin{macro}[EXP]
% {\@@_change_case_codepoint:nnnn, \@@_change_case_codepoint_aux:nnnn}
@@ -205,10 +197,9 @@
% }
% \begin{macro}[EXP]
% {
-% \@@_change_case_next_lower:nn ,
-% \@@_change_case_next_upper:nn ,
-% \@@_change_case_next_title:nn ,
-% \@@_change_case_next_titleonly:nn ,
+% \@@_change_case_next_lower:nn ,
+% \@@_change_case_next_upper:nn ,
+% \@@_change_case_next_title:nn ,
% \@@_change_case_next_end:nn
% }
% As for the expansion code, the business end of case changing is the
@@ -330,18 +321,6 @@
\cs_new_eq:NN \@@_change_case_group_upper:nnn
\@@_change_case_group_lower:nnn
\cs_new:Npn \@@_change_case_group_title:nnn #1#2#3
- {
- \@@_change_case_store:o
- {
- \exp_after:wN
- {
- \exp:w
- \@@_change_case_auxii:nnn {#3} {#1} {#2}
- }
- }
- \@@_change_case_loop:nnw { lower } {#2}
- }
-\cs_new:Npn \@@_change_case_group_titleonly:nnn #1#2#3
{
\@@_change_case_store:o
{
@@ -534,11 +513,6 @@
\@@_change_case_loop:nnw {#1} {#2}
}
\cs_new:Npn \@@_change_case_switch_title:nnNnnnn #1#2#3#4#5#6#7
- {
- \@@_change_case_store:n {#7}
- \@@_change_case_loop:nnw {#1} {#2}
- }
-\cs_new:Npn \@@_change_case_switch_titleonly:nnNnnnn #1#2#3#4#5#6#7
{
\@@_change_case_store:n {#7}
\@@_change_case_break:w
@@ -555,8 +529,6 @@
\cs_new_eq:NN \@@_change_case_letterlike_upper:nnN
\@@_change_case_letterlike_lower:nnN
\cs_new:Npn \@@_change_case_letterlike_title:nnN #1#2#3
- { \@@_change_case_letterlike:nnnnN { upper } { lower } {#1} {#2} #3 }
-\cs_new:Npn \@@_change_case_letterlike_titleonly:nnN #1#2#3
{ \@@_change_case_letterlike:nnnnN { upper } { end } {#1} {#2} #3 }
\cs_new:Npn \@@_change_case_letterlike:nnnnN #1#2#3#4#5
{
@@ -596,8 +568,6 @@
{ \use:c { @@_change_case_codepoint_ #1 :nnn } {#1} {#2} {#3} }
}
}
-\cs_new_eq:NN \@@_change_case_custom_titleonly:nnn
- \@@_change_case_custom_title:nnn
\cs_new:Npn \@@_change_case_custom:nnnnn #1#2#3#4#5
{
\tl_if_exist:cTF { l_@@_ #1 case _ \tl_to_str:n {#3} _ #2 _tl }
@@ -697,11 +667,7 @@
{ \use:c { @@_change_case_codepoint_ #1 :nn } }
{#2} {#3}
}
-\cs_new_eq:NN \@@_change_case_codepoint_titleonly:nnn
- \@@_change_case_codepoint_title:nnn
\cs_new:Npn \@@_change_case_codepoint_title:nn #1#2
- { \@@_change_case_codepoint_title:nnnn { title } { lower } {#1} {#2} }
-\cs_new:Npn \@@_change_case_codepoint_titleonly:nn #1#2
{ \@@_change_case_codepoint_title:nnnn { title } { end } {#1} {#2} }
\cs_new:Npn \@@_change_case_codepoint_title:nnnn #1#2#3#4
{
@@ -805,8 +771,6 @@
\@@_change_case_next_lower:nn
\cs_new_eq:NN \@@_change_case_next_title:nn
\@@_change_case_next_lower:nn
-\cs_new_eq:NN \@@_change_case_next_titleonly:nn
- \@@_change_case_next_lower:nn
\cs_new:Npn \@@_change_case_next_end:nn #1#2
{ \@@_change_case_break:w }
% \end{macrocode}
diff --git a/l3kernel/testfiles/m3text002.luatex.tlg b/l3kernel/testfiles/m3text002.luatex.tlg
index aa7214dca..078a69149 100644
--- a/l3kernel/testfiles/m3text002.luatex.tlg
+++ b/l3kernel/testfiles/m3text002.luatex.tlg
@@ -30,15 +30,15 @@ TEST 4: Titlecase basics
============================================================
Hello world
Hello world
-Hello world
HELLO WORLD
-" Hello world"
+HELLO WORLD
" Hello world"
" Hello world"
" HELLO WORLD"
+" HELLO WORLD"
{H}ello world
{H}ello world
-{H}ello world
+{H}ELLO WORLD
{H}ELLO WORLD
{}hello world
{}hello world
@@ -58,21 +58,21 @@ TEST 5: Titlecase skipping chars
============================================================
TEST 6: Titlecase first
============================================================
-`Hic sunt leones'
`Hic SUNT leones'
-`Hic sunt leones'
+`Hic SUNT leones'
+`HIC SUNT leones'
`HIC SUNT leones'
-E pluribus unum
+E PLURIBUS UNUM
E PLURIBUS UNUM
============================================================
============================================================
TEST 7: Titlecase control
============================================================
-`hic sunt leones'
`hic SUNT leones'
-`hic sunt leones'
+`hic SUNT leones'
`HIC SUNT leones'
-E pluribus unum
+`HIC SUNT leones'
+E PLURIBUS UNUM
E PLURIBUS UNUM
============================================================
============================================================
@@ -92,7 +92,7 @@ TEST 9: (u)pTeX-based tests
============================================================
abc^^e8日本語
ABC^^c8日本語
-Abc^^e8日本語
+ABC^^c8日本語
ABC^^c8日本語
一级标题
一级标题
@@ -104,7 +104,7 @@ 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ὭдαƐ
============================================================
============================================================
@@ -120,11 +120,11 @@ TEST 12: The final sigma rule
============================================================
ὀδυσσεύς (ὀδυσσεύς) ὀδυσσεύς, ὀδυσσεύς{} ὀδυσσεύς\noop
ὈΔΥΣΣΕΎΣ (ὈΔΥΣΣΕΎΣ) ὈΔΥΣΣΕΎΣ, ὈΔΥΣΣΕΎΣ{} ὈΔΥΣΣΕΎΣ\noop
-Ὀδυσσεύς (ὀδυσσεύς) ὀδυσσεύς, ὀδυσσεύς{} ὀδυσσεύς\noop
+ὈΔΥΣΣΕΎΣ (ὈΔΥΣΣΕΎΣ) ὈΔΥΣΣΕΎΣ, ὈΔΥΣΣΕΎΣ{} ὈΔΥΣΣΕΎΣ\noop
ὈΔΥΣΣΕΎΣ (ὈΔΥΣΣΕΎΣ) ὈΔΥΣΣΕΎΣ, ὈΔΥΣΣΕΎΣ{} ὈΔΥΣΣΕΎΣ\noop
ὀδυσσεύς
ὈΔΥΣΣΕΎΣ
-Ὀδυσσεύς
+ὈΔΥΣΣΕΎΣ
ὈΔΥΣΣΕΎΣ
============================================================
============================================================
@@ -132,7 +132,7 @@ TEST 13: Cyrillic
============================================================
доклады академии наук
ДОКЛАДЫ АКАДЕМИИ НАУК
-Доклады академии наук
+Доклады Академии наук
Доклады Академии наук
============================================================
============================================================
@@ -193,8 +193,8 @@ TEST 17: Greek
ΤΟ ΕΝΑ Ή ΤΟ ΑΛΛΟ.
ΡΩΜΈΙΚΑ
ΡΩΜΕΪΚΑ
-Ὀδυσσεύς
-Ὀδυσσεύς
+ὈΔΥΣΣΕΎΣ
+ὈΔΥΣΣΕΎΣ
ΉΙ
ῌ
ΗΙ
@@ -243,10 +243,10 @@ ragıp hul^^fbsi ^^f6zdem
ragip hul^^fbsi̇ ^^f6zdem
RAGIP HUL^^dbSİ ^^d6ZDEM
RAGIP HUL^^dbSI ^^d6ZDEM
-Ragıp hul^^fbsi ^^f6zdem
-Ragıp hul^^fbsi ^^f6zdem
-Ip hul^^fbsi ^^f6zdem
-Ip hul^^fbsi ^^f6zdem
+Ragıp Hul^^fbsi ^^d6zdem
+Ragıp Hul^^fbsi ^^d6zdem
+Ip Hul^^fbsi ^^d6zdem
+Ip Hul^^fbsi ^^d6zdem
============================================================
============================================================
TEST 19: Lithuanian
@@ -255,9 +255,9 @@ i̇̀i̇́i̇̃i̇̀i̇́i̇̃j̇̀j̇́j̇̃į̇̀į̇́į̇̃
^^ec^^edĩìíĩj̀j́j̃į̀į́į̃
ÌÌĨÌÍĨJ̀J́J̃Į̀Į́Į̃
İ̀İ̀İ̃İ̀İ́İ̃J̇̀J̇́J̇̃Į̇̀Į̇́Į̇̃
-^^cci̇́i̇̃i̇̀i̇́i̇̃j̇̀j̇́j̇̃į̇̀į̇́į̇̃
+^^cc^^cdĨÌÍĨJ̀J́J̃Į̀Į́Į̃
Ìi̇̀i̇̃i̇̀i̇́i̇̃j̇̀j̇́j̇̃į̇̀į̇́į̇̃
-^^cc^^edĩìíĩj̀j́j̃į̀į́į̃
+^^cc^^cdĨÌÍĨJ̀J́J̃Į̀Į́Į̃
İ̀i̇̀i̇̃i̇̀i̇́i̇̃j̇̀j̇́j̇̃į̇̀į̇́į̇̃
============================================================
============================================================
@@ -280,7 +280,7 @@ Ijsselmeer
IJsselmeer
Ijsselmeer
IJsselmeer
-Ijsselmeer
+IJsselmeer
Im
Im
============================================================
@@ -295,11 +295,11 @@ TEST 23: Case changing braced arguments
============================================================
foo \emph {BAR} {baz}
FOO \emph {BAR} {BAZ}
-Foo \emph {BAR} {baz}
+FOO \emph {BAR} {BAZ}
FOO \emph {BAR} {BAZ}
\emph {BAR} {baz}
\emph {BAR} {BAZ}
-\emph {BAR} {Baz}
+\emph {BAR} {BAZ}
\emph {BAR} {BAZ}
============================================================
============================================================
@@ -307,7 +307,7 @@ TEST 24: Expanding content
============================================================
some text hello
SOME TEXT HELLO
-Some text hello
+Some text Hello
Some text Hello
hello sometext
HELLO SOMETEXT
@@ -315,7 +315,7 @@ Hello sometext
Hello sometext
some text hello
SOME TEXT HELLO
-Some text hello
+Some text Hello
Some text Hello
hello sometext
HELLO SOMETEXT
@@ -359,7 +359,7 @@ TEST 27: Letter-like commands
============================================================
\aa \aa \ae \dh \ss \l \o
\AA \AA \AE \DH \SS \L \O
-\AA \aa \ae \dh \ss \l \o
+\AA \aa \ae \dh \ss \l \O
\AA \aa \ae \dh \ss \l \O
============================================================
============================================================
@@ -397,7 +397,7 @@ Title
Title
WORDS lower
words UPPER
-Words UPPER
+Words \text_case_switch:nnnn {normal}{lower}{UPPER}{Title}
Words \text_case_switch:nnnn {normal}{lower}{UPPER}{Title}
============================================================
============================================================
diff --git a/l3kernel/testfiles/m3text002.ptex.tlg b/l3kernel/testfiles/m3text002.ptex.tlg
index 74523db50..61a55ce43 100644
--- a/l3kernel/testfiles/m3text002.ptex.tlg
+++ b/l3kernel/testfiles/m3text002.ptex.tlg
@@ -30,15 +30,15 @@ TEST 4: Titlecase basics
============================================================
Hello world
Hello world
-Hello world
HELLO WORLD
-" Hello world"
+HELLO WORLD
" Hello world"
" Hello world"
" HELLO WORLD"
+" HELLO WORLD"
{H}ello world
{H}ello world
-{H}ello world
+{H}ELLO WORLD
{H}ELLO WORLD
{}hello world
{}hello world
@@ -58,21 +58,21 @@ TEST 5: Titlecase skipping chars
============================================================
TEST 6: Titlecase first
============================================================
-`Hic sunt leones'
`Hic SUNT leones'
-`Hic sunt leones'
+`Hic SUNT leones'
`HIC SUNT leones'
-E pluribus unum
+`HIC SUNT leones'
+E PLURIBUS UNUM
E PLURIBUS UNUM
============================================================
============================================================
TEST 7: Titlecase control
============================================================
-`hic sunt leones'
`hic SUNT leones'
-`hic sunt leones'
+`hic SUNT leones'
+`HIC SUNT leones'
`HIC SUNT leones'
-E pluribus unum
+E PLURIBUS UNUM
E PLURIBUS UNUM
============================================================
============================================================
@@ -92,7 +92,7 @@ TEST 9: (u)pTeX-based tests
============================================================
abc^^c3^^a8日本語
ABC^^c3^^88日本語
-Abc^^c3^^a8日本語
+ABC^^c3^^88日本語
ABC^^c3^^88日本語
一^^e7^^ba^^a7^^e6^^a0^^87^^e9^^a2^^98
一^^e7^^ba^^a7^^e6^^a0^^87^^e9^^a2^^98
@@ -104,7 +104,7 @@ TEST 10: Unicode case changing
============================================================
^^c3^^a5^^c3^^a9^^c3^^ae^^c3^^b8^^e1^^bd^^a5дα^^c9^^9b
^^c3^^85^^c3^^89^^c3^^8e^^c3^^98^^e1^^bd^^adдα^^c6^^90
-^^c3^^85^^c3^^a9^^c3^^ae^^c3^^b8^^e1^^bd^^a5дα^^c9^^9b
+^^c3^^85^^c3^^a9^^c3^^ae^^c3^^b8^^e1^^bd^^adдα^^c6^^90
^^c3^^85^^c3^^a9^^c3^^ae^^c3^^b8^^e1^^bd^^adдα^^c6^^90
============================================================
============================================================
@@ -120,11 +120,11 @@ TEST 12: The final sigma rule
============================================================
^^e1^^bd^^80ΔΥΣΣΕ^^cf^^8dΣ (^^e1^^bd^^80ΔΥΣΣΕ^^cf^^8dΣ) ^^e1^^bd^^80ΔΥΣΣΕ^^cf^^8dΣ, ^^e1^^bd^^80ΔΥΣΣΕ^^cf^^8dΣ{} ^^e1^^bd^^80ΔΥΣΣΕ^^cf^^8dΣ\noop
^^e1^^bd^^88ΔΥΣΣΕ^^ce^^8eΣ (^^e1^^bd^^88ΔΥΣΣΕ^^ce^^8eΣ) ^^e1^^bd^^88ΔΥΣΣΕ^^ce^^8eΣ, ^^e1^^bd^^88ΔΥΣΣΕ^^ce^^8eΣ{} ^^e1^^bd^^88ΔΥΣΣΕ^^ce^^8eΣ\noop
-^^e1^^bd^^88ΔΥΣΣΕ^^cf^^8dΣ (^^e1^^bd^^80ΔΥΣΣΕ^^cf^^8dΣ) ^^e1^^bd^^80ΔΥΣΣΕ^^cf^^8dΣ, ^^e1^^bd^^80ΔΥΣΣΕ^^cf^^8dΣ{} ^^e1^^bd^^80ΔΥΣΣΕ^^cf^^8dΣ\noop
+^^e1^^bd^^88ΔΥΣΣΕ^^ce^^8eΣ (^^e1^^bd^^88ΔΥΣΣΕ^^ce^^8eΣ) ^^e1^^bd^^88ΔΥΣΣΕ^^ce^^8eΣ, ^^e1^^bd^^88ΔΥΣΣΕ^^ce^^8eΣ{} ^^e1^^bd^^88ΔΥΣΣΕ^^ce^^8eΣ\noop
^^e1^^bd^^88ΔΥΣΣΕ^^ce^^8eΣ (^^e1^^bd^^88ΔΥΣΣΕ^^ce^^8eΣ) ^^e1^^bd^^88ΔΥΣΣΕ^^ce^^8eΣ, ^^e1^^bd^^88ΔΥΣΣΕ^^ce^^8eΣ{} ^^e1^^bd^^88ΔΥΣΣΕ^^ce^^8eΣ\noop
^^e1^^bd^^80ΔΥΣΣΕ^^cf^^8dΣ
^^e1^^bd^^88ΔΥΣΣΕ^^ce^^8eΣ
-^^e1^^bd^^88ΔΥΣΣΕ^^cf^^8dΣ
+^^e1^^bd^^88ΔΥΣΣΕ^^ce^^8eΣ
^^e1^^bd^^88ΔΥΣΣΕ^^ce^^8eΣ
============================================================
============================================================
@@ -193,8 +193,8 @@ TEST 17: Greek
Το ^^ce^^95να ^^ce^^89 το ^^ce^^91λλο.
ρωμ^^ce^^88ικα
ρωμ^^ce^^95ικα
-^^e1^^bd^^88ΔΥΣΣΕ^^cf^^8dΣ
-^^e1^^bd^^88ΔΥΣΣΕ^^cf^^8dΣ
+^^e1^^bd^^88ΔΥΣΣΕ^^ce^^8eΣ
+^^e1^^bd^^88ΔΥΣΣΕ^^ce^^8eΣ
^^ce^^89^^ce^^99
^^e1^^bf^^8c
^^ce^^97^^ce^^99
@@ -243,10 +243,10 @@ rag^^c4^^b1p hul^^c3^^bbsi ^^c3^^b6zdem
ragip hul^^c3^^bbsi^^cc^^87 ^^c3^^b6zdem
RAGIP HUL^^c3^^9bS^^c4^^b0 ^^c3^^96ZDEM
RAGIP HUL^^c3^^9bSI ^^c3^^96ZDEM
-Rag^^c4^^b1p hul^^c3^^bbsi ^^c3^^b6zdem
-Rag^^c4^^b1p hul^^c3^^bbsi ^^c3^^b6zdem
-Ip hul^^c3^^bbsi ^^c3^^b6zdem
-Ip hul^^c3^^bbsi ^^c3^^b6zdem
+Rag^^c4^^b1p Hul^^c3^^bbsi ^^c3^^96zdem
+Rag^^c4^^b1p Hul^^c3^^bbsi ^^c3^^96zdem
+Ip Hul^^c3^^bbsi ^^c3^^96zdem
+Ip Hul^^c3^^bbsi ^^c3^^96zdem
============================================================
============================================================
TEST 19: Lithuanian
@@ -255,9 +255,9 @@ i^^cc^^87^^cc^^80i^^cc^^87^^cc^^81i^^cc^^87^^cc^^83i^^cc^^87^^cc^^80i^^cc^^87^^c
^^c3^^ac^^c3^^ad^^c4^^a9i^^cc^^80i^^cc^^81i^^cc^^83j^^cc^^80j^^cc^^81j^^cc^^83^^c4^^af^^cc^^80^^c4^^af^^cc^^81^^c4^^af^^cc^^83
I^^cc^^80I^^cc^^80I^^cc^^83I^^cc^^80I^^cc^^81I^^cc^^83J^^cc^^80J^^cc^^81J^^cc^^83^^c4^^ae^^cc^^80^^c4^^ae^^cc^^81^^c4^^ae^^cc^^83
I^^cc^^87^^cc^^80I^^cc^^87^^cc^^80I^^cc^^87^^cc^^83I^^cc^^87^^cc^^80I^^cc^^87^^cc^^81I^^cc^^87^^cc^^83J^^cc^^87^^cc^^80J^^cc^^87^^cc^^81J^^cc^^87^^cc^^83^^c4^^ae^^cc^^87^^cc^^80^^c4^^ae^^cc^^87^^cc^^81^^c4^^ae^^cc^^87^^cc^^83
-^^c3^^8ci^^cc^^87^^cc^^81i^^cc^^87^^cc^^83i^^cc^^87^^cc^^80i^^cc^^87^^cc^^81i^^cc^^87^^cc^^83j^^cc^^87^^cc^^80j^^cc^^87^^cc^^81j^^cc^^87^^cc^^83^^c4^^af^^cc^^87^^cc^^80^^c4^^af^^cc^^87^^cc^^81^^c4^^af^^cc^^87^^cc^^83
+^^c3^^8c^^c3^^8d^^c4^^a8I^^cc^^80I^^cc^^81I^^cc^^83J^^cc^^80J^^cc^^81J^^cc^^83^^c4^^ae^^cc^^80^^c4^^ae^^cc^^81^^c4^^ae^^cc^^83
I^^cc^^80i^^cc^^87^^cc^^80i^^cc^^87^^cc^^83i^^cc^^87^^cc^^80i^^cc^^87^^cc^^81i^^cc^^87^^cc^^83j^^cc^^87^^cc^^80j^^cc^^87^^cc^^81j^^cc^^87^^cc^^83^^c4^^af^^cc^^87^^cc^^80^^c4^^af^^cc^^87^^cc^^81^^c4^^af^^cc^^87^^cc^^83
-^^c3^^8c^^c3^^ad^^c4^^a9i^^cc^^80i^^cc^^81i^^cc^^83j^^cc^^80j^^cc^^81j^^cc^^83^^c4^^af^^cc^^80^^c4^^af^^cc^^81^^c4^^af^^cc^^83
+^^c3^^8c^^c3^^8d^^c4^^a8I^^cc^^80I^^cc^^81I^^cc^^83J^^cc^^80J^^cc^^81J^^cc^^83^^c4^^ae^^cc^^80^^c4^^ae^^cc^^81^^c4^^ae^^cc^^83
I^^cc^^87^^cc^^80i^^cc^^87^^cc^^80i^^cc^^87^^cc^^83i^^cc^^87^^cc^^80i^^cc^^87^^cc^^81i^^cc^^87^^cc^^83j^^cc^^87^^cc^^80j^^cc^^87^^cc^^81j^^cc^^87^^cc^^83^^c4^^af^^cc^^87^^cc^^80^^c4^^af^^cc^^87^^cc^^81^^c4^^af^^cc^^87^^cc^^83
============================================================
============================================================
@@ -280,7 +280,7 @@ Ijsselmeer
IJsselmeer
Ijsselmeer
IJsselmeer
-Ijsselmeer
+IJsselmeer
Im
Im
============================================================
@@ -295,11 +295,11 @@ TEST 23: Case changing braced arguments
============================================================
foo \emph {BAR} {baz}
FOO \emph {BAR} {BAZ}
-Foo \emph {BAR} {baz}
+FOO \emph {BAR} {BAZ}
FOO \emph {BAR} {BAZ}
\emph {BAR} {baz}
\emph {BAR} {BAZ}
-\emph {BAR} {Baz}
+\emph {BAR} {BAZ}
\emph {BAR} {BAZ}
============================================================
============================================================
@@ -307,7 +307,7 @@ TEST 24: Expanding content
============================================================
some text hello
SOME TEXT HELLO
-Some text hello
+Some text Hello
Some text Hello
hello sometext
HELLO SOMETEXT
@@ -315,7 +315,7 @@ Hello sometext
Hello sometext
some text hello
SOME TEXT HELLO
-Some text hello
+Some text Hello
Some text Hello
hello sometext
HELLO SOMETEXT
@@ -359,7 +359,7 @@ TEST 27: Letter-like commands
============================================================
\aa \aa \ae \dh \ss \l \o
\AA \AA \AE \DH \SS \L \O
-\AA \aa \ae \dh \ss \l \o
+\AA \aa \ae \dh \ss \l \O
\AA \aa \ae \dh \ss \l \O
============================================================
============================================================
@@ -397,7 +397,7 @@ Title
Title
WORDS lower
words UPPER
-Words UPPER
+Words \text_case_switch:nnnn {normal}{lower}{UPPER}{Title}
Words \text_case_switch:nnnn {normal}{lower}{UPPER}{Title}
============================================================
============================================================
diff --git a/l3kernel/testfiles/m3text002.tlg b/l3kernel/testfiles/m3text002.tlg
index ef2c3b793..a5e190418 100644
--- a/l3kernel/testfiles/m3text002.tlg
+++ b/l3kernel/testfiles/m3text002.tlg
@@ -30,15 +30,15 @@ TEST 4: Titlecase basics
============================================================
Hello world
Hello world
-Hello world
HELLO WORLD
-" Hello world"
+HELLO WORLD
" Hello world"
" Hello world"
" HELLO WORLD"
+" HELLO WORLD"
{H}ello world
{H}ello world
-{H}ello world
+{H}ELLO WORLD
{H}ELLO WORLD
{}hello world
{}hello world
@@ -58,21 +58,21 @@ TEST 5: Titlecase skipping chars
============================================================
TEST 6: Titlecase first
============================================================
-`Hic sunt leones'
`Hic SUNT leones'
-`Hic sunt leones'
+`Hic SUNT leones'
+`HIC SUNT leones'
`HIC SUNT leones'
-E pluribus unum
+E PLURIBUS UNUM
E PLURIBUS UNUM
============================================================
============================================================
TEST 7: Titlecase control
============================================================
-`hic sunt leones'
`hic SUNT leones'
-`hic sunt leones'
+`hic SUNT leones'
`HIC SUNT leones'
-E pluribus unum
+`HIC SUNT leones'
+E PLURIBUS UNUM
E PLURIBUS UNUM
============================================================
============================================================
@@ -92,7 +92,7 @@ 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
ABC^^c3^^88^^e6^^97^^a5^^e6^^9c^^ac^^e8^^aa^^9e
^^e4^^b8^^80^^e7^^ba^^a7^^e6^^a0^^87^^e9^^a2^^98
^^e4^^b8^^80^^e7^^ba^^a7^^e6^^a0^^87^^e9^^a2^^98
@@ -104,7 +104,7 @@ TEST 10: Unicode case changing
============================================================
^^c3^^a5^^c3^^a9^^c3^^ae^^c3^^b8^^e1^^bd^^a5^^d0^^b4^^ce^^b1^^c9^^9b
^^c3^^85^^c3^^89^^c3^^8e^^c3^^98^^e1^^bd^^ad^^d0^^94^^ce^^91^^c6^^90
-^^c3^^85^^c3^^a9^^c3^^ae^^c3^^b8^^e1^^bd^^a5^^d0^^b4^^ce^^b1^^c9^^9b
+^^c3^^85^^c3^^a9^^c3^^ae^^c3^^b8^^e1^^bd^^ad^^d0^^b4^^ce^^b1^^c6^^90
^^c3^^85^^c3^^a9^^c3^^ae^^c3^^b8^^e1^^bd^^ad^^d0^^b4^^ce^^b1^^c6^^90
============================================================
============================================================
@@ -120,11 +120,11 @@ 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
-^^e1^^bd^^88^^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
^^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
^^e1^^bd^^80^^ce^^b4^^cf^^85^^cf^^83^^cf^^83^^ce^^b5^^cf^^8d^^cf^^82
^^e1^^bd^^88^^ce^^94^^ce^^a5^^ce^^a3^^ce^^a3^^ce^^95^^ce^^8e^^ce^^a3
-^^e1^^bd^^88^^ce^^b4^^cf^^85^^cf^^83^^cf^^83^^ce^^b5^^cf^^8d^^cf^^82
+^^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
============================================================
============================================================
@@ -132,7 +132,7 @@ 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
-^^d0^^94^^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^^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
^^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
============================================================
============================================================
@@ -193,8 +193,8 @@ TEST 17: Greek
^^ce^^a4^^ce^^9f ^^ce^^95^^ce^^9d^^ce^^91 ^^ce^^89 ^^ce^^a4^^ce^^9f ^^ce^^91^^ce^^9b^^ce^^9b^^ce^^9f.
^^ce^^a1^^ce^^a9^^ce^^9c^^ce^^88^^ce^^99^^ce^^9a^^ce^^91
^^ce^^a1^^ce^^a9^^ce^^9c^^ce^^95^^ce^^aa^^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^^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
^^ce^^89^^ce^^99
^^e1^^bf^^8c
^^ce^^97^^ce^^99
@@ -243,10 +243,10 @@ rag^^c4^^b1p hul^^c3^^bbsi ^^c3^^b6zdem
ragip hul^^c3^^bbsi^^cc^^87 ^^c3^^b6zdem
RAGIP HUL^^c3^^9bS^^c4^^b0 ^^c3^^96ZDEM
RAGIP HUL^^c3^^9bSI ^^c3^^96ZDEM
-Rag^^c4^^b1p hul^^c3^^bbsi ^^c3^^b6zdem
-Rag^^c4^^b1p hul^^c3^^bbsi ^^c3^^b6zdem
-Ip hul^^c3^^bbsi ^^c3^^b6zdem
-Ip hul^^c3^^bbsi ^^c3^^b6zdem
+Rag^^c4^^b1p Hul^^c3^^bbsi ^^c3^^96zdem
+Rag^^c4^^b1p Hul^^c3^^bbsi ^^c3^^96zdem
+Ip Hul^^c3^^bbsi ^^c3^^96zdem
+Ip Hul^^c3^^bbsi ^^c3^^96zdem
============================================================
============================================================
TEST 19: Lithuanian
@@ -255,9 +255,9 @@ i^^cc^^87^^cc^^80i^^cc^^87^^cc^^81i^^cc^^87^^cc^^83i^^cc^^87^^cc^^80i^^cc^^87^^c
^^c3^^ac^^c3^^ad^^c4^^a9i^^cc^^80i^^cc^^81i^^cc^^83j^^cc^^80j^^cc^^81j^^cc^^83^^c4^^af^^cc^^80^^c4^^af^^cc^^81^^c4^^af^^cc^^83
I^^cc^^80I^^cc^^80I^^cc^^83I^^cc^^80I^^cc^^81I^^cc^^83J^^cc^^80J^^cc^^81J^^cc^^83^^c4^^ae^^cc^^80^^c4^^ae^^cc^^81^^c4^^ae^^cc^^83
I^^cc^^87^^cc^^80I^^cc^^87^^cc^^80I^^cc^^87^^cc^^83I^^cc^^87^^cc^^80I^^cc^^87^^cc^^81I^^cc^^87^^cc^^83J^^cc^^87^^cc^^80J^^cc^^87^^cc^^81J^^cc^^87^^cc^^83^^c4^^ae^^cc^^87^^cc^^80^^c4^^ae^^cc^^87^^cc^^81^^c4^^ae^^cc^^87^^cc^^83
-^^c3^^8ci^^cc^^87^^cc^^81i^^cc^^87^^cc^^83i^^cc^^87^^cc^^80i^^cc^^87^^cc^^81i^^cc^^87^^cc^^83j^^cc^^87^^cc^^80j^^cc^^87^^cc^^81j^^cc^^87^^cc^^83^^c4^^af^^cc^^87^^cc^^80^^c4^^af^^cc^^87^^cc^^81^^c4^^af^^cc^^87^^cc^^83
+^^c3^^8c^^c3^^8d^^c4^^a8I^^cc^^80I^^cc^^81I^^cc^^83J^^cc^^80J^^cc^^81J^^cc^^83^^c4^^ae^^cc^^80^^c4^^ae^^cc^^81^^c4^^ae^^cc^^83
I^^cc^^80i^^cc^^87^^cc^^80i^^cc^^87^^cc^^83i^^cc^^87^^cc^^80i^^cc^^87^^cc^^81i^^cc^^87^^cc^^83j^^cc^^87^^cc^^80j^^cc^^87^^cc^^81j^^cc^^87^^cc^^83^^c4^^af^^cc^^87^^cc^^80^^c4^^af^^cc^^87^^cc^^81^^c4^^af^^cc^^87^^cc^^83
-^^c3^^8c^^c3^^ad^^c4^^a9i^^cc^^80i^^cc^^81i^^cc^^83j^^cc^^80j^^cc^^81j^^cc^^83^^c4^^af^^cc^^80^^c4^^af^^cc^^81^^c4^^af^^cc^^83
+^^c3^^8c^^c3^^8d^^c4^^a8I^^cc^^80I^^cc^^81I^^cc^^83J^^cc^^80J^^cc^^81J^^cc^^83^^c4^^ae^^cc^^80^^c4^^ae^^cc^^81^^c4^^ae^^cc^^83
I^^cc^^87^^cc^^80i^^cc^^87^^cc^^80i^^cc^^87^^cc^^83i^^cc^^87^^cc^^80i^^cc^^87^^cc^^81i^^cc^^87^^cc^^83j^^cc^^87^^cc^^80j^^cc^^87^^cc^^81j^^cc^^87^^cc^^83^^c4^^af^^cc^^87^^cc^^80^^c4^^af^^cc^^87^^cc^^81^^c4^^af^^cc^^87^^cc^^83
============================================================
============================================================
@@ -280,7 +280,7 @@ Ijsselmeer
IJsselmeer
Ijsselmeer
IJsselmeer
-Ijsselmeer
+IJsselmeer
Im
Im
============================================================
@@ -295,11 +295,11 @@ TEST 23: Case changing braced arguments
============================================================
foo \emph {BAR} {baz}
FOO \emph {BAR} {BAZ}
-Foo \emph {BAR} {baz}
+FOO \emph {BAR} {BAZ}
FOO \emph {BAR} {BAZ}
\emph {BAR} {baz}
\emph {BAR} {BAZ}
-\emph {BAR} {Baz}
+\emph {BAR} {BAZ}
\emph {BAR} {BAZ}
============================================================
============================================================
@@ -307,7 +307,7 @@ TEST 24: Expanding content
============================================================
some text hello
SOME TEXT HELLO
-Some text hello
+Some text Hello
Some text Hello
hello sometext
HELLO SOMETEXT
@@ -315,7 +315,7 @@ Hello sometext
Hello sometext
some text hello
SOME TEXT HELLO
-Some text hello
+Some text Hello
Some text Hello
hello sometext
HELLO SOMETEXT
@@ -359,7 +359,7 @@ TEST 27: Letter-like commands
============================================================
\aa \aa \ae \dh \ss \l \o
\AA \AA \AE \DH \SS \L \O
-\AA \aa \ae \dh \ss \l \o
+\AA \aa \ae \dh \ss \l \O
\AA \aa \ae \dh \ss \l \O
============================================================
============================================================
@@ -397,7 +397,7 @@ Title
Title
WORDS lower
words UPPER
-Words UPPER
+Words \text_case_switch:nnnn {normal}{lower}{UPPER}{Title}
Words \text_case_switch:nnnn {normal}{lower}{UPPER}{Title}
============================================================
============================================================
diff --git a/l3kernel/testfiles/m3text002.uptex.tlg b/l3kernel/testfiles/m3text002.uptex.tlg
index 503668aa5..62f769b7e 100644
--- a/l3kernel/testfiles/m3text002.uptex.tlg
+++ b/l3kernel/testfiles/m3text002.uptex.tlg
@@ -30,15 +30,15 @@ TEST 4: Titlecase basics
============================================================
Hello world
Hello world
-Hello world
HELLO WORLD
-" Hello world"
+HELLO WORLD
" Hello world"
" Hello world"
" HELLO WORLD"
+" HELLO WORLD"
{H}ello world
{H}ello world
-{H}ello world
+{H}ELLO WORLD
{H}ELLO WORLD
{}hello world
{}hello world
@@ -58,21 +58,21 @@ TEST 5: Titlecase skipping chars
============================================================
TEST 6: Titlecase first
============================================================
-`Hic sunt leones'
`Hic SUNT leones'
-`Hic sunt leones'
+`Hic SUNT leones'
+`HIC SUNT leones'
`HIC SUNT leones'
-E pluribus unum
+E PLURIBUS UNUM
E PLURIBUS UNUM
============================================================
============================================================
TEST 7: Titlecase control
============================================================
-`hic sunt leones'
`hic SUNT leones'
-`hic sunt leones'
+`hic SUNT leones'
+`HIC SUNT leones'
`HIC SUNT leones'
-E pluribus unum
+E PLURIBUS UNUM
E PLURIBUS UNUM
============================================================
============================================================
@@ -92,7 +92,7 @@ TEST 9: (u)pTeX-based tests
============================================================
abc^^c3^^a8日本語
ABC^^c3^^88日本語
-Abc^^c3^^a8日本語
+ABC^^c3^^88日本語
ABC^^c3^^88日本語
一级标题
一级标题
@@ -104,7 +104,7 @@ TEST 10: Unicode case changing
============================================================
^^c3^^a5^^c3^^a9^^c3^^ae^^c3^^b8^^e1^^bd^^a5дα^^c9^^9b
^^c3^^85^^c3^^89^^c3^^8e^^c3^^98Ὥ^^d0^^94^^ce^^91^^c6^^90
-^^c3^^85^^c3^^a9^^c3^^ae^^c3^^b8^^e1^^bd^^a5дα^^c9^^9b
+^^c3^^85^^c3^^a9^^c3^^ae^^c3^^b8Ὥдα^^c6^^90
^^c3^^85^^c3^^a9^^c3^^ae^^c3^^b8Ὥдα^^c6^^90
============================================================
============================================================
@@ -120,7 +120,7 @@ TEST 12: The final sigma rule
============================================================
^^e1^^bd^^80^^ce^^b4^^cf^^85^^cf^^82^^cf^^82^^ce^^b5^^cf^^8d^^cf^^82 (^^e1^^bd^^80^^ce^^b4^^cf^^85^^cf^^82^^cf^^82^^ce^^b5^^cf^^8d^^cf^^82) ^^e1^^bd^^80^^ce^^b4^^cf^^85^^cf^^82^^cf^^82^^ce^^b5^^cf^^8d^^cf^^82, ^^e1^^bd^^80^^ce^^b4^^cf^^85^^cf^^82^^cf^^82^^ce^^b5^^cf^^8d^^cf^^82{} ^^e1^^bd^^80^^ce^^b4^^cf^^85^^cf^^82^^cf^^82^^ce^^b5^^cf^^8d^^cf^^82\noop
ὈΔΥΣΣΕΎΣ (ὈΔΥΣΣΕΎΣ) ὈΔΥΣΣΕΎΣ, ὈΔΥΣΣΕΎΣ{} ὈΔΥΣΣΕΎΣ\noop
-ὈΔΥΣΣΕΎΣ (ὈΔΥΣΣΕΎΣ) ὈΔΥΣΣΕΎΣ, ὈΔΥΣΣΕΎΣ{} ^^e1^^bd^^80^^ce^^b4^^cf^^85^^cf^^82^^cf^^82^^ce^^b5^^cf^^8d^^cf^^82\noop
+ὈΔΥΣΣΕΎΣ (ὈΔΥΣΣΕΎΣ) ὈΔΥΣΣΕΎΣ, ὈΔΥΣΣΕΎΣ{} ὈΔΥΣΣΕΎΣ\noop
ὈΔΥΣΣΕΎΣ (ὈΔΥΣΣΕΎΣ) ὈΔΥΣΣΕΎΣ, ὈΔΥΣΣΕΎΣ{} ὈΔΥΣΣΕΎΣ\noop
^^e1^^bd^^80^^ce^^b4^^cf^^85^^cf^^82^^cf^^82^^ce^^b5^^cf^^8d^^cf^^82
ὈΔΥΣΣΕΎΣ
@@ -243,10 +243,10 @@ rag^^c4^^b1p hul^^c3^^bbsi ^^c3^^b6zdem
ragip hul^^c3^^bbsi^^cc^^87 ^^c3^^b6zdem
RAGIP HUL^^c3^^9bS^^c4^^b0 ^^c3^^96ZDEM
RAGIP HUL^^c3^^9bSI ^^c3^^96ZDEM
-Rag^^c4^^b1p hul^^c3^^bbsi ^^c3^^b6zdem
-Rag^^c4^^b1p hul^^c3^^bbsi ^^c3^^b6zdem
-Ip hul^^c3^^bbsi ^^c3^^b6zdem
-Ip hul^^c3^^bbsi ^^c3^^b6zdem
+Rag^^c4^^b1p Hul^^c3^^bbsi ^^c3^^96zdem
+Rag^^c4^^b1p Hul^^c3^^bbsi ^^c3^^96zdem
+Ip Hul^^c3^^bbsi ^^c3^^96zdem
+Ip Hul^^c3^^bbsi ^^c3^^96zdem
============================================================
============================================================
TEST 19: Lithuanian
@@ -255,9 +255,9 @@ i^^cc^^87^^cc^^80i^^cc^^87^^cc^^81i^^cc^^87^^cc^^83i^^cc^^87̀i^^cc^^87́i^^cc^^
^^c3^^ac^^c3^^ad^^c4^^a9ìíĩj̀j́j̃^^c4^^af̀^^c4^^af́^^c4^^af̃
ÌÌĨÌÍĨJ̀J́J̃^^c4^^aè^^c4^^aé^^c4^^aẽ
İ̀İ̀İ̃İ̀İ́İ̃J̇̀J̇́J̇̃^^c4^^aė̀^^c4^^aė́^^c4^^aė̃
-^^c3^^8ci^^cc^^87^^cc^^81i^^cc^^87^^cc^^83i^^cc^^87̀i^^cc^^87́i^^cc^^87̃j^^cc^^87̀j^^cc^^87́j^^cc^^87̃^^c4^^af^^cc^^87̀^^c4^^af^^cc^^87́^^c4^^af^^cc^^87̃
+^^c3^^8c^^c3^^8d^^c4^^a8ÌÍĨJ̀J́J̃^^c4^^aè^^c4^^aé^^c4^^aẽ
Ìi̇̀i̇̃i̇̀i̇́i̇̃j̇̀j̇́j̇̃^^c4^^aḟ̀^^c4^^aḟ́^^c4^^aḟ̃
-^^c3^^8c^^c3^^ad^^c4^^a9ìíĩj̀j́j̃^^c4^^af̀^^c4^^af́^^c4^^af̃
+^^c3^^8c^^c3^^8d^^c4^^a8ÌÍĨJ̀J́J̃^^c4^^aè^^c4^^aé^^c4^^aẽ
İ̀i̇̀i̇̃i̇̀i̇́i̇̃j̇̀j̇́j̇̃^^c4^^aḟ̀^^c4^^aḟ́^^c4^^aḟ̃
============================================================
============================================================
@@ -280,7 +280,7 @@ Ijsselmeer
IJsselmeer
Ijsselmeer
IJsselmeer
-Ijsselmeer
+IJsselmeer
Im
Im
============================================================
@@ -295,11 +295,11 @@ TEST 23: Case changing braced arguments
============================================================
foo \emph {BAR} {baz}
FOO \emph {BAR} {BAZ}
-Foo \emph {BAR} {baz}
+FOO \emph {BAR} {BAZ}
FOO \emph {BAR} {BAZ}
\emph {BAR} {baz}
\emph {BAR} {BAZ}
-\emph {BAR} {Baz}
+\emph {BAR} {BAZ}
\emph {BAR} {BAZ}
============================================================
============================================================
@@ -307,7 +307,7 @@ TEST 24: Expanding content
============================================================
some text hello
SOME TEXT HELLO
-Some text hello
+Some text Hello
Some text Hello
hello sometext
HELLO SOMETEXT
@@ -315,7 +315,7 @@ Hello sometext
Hello sometext
some text hello
SOME TEXT HELLO
-Some text hello
+Some text Hello
Some text Hello
hello sometext
HELLO SOMETEXT
@@ -359,7 +359,7 @@ TEST 27: Letter-like commands
============================================================
\aa \aa \ae \dh \ss \l \o
\AA \AA \AE \DH \SS \L \O
-\AA \aa \ae \dh \ss \l \o
+\AA \aa \ae \dh \ss \l \O
\AA \aa \ae \dh \ss \l \O
============================================================
============================================================
@@ -397,7 +397,7 @@ Title
Title
WORDS lower
words UPPER
-Words UPPER
+Words \text_case_switch:nnnn {normal}{lower}{UPPER}{Title}
Words \text_case_switch:nnnn {normal}{lower}{UPPER}{Title}
============================================================
============================================================
diff --git a/l3kernel/testfiles/m3text002.xetex.tlg b/l3kernel/testfiles/m3text002.xetex.tlg
index aa7214dca..078a69149 100644
--- a/l3kernel/testfiles/m3text002.xetex.tlg
+++ b/l3kernel/testfiles/m3text002.xetex.tlg
@@ -30,15 +30,15 @@ TEST 4: Titlecase basics
============================================================
Hello world
Hello world
-Hello world
HELLO WORLD
-" Hello world"
+HELLO WORLD
" Hello world"
" Hello world"
" HELLO WORLD"
+" HELLO WORLD"
{H}ello world
{H}ello world
-{H}ello world
+{H}ELLO WORLD
{H}ELLO WORLD
{}hello world
{}hello world
@@ -58,21 +58,21 @@ TEST 5: Titlecase skipping chars
============================================================
TEST 6: Titlecase first
============================================================
-`Hic sunt leones'
`Hic SUNT leones'
-`Hic sunt leones'
+`Hic SUNT leones'
+`HIC SUNT leones'
`HIC SUNT leones'
-E pluribus unum
+E PLURIBUS UNUM
E PLURIBUS UNUM
============================================================
============================================================
TEST 7: Titlecase control
============================================================
-`hic sunt leones'
`hic SUNT leones'
-`hic sunt leones'
+`hic SUNT leones'
`HIC SUNT leones'
-E pluribus unum
+`HIC SUNT leones'
+E PLURIBUS UNUM
E PLURIBUS UNUM
============================================================
============================================================
@@ -92,7 +92,7 @@ TEST 9: (u)pTeX-based tests
============================================================
abc^^e8日本語
ABC^^c8日本語
-Abc^^e8日本語
+ABC^^c8日本語
ABC^^c8日本語
一级标题
一级标题
@@ -104,7 +104,7 @@ 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ὭдαƐ
============================================================
============================================================
@@ -120,11 +120,11 @@ TEST 12: The final sigma rule
============================================================
ὀδυσσεύς (ὀδυσσεύς) ὀδυσσεύς, ὀδυσσεύς{} ὀδυσσεύς\noop
ὈΔΥΣΣΕΎΣ (ὈΔΥΣΣΕΎΣ) ὈΔΥΣΣΕΎΣ, ὈΔΥΣΣΕΎΣ{} ὈΔΥΣΣΕΎΣ\noop
-Ὀδυσσεύς (ὀδυσσεύς) ὀδυσσεύς, ὀδυσσεύς{} ὀδυσσεύς\noop
+ὈΔΥΣΣΕΎΣ (ὈΔΥΣΣΕΎΣ) ὈΔΥΣΣΕΎΣ, ὈΔΥΣΣΕΎΣ{} ὈΔΥΣΣΕΎΣ\noop
ὈΔΥΣΣΕΎΣ (ὈΔΥΣΣΕΎΣ) ὈΔΥΣΣΕΎΣ, ὈΔΥΣΣΕΎΣ{} ὈΔΥΣΣΕΎΣ\noop
ὀδυσσεύς
ὈΔΥΣΣΕΎΣ
-Ὀδυσσεύς
+ὈΔΥΣΣΕΎΣ
ὈΔΥΣΣΕΎΣ
============================================================
============================================================
@@ -132,7 +132,7 @@ TEST 13: Cyrillic
============================================================
доклады академии наук
ДОКЛАДЫ АКАДЕМИИ НАУК
-Доклады академии наук
+Доклады Академии наук
Доклады Академии наук
============================================================
============================================================
@@ -193,8 +193,8 @@ TEST 17: Greek
ΤΟ ΕΝΑ Ή ΤΟ ΑΛΛΟ.
ΡΩΜΈΙΚΑ
ΡΩΜΕΪΚΑ
-Ὀδυσσεύς
-Ὀδυσσεύς
+ὈΔΥΣΣΕΎΣ
+ὈΔΥΣΣΕΎΣ
ΉΙ
ῌ
ΗΙ
@@ -243,10 +243,10 @@ ragıp hul^^fbsi ^^f6zdem
ragip hul^^fbsi̇ ^^f6zdem
RAGIP HUL^^dbSİ ^^d6ZDEM
RAGIP HUL^^dbSI ^^d6ZDEM
-Ragıp hul^^fbsi ^^f6zdem
-Ragıp hul^^fbsi ^^f6zdem
-Ip hul^^fbsi ^^f6zdem
-Ip hul^^fbsi ^^f6zdem
+Ragıp Hul^^fbsi ^^d6zdem
+Ragıp Hul^^fbsi ^^d6zdem
+Ip Hul^^fbsi ^^d6zdem
+Ip Hul^^fbsi ^^d6zdem
============================================================
============================================================
TEST 19: Lithuanian
@@ -255,9 +255,9 @@ i̇̀i̇́i̇̃i̇̀i̇́i̇̃j̇̀j̇́j̇̃į̇̀į̇́į̇̃
^^ec^^edĩìíĩj̀j́j̃į̀į́į̃
ÌÌĨÌÍĨJ̀J́J̃Į̀Į́Į̃
İ̀İ̀İ̃İ̀İ́İ̃J̇̀J̇́J̇̃Į̇̀Į̇́Į̇̃
-^^cci̇́i̇̃i̇̀i̇́i̇̃j̇̀j̇́j̇̃į̇̀į̇́į̇̃
+^^cc^^cdĨÌÍĨJ̀J́J̃Į̀Į́Į̃
Ìi̇̀i̇̃i̇̀i̇́i̇̃j̇̀j̇́j̇̃į̇̀į̇́į̇̃
-^^cc^^edĩìíĩj̀j́j̃į̀į́į̃
+^^cc^^cdĨÌÍĨJ̀J́J̃Į̀Į́Į̃
İ̀i̇̀i̇̃i̇̀i̇́i̇̃j̇̀j̇́j̇̃į̇̀į̇́į̇̃
============================================================
============================================================
@@ -280,7 +280,7 @@ Ijsselmeer
IJsselmeer
Ijsselmeer
IJsselmeer
-Ijsselmeer
+IJsselmeer
Im
Im
============================================================
@@ -295,11 +295,11 @@ TEST 23: Case changing braced arguments
============================================================
foo \emph {BAR} {baz}
FOO \emph {BAR} {BAZ}
-Foo \emph {BAR} {baz}
+FOO \emph {BAR} {BAZ}
FOO \emph {BAR} {BAZ}
\emph {BAR} {baz}
\emph {BAR} {BAZ}
-\emph {BAR} {Baz}
+\emph {BAR} {BAZ}
\emph {BAR} {BAZ}
============================================================
============================================================
@@ -307,7 +307,7 @@ TEST 24: Expanding content
============================================================
some text hello
SOME TEXT HELLO
-Some text hello
+Some text Hello
Some text Hello
hello sometext
HELLO SOMETEXT
@@ -315,7 +315,7 @@ Hello sometext
Hello sometext
some text hello
SOME TEXT HELLO
-Some text hello
+Some text Hello
Some text Hello
hello sometext
HELLO SOMETEXT
@@ -359,7 +359,7 @@ TEST 27: Letter-like commands
============================================================
\aa \aa \ae \dh \ss \l \o
\AA \AA \AE \DH \SS \L \O
-\AA \aa \ae \dh \ss \l \o
+\AA \aa \ae \dh \ss \l \O
\AA \aa \ae \dh \ss \l \O
============================================================
============================================================
@@ -397,7 +397,7 @@ Title
Title
WORDS lower
words UPPER
-Words UPPER
+Words \text_case_switch:nnnn {normal}{lower}{UPPER}{Title}
Words \text_case_switch:nnnn {normal}{lower}{UPPER}{Title}
============================================================
============================================================
More information about the latex3-commits
mailing list.