[latex3-commits] [git/LaTeX3-latex3-latex2e] main: Update l3kernel to 2023-02-22 (12926223)

Joseph Wright joseph.wright at morningstar2.co.uk
Thu Feb 23 11:20:41 CET 2023


Repository : https://github.com/latex3/latex2e
On branch  : main
Link       : https://github.com/latex3/latex2e/commit/12926223caca42d6af733e154bf0700255b0b5c1

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

commit 12926223caca42d6af733e154bf0700255b0b5c1
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date:   Thu Feb 23 10:20:41 2023 +0000

    Update l3kernel to 2023-02-22


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

12926223caca42d6af733e154bf0700255b0b5c1
 texmf/tex/latex/l3kernel/expl3-code.tex    | 188 +++++++++++++++--------------
 texmf/tex/latex/l3kernel/expl3-generic.tex |   2 +-
 texmf/tex/latex/l3kernel/expl3.ltx         |   2 +-
 texmf/tex/latex/l3kernel/expl3.sty         |   2 +-
 4 files changed, 103 insertions(+), 91 deletions(-)

diff --git a/texmf/tex/latex/l3kernel/expl3-code.tex b/texmf/tex/latex/l3kernel/expl3-code.tex
index 7327e208..8f2c6f05 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-02-07}%
+\def\ExplFileDate{2023-02-22}%
 \begingroup
   \def\next{\endgroup}%
   \expandafter\ifx\csname PackageError\endcsname\relax
