[latex3-commits] [latex3/latex2e] main: Update l3kernel to 2023-08-29 (aff7cd99)

github at latex-project.org github at latex-project.org
Tue Aug 29 14:44:36 CEST 2023


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

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

commit aff7cd99bfa09960a5d2628176a5d4806bb1403e
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date:   Tue Aug 29 11:27:00 2023 +0100

    Update l3kernel to 2023-08-29


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

aff7cd99bfa09960a5d2628176a5d4806bb1403e
 base/testfiles/github-0944.tlg             |   2 +-
 texmf/tex/latex/l3kernel/expl3-code.tex    | 127 +++++++++++++++++++++--------
 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, 96 insertions(+), 39 deletions(-)

diff --git a/base/testfiles/github-0944.tlg b/base/testfiles/github-0944.tlg
index c6d257fc..46adee4b 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-> patch level -2
-L3 programming layer <2023-08-11>
+L3 programming layer <2023-08-29>
  ***********
  *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 85a3014e..ac67d0b7 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-08-11}%
+\def\ExplFileDate{2023-08-29}%
 \begingroup
   \def\next{\endgroup}%
   \expandafter\ifx\csname PackageError\endcsname\relax
@@ -665,7 +665,6 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
   \__kernel_primitive:NN \pdfcompresslevel      \tex_pdfcompresslevel:D
   \__kernel_primitive:NN \pdfcolorstack         \tex_pdfcolorstack:D
   \__kernel_primitive:NN \pdfcolorstackinit     \tex_pdfcolorstackinit:D
-  \__kernel_primitive:NN \pdfcreationdate       \tex_pdfcreationdate:D
   \__kernel_primitive:NN \pdfdecimaldigits      \tex_pdfdecimaldigits:D
   \__kernel_primitive:NN \pdfdest               \tex_pdfdest:D
   \__kernel_primitive:NN \pdfdestmargin         \tex_pdfdestmargin:D
@@ -754,6 +753,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
   \__kernel_primitive:NN \pdfadjustspacing      \tex_adjustspacing:D
   \__kernel_primitive:NN \pdfappendkern         \tex_appendkern:D
   \__kernel_primitive:NN \pdfcopyfont           \tex_copyfont:D
+  \__kernel_primitive:NN \pdfcreationdate       \tex_creationdate:D
   \__kernel_primitive:NN \pdfdraftmode          \tex_draftmode:D
   \__kernel_primitive:NN \pdfeachlinedepth      \tex_eachlinedepth:D
   \__kernel_primitive:NN \pdfeachlineheight     \tex_eachlineheight:D
@@ -3424,6 +3424,11 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
     \__kernel_tl_set:Nx #1
       { \exp_not:V #2 \__kernel_exp_not:w \exp_after:wN {#1} }
   }
