[latex3-commits] [git/LaTeX3-latex3-latex2e] develop: Update l3kernel to 2020-05-14 (b9ae84ad)

Joseph Wright joseph.wright at morningstar2.co.uk
Thu May 14 15:52:15 CEST 2020


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

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

commit b9ae84adc5252f7d3fc1baa5fb637f502c111bc6
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date:   Thu May 14 14:52:15 2020 +0100

    Update l3kernel to 2020-05-14


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

b9ae84adc5252f7d3fc1baa5fb637f502c111bc6
 texmf/tex/latex/l3kernel/expl3-code.tex    | 204 ++++++++++++++++++-----------
 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, 131 insertions(+), 79 deletions(-)

diff --git a/texmf/tex/latex/l3kernel/expl3-code.tex b/texmf/tex/latex/l3kernel/expl3-code.tex
index 4e1b9a8b..d68df111 100644
--- a/texmf/tex/latex/l3kernel/expl3-code.tex
+++ b/texmf/tex/latex/l3kernel/expl3-code.tex
@@ -68,7 +68,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2020-05-11}%
+\def\ExplFileDate{2020-05-14}%
 \begingroup
   \def\next{\endgroup}%
   \expandafter\ifx\csname PackageError\endcsname\relax
@@ -12818,92 +12818,144 @@
       \cs_new:Npn \__keyval_loop_active:NNw ##1 ##2 ##3 #1
         {
           \__keyval_if_recursion_tail:w ##3
-            \__keyval_end_loop_active:w \s__keyval_mark \s__keyval_tail
+            \__keyval_end_loop_active:w \s__keyval_tail
           \__keyval_loop_other:NNw ##1 ##2 ##3 , \s__keyval_tail ,
           \__keyval_loop_active:NNw ##1 ##2 \s__keyval_mark
         }