@@ -5495,22 +5495,33 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
   \cs_new:Npn \__str_change_case_codepoint:nN #1#2
     { \__str_change_case_char:fnn { \int_eval:n {`#2} } {#1} {#2} }
 \else:
-    \cs_new:Npn \__str_change_case_codepoint:nN #1#2
+    \cs_new:Npx \__str_change_case_codepoint:nN #1#2
       {
-        \int_compare:nNnTF {`#2} > { "80 }
+        \exp_not:N \int_compare:nNnTF {`#2} > { "80 }
           {
-            \int_compare:nNnTF {`#2} < { "E0 }
-              { \__str_change_case_codepoint:nNN }
+            \cs_if_exist:NTF \tex_pdftexversion:D
+              { \exp_not:N \__str_change_case_char_auxi:nN }
               {
-                 \int_compare:nNnTF {`#2} < { "F0 }
-                   { \__str_change_case_codepoint:nNNN }
-                   { \__str_change_case_codepoint:nNNNNN }
+                \exp_not:N \int_compare:nNnTF {`#2} > { "FF }
+                  { \exp_not:N \__str_change_case_char_auxii:nN }
+                  { \exp_not:N \__str_change_case_char_auxi:nN }
               }
           }
-          { \__str_change_case_char_aux:nN }
+          { \exp_not:N \__str_change_case_char_auxii:nN }
             {#1} #2
       }
-    \cs_new:Npn \__str_change_case_char_aux:nN #1#2
+    \cs_new:Npn \__str_change_case_char_auxi:nN #1#2
+      {
+        \int_compare:nNnTF {`#2} < { "E0 }
+          { \__str_change_case_codepoint:nNN }
+          {
+             \int_compare:nNnTF {`#2} < { "F0 }
+               { \__str_change_case_codepoint:nNNN }
+               { \__str_change_case_codepoint:nNNNNN }
+          }
+            {#1} #2
+      }
+    \cs_new:Npn \__str_change_case_char_auxii:nN #1#2
       { \__str_change_case_char:fnn { \int_eval:n {`#2} } {#1} {#2} }
     \cs_new:Npn \__str_change_case_codepoint:nNN #1#2#3
       {
@@ -8757,9 +8768,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
 \group_begin:
   \char_set_catcode_active:N \^^L
   \cs_set:Npn ^^L { }
-  \if_int_odd:w 0
-      \sys_if_engine_luatex:T { 1 }
-      \sys_if_engine_xetex:T { 1 } \exp_stop_f:
+  \if_cs_exist:N \tex_Ucharcat:D
       \cs_new:Npn \__char_generate_aux:nnw #1#2#3 \exp_end:
         {
           #3
@@ -28473,7 +28482,6 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
   { \use:c { __color_backend_select_ #1 :n } {#2} }
 \tl_new:N \l__color_current_tl
 \tl_set:Nn \l__color_current_tl { { gray } { 0 } }
-
 \int_new:N \l__color_internal_int
 \tl_new:N \l__color_internal_tl
 \scan_new:N \s__color_mark
@@ -31838,7 +31846,20 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
 \cs_generate_variant:Nn \__codepoint_to_bytes_output:nnn { f }
 \cs_new:Npn \__codepoint_to_bytes_end: { }
 \cs_new:Npn \codepoint_to_nfd:n #1
+  { \exp_args:Ne \__codepoint_to_nfd:n { \int_eval:n {#1} } }
+\cs_new:Npn \__codepoint_to_nfd:n #1
   { \__codepoint_to_nfd:nn {#1} { \char_value_catcode:n {#1} } }
+\bool_lazy_or:nnF
+  { \sys_if_engine_luatex_p: }
+  { \sys_if_engine_xetex_p: }
+  {
+    \cs_gset:Npn \__codepoint_to_nfd:n #1
+      {
+        \int_compare:nNnTF {#1} > { "80 }
+          { \__codepoint_to_nfd:nn {#1} { 12 } }
+          { \__codepoint_to_nfd:nn {#1} { \char_value_catcode:n {#1} } }
+      }
+  }
 \cs_new:Npn \__codepoint_to_nfd:nn #1#2
   {
     \exp_args:Ne \__codepoint_to_nfd:nnn
@@ -32393,43 +32414,38 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
     \cs_new:Npn \__text_codepoint_process:nN #1#2 { #1 {#2} }
   }
   {
-    \cs_new:Npn \__text_codepoint_process:nN #1#2
+    \cs_new:Npx \__text_codepoint_process:nN #1#2
       {
-        \int_compare:nNnTF { `#2 } > { "80 }
+        \exp_not:N \int_compare:nNnTF {`#2} > { "80 }
           {
-            \int_compare:nNnTF { `#2 } < { "E0 }
-              { \__text_codepoint_process:nNN }
+            \sys_if_engine_pdftex:TF
+              { \exp_not:N \__text_codepoint_process_aux:nN }
               {
-                 \int_compare:nNnTF { `#2 } < { "F0 }
-                   { \__text_codepoint_process:nNNN }
-                   { \__text_codepoint_process:nNNNN }
+                \exp_not:N \int_compare:nNnTF {`#2} > { "FF }
+                  { \exp_not:N \use:n }
+                  { \exp_not:N \__text_codepoint_process_aux:nN }
               }
           }
-          { \use:n }
+          { \exp_not:N \use:n }
             {#1} #2
       }
-    \cs_new:Npn \__text_codepoint_process:nNN #1#2#3
-      { #1 {#2#3} }
-    \sys_if_engine_ptex:TF
+    \cs_new:Npn \__text_codepoint_process_aux:nN #1#2
       {
-        \cs_gset:Npn \__text_codepoint_process:nN #1#2
+        \int_compare:nNnTF { `#2 } < { "E0 }
+          { \__text_codepoint_process:nNN }
           {
-            \int_compare:nNnTF { `#2 } > { "80 }
-              {
-                \int_compare:nNnTF { `#2 } < { "E0 }
-                  { \__text_codepoint_process:nNN }
-                  { \use:n }
-              }
-          { \use:n }
+             \int_compare:nNnTF { `#2 } < { "F0 }
+               { \__text_codepoint_process:nNNN }
+               { \__text_codepoint_process:nNNNN }
+          }
             {#1} #2
         }
-      }
-      {
-        \cs_new:Npn \__text_codepoint_process:nNNN #1#2#3#4
-          { #1 {#2#3#4} }
-        \cs_new:Npn \__text_codepoint_process:nNNNN #1#2#3#4#5
-          { #1 {#2#3#4#5} }
-      }
+    \cs_new:Npn \__text_codepoint_process:nNN #1#2#3
+      { #1 {#2#3} }
+    \cs_new:Npn \__text_codepoint_process:nNNN #1#2#3#4
+      { #1 {#2#3#4} }
+    \cs_new:Npn \__text_codepoint_process:nNNNN #1#2#3#4#5
+      { #1 {#2#3#4#5} }
   }
 \bool_lazy_or:nnTF
   { \sys_if_engine_luatex_p: }
@@ -32451,62 +32467,56 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
             #2 {#3}
           \prg_return_true: \prg_return_false:
       }
-    \cs_new:Npn \__text_codepoint_from_chars:Nw #1
+    \cs_new:Npx \__text_codepoint_from_chars:Nw #1
       {
-        \if_int_compare:w `#1 > "80 \exp_stop_f:
-          \if_int_compare:w `#1 < "E0 \exp_stop_f:
+        \exp_not:N \if_int_compare:w `#1 > "80 \exp_not:N \exp_stop_f:
+          \sys_if_engine_pdftex:TF
+            {
+              \exp_not:N \exp_after:wN
+                \exp_not:N \__text_codepoint_from_chars_aux:Nw
+            }
+            {
+              \exp_not:N \if_int_compare:w `#1 > "FF \exp_not:N \exp_stop_f:
+                \exp_not:N \exp_after:wN \exp_not:N \exp_after:wN
+                  \exp_not:N \exp_after:wN
+                  \exp_not:N \__text_codepoint_from_chars:N
+              \exp_not:N \else:
+                \exp_not:N \exp_after:wN \exp_not:N \exp_after:wN
+                  \exp_not:N \exp_after:wN
+                  \exp_not:N \__text_codepoint_from_chars_aux:Nw
+              \exp_not:N \fi:
+            }
+        \exp_not:N \else:
+          \exp_not:N \exp_after:wN \exp_not:N \__text_codepoint_from_chars:N
+        \exp_not:N \fi:
+          #1
+      }
+    \cs_new:Npn \__text_codepoint_from_chars_aux:Nw #1
+      {
+        \if_int_compare:w `#1 < "E0 \exp_stop_f:
+          \exp_after:wN \__text_codepoint_from_chars:NN
+        \else:
+          \if_int_compare:w `#1 < "F0 \exp_stop_f:
             \exp_after:wN \exp_after:wN \exp_after:wN
-              \__text_codepoint_from_chars:NN
+              \__text_codepoint_from_chars:NNN
           \else:
-            \if_int_compare:w `#1 < "F0 \exp_stop_f:
-              \exp_after:wN \exp_after:wN \exp_after:wN
-              \exp_after:wN \exp_after:wN \exp_after:wN
-              \exp_after:wN \__text_codepoint_from_chars:NNN
-            \else:
-              \exp_after:wN \exp_after:wN \exp_after:wN
-              \exp_after:wN \exp_after:wN \exp_after:wN
-              \exp_after:wN \__text_codepoint_from_chars:NNNN
-            \fi:
+            \exp_after:wN \exp_after:wN \exp_after:wN
+              \__text_codepoint_from_chars:NNNN
           \fi:
-        \else:
-          \exp_after:wN \__text_codepoint_from_chars:N
         \fi:
           #1
       }
-    \cs_new:Npn \__text_codepoint_from_chars:N #1 { `#1 }
+    \cs_new:Npn \__text_codepoint_from_chars:N #1 {`#1}
     \cs_new:Npn \__text_codepoint_from_chars:NN #1#2
       { (`#1 - "C0) * "40 + `#2 - "80 }
-    %    \end{macrocode}
-    %   Avoid high chars with p\TeX{}.
-    %    \begin{macrocode}
-    \sys_if_engine_ptex:TF
+    \cs_new:Npn \__text_codepoint_from_chars:NNN #1#2#3
+      { (`#1 - "E0) * "1000 + (`#2 - "80) * "40 + `#3 - "80 }
+    \cs_new:Npn \__text_codepoint_from_chars:NNNN #1#2#3#4
       {
-        \cs_gset:Npn \__text_codepoint_from_chars:Nw #1
-          {
-            \if_int_compare:w `#1 > "80 \exp_stop_f:
-              \if_int_compare:w `#1 < "E0 \exp_stop_f:
-                \exp_after:wN \exp_after:wN \exp_after:wN
-                  \__text_codepoint_from_chars:NN
-              \else:
-                \exp_after:wN \exp_after:wN \exp_after:wN
-                  \__text_codepoint_from_chars:N
-              \fi:
-            \else:
-              \exp_after:wN \__text_codepoint_from_chars:N
-            \fi:
-              #1
-          }
-      }
-      {
-        \cs_new:Npn \__text_codepoint_from_chars:NNN #1#2#3
-          { (`#1 - "E0) * "1000 + (`#2 - "80) * "40 + `#3 - "80 }
-        \cs_new:Npn \__text_codepoint_from_chars:NNNN #1#2#3#4
-          {
-              (`#1 - "F0) * "40000
-            + (`#2 - "80) * "1000
-            + (`#3 - "80) * "40
-            + `#4 - "80
-          }
+          (`#1 - "F0) * "40000
+        + (`#2 - "80) * "1000
+        + (`#3 - "80) * "40
+        + `#4 - "80
       }
   }
 \tl_new:N \l_text_accents_tl
@@ -33491,7 +33501,9 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
   { __text_change_case_upper_de-x-eszett:nnnn }
 \cs_new:Npn \__text_change_case_upper_el:nnnn #1#2#3#4
   {
-    \__text_change_case_if_greek:nTF {#4}
+    \bool_lazy_and:nnTF
+      { \__text_change_case_if_greek_p:n {#4} }
+      { ! \__text_codepoint_compare_p:nNn {#4} = { "0374 } }
       {
         \exp_args:Ne \__text_change_case_upper_el:nnn
           {
@@ -33731,7 +33743,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
       { \__text_change_case_upper_el_gobble:nnw {#1} {#2} }
       { \__text_change_case_loop:nnw {#1} {#2} #3 }
   }
-\prg_new_conditional:Npnn \__text_change_case_if_greek:n #1 { TF }
+\prg_new_conditional:Npnn \__text_change_case_if_greek:n #1 { p , TF }
   {
     \exp_args:Nf \__text_change_case_if_greek:n
       { \int_eval:n { \__text_codepoint_from_chars:Nw #1 } }
diff --git a/texmf/tex/latex/l3kernel/expl3-generic.tex b/texmf/tex/latex/l3kernel/expl3-generic.tex
index 6850f31a..336d9a99 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-02-07}%
+\def\ExplFileDate{2023-02-22}%
 \let\ExplLoaderFileDate\ExplFileDate
 \begingroup
   \catcode`\_=11
diff --git a/texmf/tex/latex/l3kernel/expl3.ltx b/texmf/tex/latex/l3kernel/expl3.ltx
index f257bdb3..e94af311 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-02-07}%
+\def\ExplFileDate{2023-02-22}%
 \let\ExplLoaderFileDate\ExplFileDate
 \begingroup
   \catcode`\_=11
diff --git a/texmf/tex/latex/l3kernel/expl3.sty b/texmf/tex/latex/l3kernel/expl3.sty
index 510ab3a5..84451c96 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-02-07}%
+\def\ExplFileDate{2023-02-22}%
 \let\ExplLoaderFileDate\ExplFileDate
 \ProvidesPackage{expl3}
   [%





More information about the latex3-commits mailing list.