+\cs_new_protected:Npn \tl_put_left:Nv #1#2
+  {
+    \__kernel_tl_set:Nx #1
+      { \exp_not:v {#2} \__kernel_exp_not:w \exp_after:wN {#1} }
+  }
 \cs_new_protected:Npn \tl_put_left:No #1#2
   {
     \__kernel_tl_set:Nx #1
@@ -3444,6 +3449,11 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
     \__kernel_tl_gset:Nx #1
       { \exp_not:V #2 \__kernel_exp_not:w \exp_after:wN {#1} }
   }
+\cs_new_protected:Npn \tl_gput_left:Nv #1#2
+  {
+    \__kernel_tl_gset:Nx #1
+      { \exp_not:v {#2} \__kernel_exp_not:w \exp_after:wN {#1} }
+  }
 \cs_new_protected:Npn \tl_gput_left:No #1#2
   {
     \__kernel_tl_gset:Nx #1
@@ -3456,10 +3466,12 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
   { \__kernel_tl_gset:Nx #1 { #2 \__kernel_exp_not:w \exp_after:wN {#1} } }
 \cs_generate_variant:Nn \tl_put_left:Nn  { c }
 \cs_generate_variant:Nn \tl_put_left:NV  { c }
+\cs_generate_variant:Nn \tl_put_left:Nv  { c }
 \cs_generate_variant:Nn \tl_put_left:No  { c }
 \cs_generate_variant:Nn \tl_put_left:Nx  { c }
 \cs_generate_variant:Nn \tl_gput_left:Nn { c }
 \cs_generate_variant:Nn \tl_gput_left:NV { c }
+\cs_generate_variant:Nn \tl_gput_left:NV { c }
 \cs_generate_variant:Nn \tl_gput_left:No { c }
 \cs_generate_variant:Nn \tl_gput_left:Nx { c }
 \cs_new_protected:Npn \tl_put_right:Nn #1#2
@@ -3469,6 +3481,11 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
     \__kernel_tl_set:Nx #1
       { \__kernel_exp_not:w \exp_after:wN {#1} \exp_not:V #2 }
   }
+\cs_new_protected:Npn \tl_put_right:Nv #1#2
+  {
+    \__kernel_tl_set:Nx #1
+      { \__kernel_exp_not:w \exp_after:wN {#1} \exp_not:v {#2} }
+  }
 \cs_new_protected:Npn \tl_put_right:No #1#2
   {
     \__kernel_tl_set:Nx #1
@@ -3486,6 +3503,11 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
     \__kernel_tl_gset:Nx #1
       { \__kernel_exp_not:w \exp_after:wN {#1} \exp_not:V #2 }
   }
+\cs_new_protected:Npn \tl_gput_right:Nv #1#2
+  {
+    \__kernel_tl_gset:Nx #1
+      { \__kernel_exp_not:w \exp_after:wN {#1} \exp_not:v {#2} }
+  }
 \cs_new_protected:Npn \tl_gput_right:No #1#2
   {
     \__kernel_tl_gset:Nx #1
@@ -3498,10 +3520,12 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
   { \__kernel_tl_gset:Nx #1 { \__kernel_exp_not:w \exp_after:wN {#1} #2 } }
 \cs_generate_variant:Nn \tl_put_right:Nn  { c }
 \cs_generate_variant:Nn \tl_put_right:NV  { c }
+\cs_generate_variant:Nn \tl_put_right:Nv  { c }
 \cs_generate_variant:Nn \tl_put_right:No  { c }
 \cs_generate_variant:Nn \tl_put_right:Nx  { c }
 \cs_generate_variant:Nn \tl_gput_right:Nn { c }
 \cs_generate_variant:Nn \tl_gput_right:NV { c }
+\cs_generate_variant:Nn \tl_gput_right:Nv { c }
 \cs_generate_variant:Nn \tl_gput_right:No { c }
 \cs_generate_variant:Nn \tl_gput_right:Nx { c }
 \quark_new:N \q__tl_nil
@@ -3552,10 +3576,10 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
     \group_end:
     #1 #2 {#3}
   }
-\cs_generate_variant:Nn \tl_set_rescan:Nnn  {     Nno , Nnx }
-\cs_generate_variant:Nn \tl_set_rescan:Nnn  { c , cno , cnx }
-\cs_generate_variant:Nn \tl_gset_rescan:Nnn {     Nno , Nnx }
-\cs_generate_variant:Nn \tl_gset_rescan:Nnn { c , cno }
+\cs_generate_variant:Nn \tl_set_rescan:Nnn  {     NnV , Nno , Nnx }
+\cs_generate_variant:Nn \tl_set_rescan:Nnn  { c , cnV , cno , cnx }
+\cs_generate_variant:Nn \tl_gset_rescan:Nnn {     NnV , Nno , Nnx }
+\cs_generate_variant:Nn \tl_gset_rescan:Nnn { c , cnV , cno , cnx }
 \cs_new_protected:Npn \__tl_set_rescan:nNN #1
   {
     \int_compare:nNnTF \tex_newlinechar:D < 0
@@ -3619,10 +3643,14 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
   { \__tl_replace:NnNNNnn \q__tl_mark ? \__tl_replace_next:w \__kernel_tl_set:Nx  }
 \cs_new_protected:Npn \tl_greplace_all:Nnn
   { \__tl_replace:NnNNNnn \q__tl_mark ? \__tl_replace_next:w \__kernel_tl_gset:Nx }
-\cs_generate_variant:Nn \tl_replace_once:Nnn  { Nxx , c , cxx }
-\cs_generate_variant:Nn \tl_greplace_once:Nnn { Nxx , c , cxx }
-\cs_generate_variant:Nn \tl_replace_all:Nnn   { Nxx , c , cxx }
-\cs_generate_variant:Nn \tl_greplace_all:Nnn  { Nxx , c , cxx }
+\cs_generate_variant:Nn \tl_replace_once:Nnn
+  { NV , NnV , Nx , Nnx , Nxx , c , cV , cnV , cx , cnx , cxx }
+\cs_generate_variant:Nn \tl_greplace_once:Nnn
+  { NV , NnV , Nx , Nnx , Nxx , c , cV , cnV , cx , cnx , cxx }
+\cs_generate_variant:Nn \tl_replace_all:Nnn
+  { NV , NnV , Nx , Nnx , Nxx , c , cV , cnV , cx , cnx , cxx }
+\cs_generate_variant:Nn \tl_greplace_all:Nnn
+  { NV , NnV , Nx , Nnx , Nxx , c , cV , cnV , cx , cnx , cxx }
 \cs_new_protected:Npn \__tl_replace:NnNNNnn #1#2#3#4#5#6#7
   {
     \tl_if_empty:nTF {#6}
@@ -3683,14 +3711,14 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
   { \tl_replace_once:Nnn #1 {#2} { } }
 \cs_new_protected:Npn \tl_gremove_once:Nn #1#2
   { \tl_greplace_once:Nnn #1 {#2} { } }
-\cs_generate_variant:Nn \tl_remove_once:Nn  { Nx , c , cx }
-\cs_generate_variant:Nn \tl_gremove_once:Nn { Nx , c , cx }
+\cs_generate_variant:Nn \tl_remove_once:Nn  { NV , Nx , c , cV , cx }
+\cs_generate_variant:Nn \tl_gremove_once:Nn { NV , Nx , c , cV , cx }
 \cs_new_protected:Npn \tl_remove_all:Nn #1#2
   { \tl_replace_all:Nnn #1 {#2} { } }
 \cs_new_protected:Npn \tl_gremove_all:Nn #1#2
   { \tl_greplace_all:Nnn #1 {#2} { } }
-\cs_generate_variant:Nn \tl_remove_all:Nn  { Nx , c , cx }
-\cs_generate_variant:Nn \tl_gremove_all:Nn { Nx , c , cx }
+\cs_generate_variant:Nn \tl_remove_all:Nn  { NV , Nx , c , cV , cx }
+\cs_generate_variant:Nn \tl_gremove_all:Nn { NV , Nx , c , cV , cx }
 \prg_new_conditional:Npnn \tl_if_empty:N #1 { p , T , F , TF }
   {
     \if_meaning:w #1 \c_empty_tl
@@ -3710,7 +3738,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
     \fi:
   }
 \prg_generate_conditional_variant:Nnn \tl_if_empty:n
-  { V } { p , TF , T , F }
+  { V , e } { p , TF , T , F }
 \cs_new:Npn \__tl_if_empty_if:o #1
   {
     \if:w \scan_stop: \__kernel_tl_to_str:w \exp_after:wN {#1} \scan_stop:
@@ -3766,11 +3794,12 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
       \prg_return_false:
     \fi:
   }
+\prg_generate_conditional_variant:Nnn \tl_if_eq:nn { V , nV , x , nx } { TF , T , F }
 \cs_new_protected:Npn \tl_if_in:NnT  { \exp_args:No \tl_if_in:nnT  }
 \cs_new_protected:Npn \tl_if_in:NnF  { \exp_args:No \tl_if_in:nnF  }
 \cs_new_protected:Npn \tl_if_in:NnTF { \exp_args:No \tl_if_in:nnTF }
 \prg_generate_conditional_variant:Nnn \tl_if_in:Nn
-  { c } { T , F , TF }
+  { NV , c , cV } { T , F , TF }
 \prg_new_protected_conditional:Npnn \tl_if_in:nn #1#2 { T  , F , TF }
   {
     \scan_stop:
@@ -3781,7 +3810,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
     \if_false: } \fi:
   }
 \prg_generate_conditional_variant:Nnn \tl_if_in:nn
-  { V , o , no } { T , F , TF }
+  { V , o , nV , no } { T , F , TF }
 \cs_set_protected:Npn \__tl_tmp:w #1
   {
     \prg_new_conditional:Npnn \tl_if_novalue:n ##1
@@ -3900,7 +3929,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
   { \prg_map_break:Nn \tl_map_break: { } }
 \cs_new:Npn \tl_map_break:n
   { \prg_map_break:Nn \tl_map_break: }
-\cs_generate_variant:Nn \tl_to_str:n { o , V , v }
+\cs_generate_variant:Nn \tl_to_str:n { o , V , v , e }
 \cs_new:Npn \tl_to_str:N #1 { \__kernel_tl_to_str:w \exp_after:wN {#1} }
 \cs_generate_variant:Nn \tl_to_str:N { c }
 \cs_new:Npn \tl_use:N #1
@@ -4230,7 +4259,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
           {#1}
       }
   }
-\cs_generate_variant:Nn \tl_reverse:n { o , V }
+\cs_generate_variant:Nn \tl_reverse:n { o , V , f , e }
 \cs_new:Npn \__tl_reverse_normal:N
   { \__tl_act_reverse_output:n }
 \cs_new:Npn \__tl_reverse_group_preserve:n #1
@@ -4630,7 +4659,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
   }
 \cs_new:Npn \__str_case:nnTF #1#2#3#4
   { \__str_case:nw {#1} #2 {#1} { } \s__str_mark {#3} \s__str_mark {#4} \s__str_stop }
-\cs_generate_variant:Nn \str_case:nn   { V , o , nV , nv }
+\cs_generate_variant:Nn \str_case:nn   { V , o , e , nV , nv }
 \prg_generate_conditional_variant:Nnn \str_case:nn
   { V , o , nV , nv } { T , F , TF }
 \cs_new_eq:NN \str_case:Nn   \str_case:Vn
@@ -5298,8 +5327,8 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
   }
 \cs_new:Npn \__seq_set_split:w #1 \__seq_set_split_end:
   { \__seq_wrap_item:n {#1} }
-\cs_generate_variant:Nn \seq_set_split:Nnn  { NnV }
-\cs_generate_variant:Nn \seq_gset_split:Nnn { NnV }
+\cs_generate_variant:Nn \seq_set_split:Nnn  { NV , NnV , NVV , Nnx , Nxx }
+\cs_generate_variant:Nn \seq_gset_split:Nnn { NV , NnV , NVV , Nnx , Nxx }
 \cs_generate_variant:Nn \seq_set_split_keep_spaces:Nnn  { NnV }
 \cs_generate_variant:Nn \seq_gset_split_keep_spaces:Nnn { NnV }
 \cs_new_protected:Npn \seq_concat:NNN #1#2#3
@@ -5383,8 +5412,8 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
     #1 #2 {#2}
     \__seq_pop_item_def:
   }
-\cs_generate_variant:Nn \seq_remove_all:Nn  { c }
-\cs_generate_variant:Nn \seq_gremove_all:Nn { c }
+\cs_generate_variant:Nn \seq_remove_all:Nn  { NV , Nx , c , cV , cx }
+\cs_generate_variant:Nn \seq_gremove_all:Nn { NV , Nx , c , cV , cx }
 \cs_new_eq:NN \__seq_int_eval:w \tex_numexpr:D
 \cs_new_protected:Npn \seq_set_item:Nnn #1#2#3
   { \__seq_set_item:NnnNN #1 {#2} {#3} \__kernel_tl_set:Nx \use_i:nn }
@@ -5678,7 +5707,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
       { \prg_break:n { \exp_not:n {#3} } }
       { \exp_args:Nf \__seq_item:nwn { \int_eval:n { #1 - 1 } } }
   }
-\cs_generate_variant:Nn \seq_item:Nn { c }
+\cs_generate_variant:Nn \seq_item:Nn { NV , Ne , c , cV , ce }
 \cs_new:Npn \seq_rand_item:N #1
   {
     \seq_if_empty:NF #1
@@ -6422,6 +6451,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
     \prg_break_point:Nn \scan_stop: { \int_gdecr:N \g__kernel_prg_map_int }
   }
 \cs_new_eq:NN \int_to_arabic:n \int_eval:n
+\cs_generate_variant:Nn \int_to_arabic:n { v }
 \cs_new:Npn \int_to_symbols:nnn #1#2#3
   {
     \int_compare:nNnTF {#1} > {#2}
@@ -7538,6 +7568,15 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
       \int_const:Nn \c_sys_year_int  { \__sys_tmp:w \year }
     \group_end:
   }
+\__sys_everyjob:n
+  {
+    \str_const:Nx \c_sys_timestamp_str
+      {
+        \cs_if_exist:NTF \tex_directlua:D
+          { \tex_directlua:D { tex.print(pdf.getcreationdate()) } }
+          { \tex_creationdate:D }
+      }
+  }
 \__sys_everyjob:n
   {
     \cs_new:Npn \sys_rand_seed: { \tex_the:D \tex_randomseed:D }
@@ -9324,8 +9363,8 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
       { \tl_set:Nn #3 {##2} }
       { \tl_set:Nn #3 { \q_no_value } }
   }
-\cs_generate_variant:Nn \prop_get:NnN {     NV , Nv , No }
-\cs_generate_variant:Nn \prop_get:NnN { c , cV , cv , co }
+\cs_generate_variant:Nn \prop_get:NnN {     NV , Nv , No , Nx }
+\cs_generate_variant:Nn \prop_get:NnN { c , cV , cv , co , cx , cnc }
 \cs_new_protected:Npn \prop_pop:NnN #1#2#3
   {
     \__prop_split:NnTF #1 {#2}
@@ -9358,7 +9397,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
     \str_if_eq:eeT {#1} {#2}
       { \prop_map_break:n { \exp_not:n {#3} } }
   }
-\cs_generate_variant:Nn \prop_item:Nn { c }
+\cs_generate_variant:Nn \prop_item:Nn { NV , No , Ne , c , cV , co , ce }
 \cs_new:Npn \prop_count:N #1
   {
     \int_eval:n
@@ -9423,13 +9462,13 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
       { #1 #2 { \exp_not:o {#2} \l__prop_internal_tl } }
   }
 \cs_generate_variant:Nn \prop_put:Nnn
-  {     NnV , Nno , Nne , Nnx , NV , NVV , NVx , Nvx , No , Noo , Nxx }
+  {     NnV , Nno , Nne , Nnx , NV , NVV , NVx , Nvx , No , Nx , NxV , Noo , Nxx }
 \cs_generate_variant:Nn \prop_put:Nnn
-  { c , cnV , cno , cne , cnx , cV , cVV , cVx , cvx , co , coo , cxx }
+  { c , cnV , cno , cne , cnx , cV , cVV , cVx , cvx , co , cx , cxV , coo , cxx }
 \cs_generate_variant:Nn \prop_gput:Nnn
-  {     NnV , Nno , Nne , Nnx , NV , NVV , NVx , Nvx , No , Noo , Nxx }
+  {     NnV , Nno , Nne , Nnx , NV , NVV , NVx , Nvx , No , Nx , NxV , Noo , Nxx }
 \cs_generate_variant:Nn \prop_gput:Nnn
-  { c , cnV , cno , cne , cnx , cV , cVV , cVx , cvx , co , coo , cxx }
+  { c , cnV , cno , cne , cnx , cV , cVV , cVx , cvx , co , cx , cxV , coo , cxx }
 \cs_new_protected:Npn \prop_put_if_new:Nnn
   { \__prop_put_if_new:NNnn \__kernel_tl_set:Nx }
 \cs_new_protected:Npn \prop_gput_if_new:Nnn
@@ -9481,7 +9520,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
       { \prg_return_false: }
   }
 \prg_generate_conditional_variant:Nnn \prop_get:NnN
-  { NV , Nv , No , c , cV , cv , co } { T , F , TF }
+  { NV , Nv , No , Nx , c , cV , cv , co , cx , cnc } { T , F , TF }
 \cs_new:Npn \prop_map_function:NN #1#2
   {
     \exp_after:wN \use_i_ii:nnn
@@ -9601,8 +9640,10 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
     \__msg_chk_free:nn {#1} {#2}
     \msg_gset:nnnn {#1} {#2}
   }
+\cs_generate_variant:Nn \msg_new:nnnn { nnxx }
 \cs_new_protected:Npn \msg_new:nnn #1#2#3
   { \msg_new:nnnn {#1} {#2} {#3} { } }
+\cs_generate_variant:Nn \msg_new:nnn { nnx }
 \cs_new_protected:Npn \msg_set:nnnn #1#2#3#4
   {
     \cs_set:cpn { \c__msg_text_prefix_tl #1 / #2 }
@@ -9820,6 +9861,9 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
         { \exp_not:c { msg_ #1 :nnnnnn } {##1} {##2} {##3} { } { } { } }
       \cs_new_protected:cpx { msg_ #1 :nn } ##1##2
         { \exp_not:c { msg_ #1 :nnnnnn } {##1} {##2} { } { } { } { } }
+      \cs_generate_variant:cn { msg_ #1 :nnn } { nnV }
+      \cs_generate_variant:cn { msg_ #1 :nnnn } { nnVV , nnVn , nnnV , nnnx }
+      \cs_generate_variant:cn { msg_ #1 :nnnnn } { nnnxx }
       \cs_new_protected:cpx { msg_ #1 :nnxxxx } ##1##2##3##4##5##6
         {
           \use:x
@@ -10812,7 +10856,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
         \__iow_open_stream:NV #1 \l__iow_file_name_tl
       }
   }
-\cs_generate_variant:Nn \iow_open:Nn { c }
+\cs_generate_variant:Nn \iow_open:Nn { NV , c , cV }
 \cs_new_protected:Npn \__iow_open_stream:Nn #1#2
   {
     \tex_global:D \tex_chardef:D #1 = \l__iow_stream_tl \scan_stop:
@@ -10899,7 +10943,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
     \__kernel_iow_with:Nnn \tex_newlinechar:D { `\^^J }
       { \tex_immediate:D \tex_write:D #1 { \exp_not:n {#2} } }
   }
-\cs_generate_variant:Nn \iow_now:Nn { c, Nx, cx }
+\cs_generate_variant:Nn \iow_now:Nn { NV , Nx , c , cV , cx }
 \cs_set_protected:Npn \iow_log:x  { \iow_now:Nx \c_log_iow  }
 \cs_new_protected:Npn \iow_log:n  { \iow_now:Nn \c_log_iow  }
 \cs_set_protected:Npn \iow_term:x { \iow_now:Nx \c_term_iow }
@@ -11693,6 +11737,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
       { \prg_return_true: }
       { \prg_return_false: }
   }
+\prg_generate_conditional_variant:Nnn \file_if_exist:n { V } { T , F , TF }
 \cs_new_protected:Npn \file_if_exist_input:n #1
   {
     \file_get_full_name:nNT {#1} \l__file_full_name_tl
@@ -11716,6 +11761,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
       { \__file_input:V \l__file_full_name_tl }
       { \__kernel_file_missing:n {#1} }
   }
+\cs_generate_variant:Nn \file_input:n { V }
 \cs_new_protected:Npx \__file_input:n #1
   {
     \exp_not:N \clist_if_exist:NTF \exp_not:N \@filelist
@@ -12756,6 +12802,8 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
   \char_set_catcode_active:n { `\= }
   \__keyval_tmp:w , =
 \group_end:
+\cs_generate_variant:Nn \keyval_parse:NNn { NNV , NNv }
+\cs_generate_variant:Nn \keyval_parse:nnn { nnV , nnv }
 \group_begin:
   \cs_set_protected:Npn \__keyval_tmp:w #1#2
     {
@@ -26509,15 +26557,19 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
     \__regex_if_match:nn { \__regex_build:n {#1} } {#2}
     \__regex_return:
   }
+\prg_generate_conditional_variant:Nnn \regex_match:nn { nV } { T , F , TF }
 \prg_new_protected_conditional:Npnn \regex_match:Nn #1#2 { T , F , TF }
   {
     \__regex_if_match:nn { \__regex_build:N #1 } {#2}
     \__regex_return:
   }
+\prg_generate_conditional_variant:Nnn \regex_match:Nn { NV } { T , F , TF }
 \cs_new_protected:Npn \regex_count:nnN #1
   { \__regex_count:nnN { \__regex_build:n {#1} } }
 \cs_new_protected:Npn \regex_count:NnN #1
   { \__regex_count:nnN { \__regex_build:N #1 } }
+\cs_generate_variant:Nn \regex_count:nnN { nV }
+\cs_generate_variant:Nn \regex_count:NnN { NV }
 \cs_new_protected:Npn \regex_match_case:nnTF #1#2#3
   {
     \__regex_match_case:nnTF {#1} {#2}
@@ -26540,6 +26592,11 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
       { #1 { \__regex_build:n {##1} } {##2} ##3 \__regex_return: }
     \prg_new_protected_conditional:Npnn #3 ##1##2##3 { T , F , TF }
       { #1 { \__regex_build:N  ##1  } {##2} ##3 \__regex_return: }
+    \cs_generate_variant:Nn #2 { nV }
+    \prg_generate_conditional_variant:Nnn #2 { nV } { T , F , TF }
+    \cs_generate_variant:Nn #3 { NV }
+    \prg_generate_conditional_variant:Nnn #3 { NV } { T , F , TF }
+
   }
 \__regex_tmp:w \__regex_extract_once:nnN
   \regex_extract_once:nnN \regex_extract_once:NnN
diff --git a/texmf/tex/latex/l3kernel/expl3-generic.tex b/texmf/tex/latex/l3kernel/expl3-generic.tex
index 3dea1b9a..45d89a2b 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-08-11}%
+\def\ExplFileDate{2023-08-29}%
 \let\ExplLoaderFileDate\ExplFileDate
 \begingroup
   \catcode`\_=11
diff --git a/texmf/tex/latex/l3kernel/expl3.ltx b/texmf/tex/latex/l3kernel/expl3.ltx
index 5f2416d2..2cbd97f2 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-08-11}%
+\def\ExplFileDate{2023-08-29}%
 \let\ExplLoaderFileDate\ExplFileDate
 \begingroup
   \catcode`\_=11
diff --git a/texmf/tex/latex/l3kernel/expl3.sty b/texmf/tex/latex/l3kernel/expl3.sty
index c41e065d..ddd58a9a 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-08-11}%
+\def\ExplFileDate{2023-08-29}%
 \let\ExplLoaderFileDate\ExplFileDate
 \ProvidesPackage{expl3}
   [%





More information about the latex3-commits mailing list.