[latex3-commits] [latex3/latex2e] develop: Update l3kernel to 2023-06-15 (3458799c)

github at latex-project.org github at latex-project.org
Thu Jun 15 18:13:26 CEST 2023


Repository : https://github.com/latex3/latex2e
On branch  : develop
Link       : https://github.com/latex3/latex2e/commit/3458799cabd480818b049b5f5da6c6bfa8026abe

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

commit 3458799cabd480818b049b5f5da6c6bfa8026abe
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date:   Thu Jun 15 17:12:21 2023 +0100

    Update l3kernel to 2023-06-15


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

3458799cabd480818b049b5f5da6c6bfa8026abe
 base/testfiles/github-0944.tlg             |   2 +-
 texmf/tex/latex/l3kernel/expl3-code.tex    | 209 ++++++++++++++++++++++-------
 texmf/tex/latex/l3kernel/expl3-generic.tex |   2 +-
 texmf/tex/latex/l3kernel/expl3.ltx         |   2 +-
 texmf/tex/latex/l3kernel/expl3.sty         |   2 +-
 5 files changed, 162 insertions(+), 55 deletions(-)

diff --git a/base/testfiles/github-0944.tlg b/base/testfiles/github-0944.tlg
index 8250d813..4a3300d1 100644
--- a/base/testfiles/github-0944.tlg
+++ b/base/testfiles/github-0944.tlg
@@ -22,7 +22,7 @@ LaTeX Warning: Reference `unknown' on page 1 undefined on input line ....
 ] (github-0944.aux)
  ***********
 -formatname- <-formatversion-> pre-release-2 (-release-version-test- branch)
-L3 programming layer <2023-06-05>
+L3 programming layer <2023-06-15>
  ***********
  *File List*
  -show the file list here-
diff --git a/texmf/tex/latex/l3kernel/expl3-code.tex b/texmf/tex/latex/l3kernel/expl3-code.tex
index cc7f3c32..71c0dde2 100644
--- a/texmf/tex/latex/l3kernel/expl3-code.tex
+++ b/texmf/tex/latex/l3kernel/expl3-code.tex
@@ -71,7 +71,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2023-06-05}%
+\def\ExplFileDate{2023-06-15}%
 \begingroup
   \def\next{\endgroup}%
   \expandafter\ifx\csname PackageError\endcsname\relax
@@ -11418,10 +11418,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
 \cs_new:Npn \__file_full_name_aux:Nnn #1#2#3
   {
     \exp_args:Ne \__file_full_name_aux:nN
-      {
-        \exp_args:Ne \__file_full_name_slash:n
-          { \tl_to_str:n {#3} } #2
-      }
+      { \__file_full_name_slash:n {#3} #2 }
       #1
   }
 \cs_new:Npn \__file_full_name_slash:n #1
@@ -32543,6 +32540,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
           {
             \exp_not:V \l_text_math_arg_tl
             \exp_not:V \l_text_expand_exclude_tl
+            \exp_not:V \l_text_case_exclude_arg_tl
           }
         #1
       }
@@ -33322,6 +33320,8 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
     #1
   }
 \cs_new:Npn \__text_case_switch_marker: { }
+\cs_new:Npn \__text_change_case_generate:n #1
+  { \codepoint_generate:nn {#1} { \char_value_catcode:n {#1} } }
 \cs_new:cpn { __text_change_case_upper_de-x-eszett:nnnn } #1#2#3#4
   {
     \__text_codepoint_compare:nNnTF {#4} = { "00DF }
@@ -33444,7 +33444,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
       {
         \bool_lazy_or:nnTF
           { \__text_change_case_if_greek_accent_p:n {#6} }
-          { \__text_change_case_if_greek_diacritic_p:n {#6} }
+          { \__text_change_case_if_greek_breathing_p:n {#6} }
           {
             \__text_change_case_upper_el_ypogegrammeni:nnnnnw
               {#1} {#2} {#3} {#4#6} {#5}
@@ -33465,7 +33465,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
         \__text_change_case_if_greek_accent:nTF {#4}
           { \__text_change_case_upper_el_hiatus:nnnw {#2} {#3} {#1} }
           {
-            \__text_change_case_if_greek_diacritic:nTF {#4}
+            \__text_change_case_if_greek_breathing:nTF {#4}
               { \__text_change_case_upper_el:nnn {#1} {#2} {#3} }
               {
                 \__text_codepoint_compare:nNnTF {#4} = { "0345 }
@@ -33475,9 +33475,18 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
                     \__text_change_case_loop:nnw {#2} {#3}
                   }
                   {
-                    \__text_change_case_store:e
-                      { \__text_change_case_codepoint:nn { upper } {#1} }
-                    \__text_change_case_loop:nnw {#2} {#3} #4
+                    \__text_change_case_if_greek_stress:nTF {#4}
+                      {
+                        \__text_change_case_store:e
+                          { \__text_change_case_upper_el_stress:nn {#1} {#4} }
+                        \__text_change_case_loop:nnw {#2} {#3}
+
+                      }
+                      {
+                        \__text_change_case_store:e
+                          { \__text_change_case_codepoint:nn { upper } {#1} }
+                        \__text_change_case_loop:nnw {#2} {#3} #4
+                      }
                   }
               }
           }
@@ -33548,26 +33557,60 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
   }
 \cs_new:Npn \__text_change_case_upper_el_ypogegrammeni:n #1
   {
-    \int_case:nnF
-      { \__text_codepoint_from_chars:Nw #1 }
+    \exp_args:Ne \__text_change_case_generate:n
       {
-        { "0391 } { \__text_change_case_upper_el_ypogegrammeni_aux:n { "1FBC } }
-        { "03B1 } { \__text_change_case_upper_el_ypogegrammeni_aux:n { "1FBC } }
-        { "0397 } { \__text_change_case_upper_el_ypogegrammeni_aux:n { "1FCC } }
-        { "03B7 } { \__text_change_case_upper_el_ypogegrammeni_aux:n { "1FCC } }
-        { "03A9 } { \__text_change_case_upper_el_ypogegrammeni_aux:n { "1FFC } }
-        { "03C9 } { \__text_change_case_upper_el_ypogegrammeni_aux:n { "1FFC } }
+        \int_case:nn
+          { \__text_codepoint_from_chars:Nw #1 }
+          {
+            { "0391 } { "1FBC }
+            { "03B1 } { "1FBC }
+            { "0397 } { "1FCC }
+            { "03B7 } { "1FCC }
+            { "03A9 } { "1FFC }
+            { "03C9 } { "1FFC }
+          }
       }
-      { \__text_change_case_upper_el_ypogegrammeni:n {#1} }
   }
-\cs_new:Npn \__text_change_case_upper_el_ypogegrammeni_aux:n #1
-  { \codepoint_generate:nn {#1} { \char_value_catcode:n {#1} } }
 \cs_new:cpn { __text_change_case_upper_el-x-iota_ypogegrammeni:n } #1
   {
     \__text_change_case_codepoint:nn { upper } {#1}
     \codepoint_generate:nn { "0399 }
       { \char_value_catcode:n { "0399 } }
   }
+\cs_new:Npn \__text_change_case_upper_el_stress:nn #1#2
+  {
+    \exp_args:Ne \__text_change_case_generate:n
+      {
+        \int_case:nn
+          { \__text_codepoint_from_chars:Nw #2 }
+          {
+            { "0304 }
+              {
+                \int_case:nn { \__text_codepoint_from_chars:Nw #1 }
+                  {
+                    { "0391 } { "1FB9 }
+                    { "03B1 } { "1FB9 }
+                    { "0399 } { "1FD9 }
+                    { "03B9 } { "1FD9 }
+                    { "03A5 } { "1FE9 }
+                    { "03C5 } { "1FE9 }
+                  }
+              }
+            { "0306 }
+              {
+                \int_case:nn { \__text_codepoint_from_chars:Nw #1 }
+                  {
+                    { "0391 } { "1FB8 }
+                    { "03B1 } { "1FB8 }
+                    { "0399 } { "1FD8 }
+                    { "03B9 } { "1FD8 }
+                    { "03A5 } { "1FE8 }
+                    { "03C5 } { "1FE8 }
+                  }
+              }
+          }
+      }
+  }
 \cs_new:Npn \__text_change_case_upper_el_gobble:nnw
   #1#2#3 \q__text_recursion_stop
   {
@@ -33590,7 +33633,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
   {
     \bool_lazy_or:nnTF
       { \__text_change_case_if_greek_accent_p:n {#3} }
-      { \__text_change_case_if_greek_diacritic_p:n {#3} }
+      { \__text_change_case_if_greek_breathing_p:n {#3} }
       { \__text_change_case_upper_el_gobble:nnw {#1} {#2} }
       { \__text_change_case_loop:nnw {#1} {#2} #3 }
   }
@@ -33734,13 +33777,31 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
       \fi:
     \fi:
   }
-\prg_new_conditional:Npnn \__text_change_case_if_greek_diacritic:n
+\prg_new_conditional:Npnn \__text_change_case_if_greek_breathing:n
   #1 { TF , p }
   {
-    \exp_args:Nf \__text_change_case_if_greek_diacritic:n
+    \exp_args:Nf \__text_change_case_if_greek_breathing:n
       { \int_eval:n { \__text_codepoint_from_chars:Nw #1 } }
   }
-\cs_new:Npn \__text_change_case_if_greek_diacritic:n #1
+\cs_new:Npn \__text_change_case_if_greek_breathing:n #1
+  {
+    \if_int_compare:w #1 = "0313 \exp_stop_f:
+      \prg_return_true:
+    \else:
+      \if_int_compare:w #1 = "0314 \exp_stop_f:
+        \prg_return_true:
+      \else:
+        \prg_return_false:
+      \fi:
+    \fi:
+  }
+\prg_new_conditional:Npnn \__text_change_case_if_greek_stress:n
+  #1 { TF , p }
+  {
+    \exp_args:Nf \__text_change_case_if_greek_stress:n
+      { \int_eval:n { \__text_codepoint_from_chars:Nw #1 } }
+  }
+\cs_new:Npn \__text_change_case_if_greek_stress:n #1
   {
     \if_int_compare:w #1 = "0304 \exp_stop_f:
       \prg_return_true:
@@ -33748,15 +33809,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
       \if_int_compare:w #1 = "0306 \exp_stop_f:
         \prg_return_true:
       \else:
-        \if_int_compare:w #1 = "0313 \exp_stop_f:
-          \prg_return_true:
-        \else:
-          \if_int_compare:w #1 = "0314 \exp_stop_f:
-            \prg_return_true:
-          \else:
-            \prg_return_false:
-          \fi:
-        \fi:
+        \prg_return_false:
       \fi:
     \fi:
   }
@@ -33836,42 +33889,96 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
         { \__text_codepoint_compare_p:nNn {#3} = { "1F2A } }
       }
       { \__text_change_case_boundary_upper_el:nnnw {#1} {#2} {#3} }
-      { \__text_change_case_loop:nnw {#1} {#2} #3 }
+      { \__text_change_case_breathing:nnn {#1} {#2} {#3} }
   }
 \cs_new:Npn \__text_change_case_boundary_upper_el:nnnw
   #1#2#3#4 \q__text_recursion_stop
   {
     \tl_if_head_is_N_type:nTF {#4}
-      { \__text_change_case_boundary_upper_el:nnnN {#3} }
+      { \__text_change_case_loop:nnw {#1} {#2} #3 }
       {
         \__text_change_case_store:e
           {
             \codepoint_generate:nn { "0389 }
               { \__text_change_case_catcode:nn {#3} { "0389 } }
           }
-        \__text_change_case_loop:nnw
+        \__text_change_case_loop:nnw {#1} {#2}
       }
-        {#1} {#2} #4 \q__text_recursion_stop
+        #4 \q__text_recursion_stop
   }
-\cs_new:Npn \__text_change_case_boundary_upper_el:nnnN #1#2#3#4
+\cs_new:Npn \__text_change_case_breathing:nnn #1#2#3
   {
-    \bool_lazy_or:nnTF
-      { \token_if_letter_p:N #4 }
-      {
-        \bool_lazy_and_p:nn
-          { \token_if_active_p:N #4 }
-          { ! \int_compare_p:nNn {`#4} < { "80 } }
-      }
-      { \__text_change_case_loop:nnw {#2} {#3} #1#4 }
+    \__text_change_case_if_greek:nTF {#3}
       {
-        \__text_change_case_store:e
+        \exp_args:Ne \__text_change_case_breathing:nnnn
           {
-            \codepoint_generate:nn { "0389 }
-              { \__text_change_case_catcode:nn {#1} { "0389 } }
+            \codepoint_to_nfd:n
+              { \__text_codepoint_from_chars:Nw #3 }
           }
-        \__text_change_case_loop:nnw {#2} {#3} #4
+            {#1} {#2} {#3}
+      }
+      { \__text_change_case_loop:nnw {#1} {#2} #3 }
+  }
+\cs_new:Npn \__text_change_case_breathing:nnnn #1#2#3#4
+  {
+    \__text_codepoint_process:nN
+      { \__text_change_case_breathing:nnnnw {#2} {#3} {#4} }
+        #1 \q_mark
+  }
+\cs_new:Npn \__text_change_case_breathing:nnnnw #1#2#3#4#5 \q_mark
+  {
+    \tl_if_blank:nTF {#5}
+      { \__text_change_case_loop:nnw {#1} {#2} #3 }
+      {
+        \__text_codepoint_process:nN
+          { \__text_change_case_breathing:nnnnnw {#1} {#2} {#3} {#4} }
+            #5 \q_mark
       }
   }
+\cs_new:Npn \__text_change_case_breathing:nnnnnw #1#2#3#4#5#6 \q_mark
+  {
+    \tl_if_blank:nTF {#6}
+     {
+       \__text_change_case_breathing_aux:nnnnn
+         {#1} {#2} {#3} {#4} {#5}
+     }
+     {
+       \__text_change_case_breathing_aux:nnnnn
+         {#1} {#2} {#3} {#4} {#6}
+     }
+  }
+\cs_new:Npn \__text_change_case_breathing_aux:nnnnn #1#2#3#4#5
+  {
+    \bool_lazy_or:nnTF
+      { \__text_codepoint_compare_p:nNn {#5} = { "0313 } }
+      { \__text_codepoint_compare_p:nNn {#5} = { "0314 } }
+      { \__text_change_case_breathing_aux:nnnw {#1} {#2} {#4} }
+      { \__text_change_case_loop:nnw {#1} {#2} #3 }
+  }
+\cs_new:Npn \__text_change_case_breathing_aux:nnnw #1#2#3#4
+  \q__text_recursion_stop
+  {
+    \__text_change_case_store:e
+      { \__text_change_case_codepoint:nn { upper } {#3} }
+    \tl_if_head_is_N_type:nTF {#4}
+      { \__text_change_case_breathing_aux:nnN  }
+      { \__text_change_case_loop:nnw }
+        {#1} {#2} #4 \q__text_recursion_stop
+  }
+\cs_new:Npn \__text_change_case_breathing_aux:nnN #1#2#3
+  {
+    \__text_codepoint_process:nN
+      { \__text_change_case_breathing_dialytika:nnn {#1} {#2} } #3
+  }
+\cs_new:Npn \__text_change_case_breathing_dialytika:nnn #1#2#3
+  {
+     \__text_change_case_if_takes_dialytika:nTF {#3}
+       {
+         \__text_change_case_upper_el_dialytika:n {#3}
+         \__text_change_case_loop:nnw {#1} {#2}
+       }
+       { \__text_change_case_loop:nnw {#1} {#2} #3 }
+  }
 \cs_new:Npn \__text_change_case_title_el:nnnn #1#2#3#4
   { \__text_change_case_codepoint:nnnn {#1} {#2} {#3} {#4} }
 \cs_new:Npn \__text_change_case_upper_hy:nnnn #1#2#3#4
diff --git a/texmf/tex/latex/l3kernel/expl3-generic.tex b/texmf/tex/latex/l3kernel/expl3-generic.tex
index 80c60e57..4013fe77 100644
--- a/texmf/tex/latex/l3kernel/expl3-generic.tex
+++ b/texmf/tex/latex/l3kernel/expl3-generic.tex
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2023-06-05}%
+\def\ExplFileDate{2023-06-15}%
 \let\ExplLoaderFileDate\ExplFileDate
 \begingroup
   \catcode`\_=11
diff --git a/texmf/tex/latex/l3kernel/expl3.ltx b/texmf/tex/latex/l3kernel/expl3.ltx
index 8b7ed14e..440a35c6 100644
--- a/texmf/tex/latex/l3kernel/expl3.ltx
+++ b/texmf/tex/latex/l3kernel/expl3.ltx
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2023-06-05}%
+\def\ExplFileDate{2023-06-15}%
 \let\ExplLoaderFileDate\ExplFileDate
 \begingroup
   \catcode`\_=11
diff --git a/texmf/tex/latex/l3kernel/expl3.sty b/texmf/tex/latex/l3kernel/expl3.sty
index 41c154b8..95a2bace 100644
--- a/texmf/tex/latex/l3kernel/expl3.sty
+++ b/texmf/tex/latex/l3kernel/expl3.sty
@@ -19,7 +19,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2023-06-05}%
+\def\ExplFileDate{2023-06-15}%
 \let\ExplLoaderFileDate\ExplFileDate
 \ProvidesPackage{expl3}
   [%





More information about the latex3-commits mailing list.