+      \cs_new:Npn \__keyval_split_other:w ##1 = ##2 \s__keyval_mark ##3 ##4 \s__keyval_stop
+        { ##3 ##1 \s__keyval_stop \s__keyval_mark ##2 }
+      \cs_new:Npn \__keyval_split_active:w ##1 #2 ##2 \s__keyval_mark ##3 ##4 \s__keyval_stop
+        { ##3 ##1 \s__keyval_stop \s__keyval_mark ##2 }
       \cs_new:Npn \__keyval_loop_other:NNw ##1 ##2 ##3 ,
         {
           \__keyval_if_recursion_tail:w ##3
-            \__keyval_end_loop_other:w \s__keyval_mark \s__keyval_tail
-          \__keyval_if_has_equal_other:w ##3 = \s__keyval_stop
-            \__keyval_has_false:w \s__keyval_mark \s__keyval_stop \use_i:nn
-            {
-              \__keyval_if_has_equal_active:w ##3 #2 \s__keyval_stop
-                \__keyval_has_false:w \s__keyval_mark \s__keyval_stop \use_i:nn
-                \__keyval_misplaced_equal_error:
-                { \__keyval_split_other:w ##3 = \s__keyval_stop ##2 }
-            }
-            {
-              \__keyval_if_has_equal_active:w ##3 #2 \s__keyval_stop
-                \__keyval_has_false:w \s__keyval_mark \s__keyval_stop \use_i:nn
-                { \__keyval_split_active:w ##3 #2 \s__keyval_stop ##2 }
-                {
-                  \__keyval_if_blank:w ##3 \s__keyval_nil \s__keyval_stop
-                    \__keyval_blank_true:w \s__keyval_mark \s__keyval_stop \use:n
-                    { \__keyval_trim:nN { ##3 } \__keyval_key:nN ##1 }
-                }
-            }
+            \__keyval_end_loop_other:w \s__keyval_tail
+          \__keyval_split_active:w ##3 \s__keyval_nil
+            \s__keyval_mark \__keyval_split_active_auxi:w
+            #2 \s__keyval_mark \__keyval_clean_up_active:w
+            \s__keyval_stop
+          ##1 ##2
           \__keyval_loop_other:NNw ##1 ##2 \s__keyval_mark
         }
-      \cs_new:Npn \__keyval_split_active:w ##1 #2
-        { \__keyval_trim:nN { ##1 } \__keyval_split_active:nw \s__keyval_mark }
-      \cs_new:Npn \__keyval_split_active:nw ##1 ##2 #2 ##3 \s__keyval_stop
+      \cs_new:Npn \__keyval_split_active_auxi:w ##1 \s__keyval_stop
+        {
+          \__keyval_split_other:w ##1 \s__keyval_nil
+            \s__keyval_mark \__keyval_misplaced_equal_after_active_error:w
+            = \s__keyval_mark \__keyval_split_active_auxii:w
+            \s__keyval_stop
+        }
+      \cs_new:Npn \__keyval_split_active_auxii:w
+          ##1 \s__keyval_nil \s__keyval_mark \__keyval_misplaced_equal_after_active_error:w
+          \s__keyval_stop \s__keyval_mark
+        { \__keyval_trim:nN { ##1 } \__keyval_split_active_auxiii:w }
+      \cs_new:Npn \__keyval_split_active_auxiii:w ##1 ##2 \s__keyval_nil
+        {
+          \__keyval_split_active:w ##2 \s__keyval_nil
+            \s__keyval_mark \__keyval_misplaced_equal_in_split_error:w
+            #2 \s__keyval_mark \__keyval_split_active_auxiv:w
+            \s__keyval_stop
+            { ##1 }
+        }
+      \cs_new:Npn \__keyval_split_active_auxiv:w
+          ##1 \s__keyval_nil \s__keyval_mark \__keyval_misplaced_equal_in_split_error:w
+          \s__keyval_stop \s__keyval_mark
+        {
+          \__keyval_split_other:w ##1 \s__keyval_nil
+            \s__keyval_mark \__keyval_misplaced_equal_in_split_error:w
+            = \s__keyval_mark \__keyval_split_active_auxv:w
+            \s__keyval_stop
+        }
+      \cs_new:Npn \__keyval_split_active_auxv:w
+          ##1 \s__keyval_nil \s__keyval_mark \__keyval_misplaced_equal_in_split_error:w
+          \s__keyval_stop \s__keyval_mark
+        { \__keyval_trim:nN { ##1 } \__keyval_pair:nnNN }
+      \cs_new:Npn \__keyval_clean_up_active:w
+          ##1 \s__keyval_nil \s__keyval_mark \__keyval_split_active_auxi:w \s__keyval_stop \s__keyval_mark
+        {
+          \__keyval_split_other:w ##1 \s__keyval_nil
+            \s__keyval_mark \__keyval_split_other_auxi:w
+            = \s__keyval_mark \__keyval_clean_up_other:w
+            \s__keyval_stop
+        }
+      \cs_new:Npn \__keyval_split_other_auxi:w ##1 \s__keyval_stop
+        { \__keyval_trim:nN { ##1 } \__keyval_split_other_auxii:w }
+      \cs_new:Npn \__keyval_split_other_auxii:w ##1 ##2 \s__keyval_nil
+        {
+          \__keyval_split_other:w ##2 \s__keyval_nil
+            \s__keyval_mark \__keyval_misplaced_equal_in_split_error:w
+            = \s__keyval_mark \__keyval_split_other_auxiii:w
+            \s__keyval_stop
+            { ##1 }
+        }
+      \cs_new:Npn \__keyval_split_other_auxiii:w
+          ##1 \s__keyval_nil \s__keyval_mark \__keyval_misplaced_equal_in_split_error:w
+          \s__keyval_stop \s__keyval_mark
+        { \__keyval_trim:nN { ##1 } \__keyval_pair:nnNN }
+      \cs_new:Npn \__keyval_clean_up_other:w
+          ##1 \s__keyval_nil \s__keyval_mark \__keyval_split_other_auxi:w \s__keyval_stop \s__keyval_mark
+        {
+          \__keyval_if_blank:w ##1 \s__keyval_nil \s__keyval_stop \__keyval_blank_true:w
+            \s__keyval_mark \s__keyval_stop \use:n
+            { \__keyval_trim:nN { ##1 } \__keyval_key:nNN }
+        }
+      \cs_new:Npn \__keyval_misplaced_equal_after_active_error:w
+          \s__keyval_mark ##1 \s__keyval_stop \s__keyval_mark ##2 \s__keyval_nil
+          \s__keyval_mark ##3 \s__keyval_nil ##4 ##5
+        {
+          \__kernel_msg_expandable_error:nn
+            { kernel } { misplaced-equals-sign }
+        }
+      \cs_new:Npn \__keyval_misplaced_equal_in_split_error:w
+          \s__keyval_mark ##1 \s__keyval_stop \s__keyval_mark ##2 \s__keyval_nil
+          ##3 ##4 ##5
         {
-          \__keyval_if_empty:w \s__keyval_mark ##3 \s__keyval_stop
-            \__keyval_has_false:w \s__keyval_mark \s__keyval_stop \use_i:nn
-            { \__keyval_misplaced_equal_error: \use_none:n }
-            { \__keyval_trim:nN { ##2 } \__keyval_key_val:nnN { ##1 } }
+          \__kernel_msg_expandable_error:nn
+            { kernel } { misplaced-equals-sign }
         }
-      \cs_new:Npn \__keyval_if_has_equal_active:w ##1 #2
-        { \__keyval_if_empty:w \s__keyval_mark }
+      \cs_new:Npn \__keyval_end_loop_other:w
+          \s__keyval_tail
+          \__keyval_split_active:w ##1 \s__keyval_nil
+          \s__keyval_mark \__keyval_split_active_auxi:w
+          #2 \s__keyval_mark \__keyval_clean_up_active:w
+          \s__keyval_stop
+          ##2 ##3
+          \__keyval_loop_other:NNw ##4 \s__keyval_mark
+        { }
+      \cs_new:Npn \__keyval_end_loop_active:w
+          \s__keyval_tail
+          \__keyval_loop_other:NNw ##1 , \s__keyval_tail ,
+          \__keyval_loop_active:NNw ##2 \s__keyval_mark
+        { }
     }
   \char_set_catcode_active:n { `\, }
   \char_set_catcode_active:n { `\= }
   \__keyval_tmp:NN , =
 \group_end:
-\cs_new:Npn \__keyval_end_loop_active:w
-    \s__keyval_mark \s__keyval_tail
-    \__keyval_loop_other:NNw #1 , \s__keyval_tail ,
-    \__keyval_loop_active:NNw #2 \s__keyval_mark
-  { }
-\cs_new:Npn \__keyval_end_loop_other:w
-    \s__keyval_mark \s__keyval_tail
-    \__keyval_if_has_equal_other:w #1 = \s__keyval_stop
-    \__keyval_has_false:w \s__keyval_mark \s__keyval_stop \use_i:nn
-    #2
-    \__keyval_loop_other:NNw #3 \s__keyval_mark
-  { }
-\cs_new:Npn \__keyval_split_other:w #1 =
-  { \__keyval_trim:nN { #1 } \__keyval_split_other:nw \s__keyval_mark }
-\cs_new:Npn \__keyval_split_other:nw #1 #2 = #3 \s__keyval_stop
-  {
-    \__keyval_if_empty:w \s__keyval_mark #3 \s__keyval_stop
-      \__keyval_has_false:w \s__keyval_mark \s__keyval_stop \use_i:nn
-      { \__keyval_misplaced_equal_error: \use_none:n }
-      { \__keyval_trim:nN { #2 } \__keyval_key_val:nnN { #1 } }
-  }
-\cs_new:Npn \__keyval_key:nN #1 #2
-  { \exp_not:n { #2 { #1 } } }
-\cs_new:Npn \__keyval_key_val:nnN #1 #2 #3
-  {
-    \__keyval_if_empty:w \s__keyval_mark #2 \s__keyval_stop
-      \__keyval_empty_key:w \s__keyval_mark \s__keyval_stop
-    \exp_not:n { #3 { #2 } { #1 } }
-  }
-\cs_new:Npn \__keyval_if_empty:w #1 \s__keyval_mark \s__keyval_stop {}
+\cs_new:Npn \__keyval_pair:nnNN #1 #2 #3 #4
+  {
+    \__keyval_if_blank:w \s__keyval_mark #2 \s__keyval_nil \s__keyval_stop \__keyval_blank_key_error:w
+      \s__keyval_mark \s__keyval_stop
+    \exp_not:n { #4 { #2 } { #1 } }
+  }
+\cs_new:Npn \__keyval_key:nNN #1 #2 #3
+  {
+    \__keyval_if_blank:w \s__keyval_mark #1 \s__keyval_nil \s__keyval_stop \__keyval_blank_key_error:w
+      \s__keyval_mark \s__keyval_stop
+    \exp_not:n { #2 { #1 } }
+  }
+\cs_new:Npn \__keyval_if_empty:w #1 \s__keyval_mark \s__keyval_stop { }
 \cs_new:Npn \__keyval_if_blank:w \s__keyval_mark #1 { \__keyval_if_empty:w \s__keyval_mark }
-\cs_new:Npn \__keyval_if_recursion_tail:w #1 \s__keyval_mark \s__keyval_tail {}
-\cs_new:Npn \__keyval_has_false:w \s__keyval_mark \s__keyval_stop \use_i:nn #1 #2 { #2 }
-\cs_new:Npn \__keyval_blank_true:w \s__keyval_mark \s__keyval_stop \use:n #1 {}
-\cs_new:Npn \__keyval_empty_key:w \s__keyval_mark \s__keyval_stop \exp_not:n #1
-  { \__keyval_misplaced_equal_error: }
-\cs_new:Npn \__keyval_if_has_equal_other:w #1 =
-  { \__keyval_if_empty:w \s__keyval_mark }
-\cs_new:Npn \__keyval_misplaced_equal_error:
-  { \__kernel_msg_expandable_error:nn { kernel } { misplaced-equals-sign } }
+\cs_new:Npn \__keyval_if_recursion_tail:w \s__keyval_mark #1 \s__keyval_tail { }
+\cs_new:Npn \__keyval_blank_true:w \s__keyval_mark \s__keyval_stop \use:n #1 #2 #3 { }
+\cs_new:Npn \__keyval_blank_key_error:w \s__keyval_mark \s__keyval_stop \exp_not:n #1
+  {
+    \__kernel_msg_expandable_error:nn
+      { kernel } { blank-key-name }
+  }
 \__kernel_msg_new:nnn { kernel } { misplaced-equals-sign }
   { Misplaced~equals~sign~in~key-value~input~\msg_line_context: }
+\__kernel_msg_new:nnn { kernel } { blank-key-name }
+  { Blank~key~name~in~key-value~input~\msg_line_context: }
 \group_begin:
   \cs_set_protected:Npn \__keyval_tmp:n #1
     {
@@ -12912,7 +12964,7 @@
           \__keyval_trim_auxi:w
             ##1
             \s__keyval_nil
-            \s__keyval_mark #1 {}
+            \s__keyval_mark #1 { }
             \s__keyval_mark \__keyval_trim_auxii:w
             \__keyval_trim_auxiii:w
             #1 \s__keyval_nil
@@ -13005,11 +13057,11 @@
     \cs_if_exist:cTF { \c__keys_props_root_str \l__keys_property_str }
       { \__keys_define_code:n {#2} }
       {
-         \str_if_empty:NF \l__keys_property_str
-           {
-             \__kernel_msg_error:nnxx { kernel } { key-property-unknown }
-               { \l__keys_property_str } { \l_keys_path_str }
-           }
+        \str_if_empty:NF \l__keys_property_str
+          {
+            \__kernel_msg_error:nnxx { kernel } { key-property-unknown }
+              { \l__keys_property_str } { \l_keys_path_str }
+          }
       }
   }
 \cs_new_protected:Npn \__keys_property_find:n #1
@@ -13772,7 +13824,7 @@
           }
           {
             \__kernel_msg_error:nnxx { kernel } { key-unknown }
-             { \l_keys_path_str } { \l__keys_module_str }
+              { \l_keys_path_str } { \l__keys_module_str }
           }
       }
   }
diff --git a/texmf/tex/latex/l3kernel/expl3-generic.tex b/texmf/tex/latex/l3kernel/expl3-generic.tex
index ca20bd59..d81e7eaf 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{2020-05-11}%
+\def\ExplFileDate{2020-05-14}%
 \let\ExplLoaderFileDate\ExplFileDate
 \begingroup
   \def\tempa{LaTeX2e}%
diff --git a/texmf/tex/latex/l3kernel/expl3.ltx b/texmf/tex/latex/l3kernel/expl3.ltx
index 0cf5f0fd..e6563192 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{2020-05-11}%
+\def\ExplFileDate{2020-05-14}%
 \let\ExplLoaderFileDate\ExplFileDate
 \everyjob\expandafter{\the\everyjob
   \message{L3 programming layer <\ExplFileDate>}%
diff --git a/texmf/tex/latex/l3kernel/expl3.sty b/texmf/tex/latex/l3kernel/expl3.sty
index b962ab36..ad6f7625 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{2020-05-11}%
+\def\ExplFileDate{2020-05-14}%
 \let\ExplLoaderFileDate\ExplFileDate
 \ProvidesPackage{expl3}
   [%





More information about the latex3-commits mailing list.