[latex3-commits] [git/LaTeX3-latex3-latex2e] develop: Update l3backend and l3kernel to 2022-08-23 (0ef3f9ea)

Joseph Wright joseph.wright at morningstar2.co.uk
Tue Aug 23 10:04:23 CEST 2022


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

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

commit 0ef3f9ea1e8424c0bc59261f036be810c4826a3c
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date:   Tue Aug 23 08:07:39 2022 +0100

    Update l3backend and l3kernel to 2022-08-23


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

0ef3f9ea1e8424c0bc59261f036be810c4826a3c
 base/testfiles-ltmarks/xmarks-001.tlg            |   2 +-
 base/testfiles-ltmarks/xmarks-004.tlg            |   4 +-
 base/testfiles/github-0710.tlg                   |  18 +--
 base/testfiles/github-0735.tlg                   |   2 +-
 base/testfiles/github-0892.tlg                   |   2 +-
 base/testfiles/m3expl009.tlg                     |  16 +--
 texmf/tex/latex/l3backend/l3backend-dvipdfmx.def |  30 ++---
 texmf/tex/latex/l3backend/l3backend-dvips.def    |  30 ++---
 texmf/tex/latex/l3backend/l3backend-dvisvgm.def  |  30 ++---
 texmf/tex/latex/l3backend/l3backend-luatex.def   |  42 +++---
 texmf/tex/latex/l3backend/l3backend-pdftex.def   |  42 +++---
 texmf/tex/latex/l3backend/l3backend-xetex.def    |  30 ++---
 texmf/tex/latex/l3kernel/expl3-code.tex          | 161 ++++++++++++++++++-----
 texmf/tex/latex/l3kernel/expl3-generic.tex       |   2 +-
 texmf/tex/latex/l3kernel/expl3.ltx               |   2 +-
 texmf/tex/latex/l3kernel/expl3.sty               |   2 +-
 16 files changed, 234 insertions(+), 181 deletions(-)

diff --git a/base/testfiles-ltmarks/xmarks-001.tlg b/base/testfiles-ltmarks/xmarks-001.tlg
index 409f232d..fb97b20a 100644
--- a/base/testfiles-ltmarks/xmarks-001.tlg
+++ b/base/testfiles-ltmarks/xmarks-001.tlg
@@ -156,7 +156,7 @@ marks does not exist.
 !second foo!
 ! Use of \??? doesn't match its definition.
 <argument> \???  
-                 ! LaTeX3 Error: Erroneous variable \g__mark_mistake_top_foo...
+                 ! LaTeX Error: Erroneous variable \g__mark_mistake_top_foo_...
 l. ...\TopMark[mistake]{foo}
 If you say, e.g., `\def\a1{...}', then you must always
 put `1' after `\a', since control sequence names are
diff --git a/base/testfiles-ltmarks/xmarks-004.tlg b/base/testfiles-ltmarks/xmarks-004.tlg
index 03a7776f..623e1f67 100644
--- a/base/testfiles-ltmarks/xmarks-004.tlg
+++ b/base/testfiles-ltmarks/xmarks-004.tlg
@@ -146,7 +146,7 @@ Marks: baz in OR (twoside-even first column):
     column (second):|\__mark_error:n {last-column}|\__mark_error:n {last-column}|\__mark_error:n {last-column}|
 ! Use of \??? doesn't match its definition.
 <argument> \???  
-                 ! LaTeX3 Error: Erroneous variable \g__mark_page_top_foobar...
+                 ! LaTeX Error: Erroneous variable \g__mark_page_top_foobar_...
 l. ...\TopMark{foobar}
                         % does not exist
 If you say, e.g., `\def\a1{...}', then you must always
@@ -155,7 +155,7 @@ made up of letters only. The macro here has not been
 followed by the required stuff, so I'm ignoring it.
 ! Use of \??? doesn't match its definition.
 <argument> \???  
-                 ! LaTeX3 Error: Erroneous variable \g__mark_page_first_foob...
+                 ! LaTeX Error: Erroneous variable \g__mark_page_first_fooba...
 l. ...\FirstMark{foobar}
                           % does not exist
 If you say, e.g., `\def\a1{...}', then you must always
diff --git a/base/testfiles/github-0710.tlg b/base/testfiles/github-0710.tlg
index b383404f..08a9a426 100644
--- a/base/testfiles/github-0710.tlg
+++ b/base/testfiles/github-0710.tlg
@@ -7,15 +7,15 @@ Author: Joseph Wright
 \mypkgtest ...my at A :\my at B :\my at C :\my at D }\show \x 
                                                   \endgroup 
 l. ...\mypkgtest
-LaTeX3 Warning: Package "mypkg" has already been loaded: ignoring load-time
-(LaTeX3)        option "load-option-A".
+LaTeX Warning: Package "mypkg" has already been loaded: ignoring load-time
+(LaTeX)        option "load-option-A".
 > \x=macro:
 ->111:::.
 \mypkgtest ...my at A :\my at B :\my at C :\my at D }\show \x 
                                                   \endgroup 
 l. ...\mypkgtest
-LaTeX3 Warning: Package "mypkg" has already been loaded: ignoring load-time
-(LaTeX3)        option "load-option-A".
+LaTeX Warning: Package "mypkg" has already been loaded: ignoring load-time
+(LaTeX)        option "load-option-A".
 > \x=macro:
 ->111::333:.
 \mypkgtest ...my at A :\my at B :\my at C :\my at D }\show \x 
@@ -26,15 +26,15 @@ l. ...\mypkgtest
 \mypkgtest ...my at A :\my at B :\my at C :\my at D }\show \x 
                                                   \endgroup 
 l. ...\mypkgtest
-LaTeX3 Warning: Package "mypkg" has already been loaded: ignoring load-time
-(LaTeX3)        option "load-option-B".
+LaTeX Warning: Package "mypkg" has already been loaded: ignoring load-time
+(LaTeX)        option "load-option-B".
 > \x=macro:
 ->111::333:.
 \mypkgtest ...my at A :\my at B :\my at C :\my at D }\show \x 
                                                   \endgroup 
 l. ...\mypkgtest
-! LaTeX3 Error: Key "load-option-A" may only be used during loading of package
-(LaTeX3)        "mypkg".
+! LaTeX Error: Key "load-option-A" may only be used during loading of package
+(LaTeX)        "mypkg".
 For immediate help type H <return>.
  ...                                              
 l. ...\SetKeys[mypkg]{load-option-A = 666}
@@ -56,7 +56,7 @@ l. ...\mypkgtest
 \mypkgtest ...my at A :\my at B :\my at C :\my at D }\show \x 
                                                   \endgroup 
 l. ...\mypkgtest
-! LaTeX3 Error: Key "preamble-option-D" may only be used in the preamble.
+! LaTeX Error: Key "preamble-option-D" may only be used in the preamble.
 For immediate help type H <return>.
  ...                                              
 l. ...  preamble-option-D = 999}
diff --git a/base/testfiles/github-0735.tlg b/base/testfiles/github-0735.tlg
index 92136bd3..d456a70c 100644
--- a/base/testfiles/github-0735.tlg
+++ b/base/testfiles/github-0735.tlg
@@ -44,7 +44,7 @@ TEST 3:  Unknown variant
 ============================================================
 ! Use of \??? doesn't match its definition.
 <argument> \???  
-                 ! LaTeX3 Error: Unknown arg expansion "XX"
+                 ! LaTeX Error: Unknown arg expansion "XX"
 l. ...  }
 If you say, e.g., `\def\a1{...}', then you must always
 put `1' after `\a', since control sequence names are
diff --git a/base/testfiles/github-0892.tlg b/base/testfiles/github-0892.tlg
index d1915ff3..298f0ea5 100644
--- a/base/testfiles/github-0892.tlg
+++ b/base/testfiles/github-0892.tlg
@@ -28,7 +28,7 @@ Package: l3keys2e-package ....-..-.. v... test
 You gave `check' for option1 (again)
 You gave `more stuff' for option2
 You gave `extra stuff' for option4
-! LaTeX3 Error: Unknown option 'option5' for package l3keys2e-package.
+! LaTeX Error: Unknown option 'option5' for package l3keys2e-package.
 For immediate help type H <return>.
  ...                                              
 l. ...^^M
diff --git a/base/testfiles/m3expl009.tlg b/base/testfiles/m3expl009.tlg
index 7ee74eea..f112c804 100644
--- a/base/testfiles/m3expl009.tlg
+++ b/base/testfiles/m3expl009.tlg
@@ -3,12 +3,12 @@ Don't change this file in any respect.
 \cnta=\count...
 (../expl3.sty
 Package: expl3 ....-..-.. L3 programming layer (loader) 
-! LaTeX3 Error: Mismatched LaTeX support files detected.
-(LaTeX3)        Loading 'expl3.sty' aborted!
-(LaTeX3)        
-(LaTeX3)        The L3 programming layer in the LaTeX format
-(LaTeX3)        is dated ....-..-.., but in your TeX tree the files require
-(LaTeX3)        at least ....-..-...
+! LaTeX Error: Mismatched LaTeX support files detected.
+(LaTeX)        Loading 'expl3.sty' aborted!
+(LaTeX)        
+(LaTeX)        The L3 programming layer in the LaTeX format
+(LaTeX)        is dated ....-..-.., but in your TeX tree the files require
+(LaTeX)        at least ....-..-...
 For immediate help type H <return>.
  ...                                              
 l. ...     \ExplLoaderFileDate{expl3.sty}}
@@ -24,8 +24,8 @@ later errors. Please ensure that your LaTeX format is correctly regenerated.
 Package: expl3 ....-..-.. L3 programming layer (loader) 
 ) (../expl3.sty
 Package: expl3 ....-..-.. L3 programming layer (loader) 
-! LaTeX3 Error: Mismatched LaTeX support files detected.
-(LaTeX3)        Loading 'expl3.sty' aborted!
+! LaTeX Error: Mismatched LaTeX support files detected.
+(LaTeX)        Loading 'expl3.sty' aborted!
 For immediate help type H <return>.
  ...                                              
 l. ...     \ExplLoaderFileDate{expl3.sty}}
diff --git a/texmf/tex/latex/l3backend/l3backend-dvipdfmx.def b/texmf/tex/latex/l3backend/l3backend-dvipdfmx.def
index 3f0a4e3c..7146ee10 100644
--- a/texmf/tex/latex/l3backend/l3backend-dvipdfmx.def
+++ b/texmf/tex/latex/l3backend/l3backend-dvipdfmx.def
@@ -26,7 +26,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-dvipdfmx.def}{2022-08-05}{}
+  {l3backend-dvipdfmx.def}{2022-08-23}{}
   {L3 backend support: dvipdfmx}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {
@@ -66,27 +66,21 @@
 \cs_new_protected:Npn \__kernel_backend_scope_end:
   { \__kernel_backend_literal:n { x:grestore } }
 %% File: l3backend-color.dtx
-\cs_new_protected:Npn \__color_backend_pickup:N #1 { }
-\cs_if_exist:cT { ver at color.sty }
+\cs_new_protected:Npn \__color_backend_pickup:N #1
   {
-    \cs_set_protected:Npn \__color_backend_pickup:N #1
+    \exp_args:NV \tl_if_head_is_space:nTF \current at color
       {
-        \exp_args:NV \tl_if_head_is_space:nTF \current at color
-          {
-            \tl_set:Nx #1
-               {
-                 { named }
-                 { \exp_after:wN \use:n \current at color }
-               }
-          }
-          {
-            \exp_last_unbraced:Nx \__color_backend_pickup:w
-              { \current at color } \s__color_stop #1
-          }
+        \tl_set:Nn #1 { { gray } { 0 } }
+        \msg_warning:nnx { color } { unhandled }
+          { \current at color }
+      }
+      {
+        \exp_last_unbraced:Nx \__color_backend_pickup:w
+          { \current at color } \s__color_stop #1
       }
-    \cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \s__color_stop #3
-      { \tl_set:Nn #3 { {#1} {#2} } }
   }
+\cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \s__color_stop #3
+  { \tl_set:Nn #3 { {#1} {#2} } }
 \cs_new_protected:Npn \__color_backend_select:n #1
   { \__kernel_backend_literal:n { pdf : bc ~ [ #1 ] } }
 \cs_new_eq:NN \__color_backend_select_cmyk:n \__color_backend_select:n
diff --git a/texmf/tex/latex/l3backend/l3backend-dvips.def b/texmf/tex/latex/l3backend/l3backend-dvips.def
index 4d561e6b..b7efe7a6 100644
--- a/texmf/tex/latex/l3backend/l3backend-dvips.def
+++ b/texmf/tex/latex/l3backend/l3backend-dvips.def
@@ -26,7 +26,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-dvips.def}{2022-08-05}{}
+  {l3backend-dvips.def}{2022-08-23}{}
   {L3 backend support: dvips}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {
@@ -83,27 +83,21 @@
 \cs_new_protected:Npn \__kernel_backend_scope_end:
   { \__kernel_backend_literal:n { ps:grestore } }
 %% File: l3backend-color.dtx
-\cs_new_protected:Npn \__color_backend_pickup:N #1 { }
-\cs_if_exist:cT { ver at color.sty }
+\cs_new_protected:Npn \__color_backend_pickup:N #1
   {
-    \cs_set_protected:Npn \__color_backend_pickup:N #1
+    \exp_args:NV \tl_if_head_is_space:nTF \current at color
       {
-        \exp_args:NV \tl_if_head_is_space:nTF \current at color
-          {
-            \tl_set:Nx #1
-               {
-                 { named }
-                 { \exp_after:wN \use:n \current at color }
-               }
-          }
-          {
-            \exp_last_unbraced:Nx \__color_backend_pickup:w
-              { \current at color } \s__color_stop #1
-          }
+        \tl_set:Nn #1 { { gray } { 0 } }
+        \msg_warning:nnx { color } { unhandled }
+          { \current at color }
+      }
+      {
+        \exp_last_unbraced:Nx \__color_backend_pickup:w
+          { \current at color } \s__color_stop #1
       }
-    \cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \s__color_stop #3
-      { \tl_set:Nn #3 { {#1} {#2} } }
   }
+\cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \s__color_stop #3
+  { \tl_set:Nn #3 { {#1} {#2} } }
 \cs_new_protected:Npn \__color_backend_select_cmyk:n #1
   { \__color_backend_select:n { cmyk ~ #1 } }
 \cs_new_protected:Npn \__color_backend_select_gray:n #1
diff --git a/texmf/tex/latex/l3backend/l3backend-dvisvgm.def b/texmf/tex/latex/l3backend/l3backend-dvisvgm.def
index b9a97cca..3f20aef6 100644
--- a/texmf/tex/latex/l3backend/l3backend-dvisvgm.def
+++ b/texmf/tex/latex/l3backend/l3backend-dvisvgm.def
@@ -26,7 +26,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-dvisvgm.def}{2022-08-05}{}
+  {l3backend-dvisvgm.def}{2022-08-23}{}
   {L3 backend support: dvisvgm}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {
@@ -97,27 +97,21 @@
   }
 \cs_generate_variant:Nn \__kernel_backend_scope:n { x }
 %% File: l3backend-color.dtx
-\cs_new_protected:Npn \__color_backend_pickup:N #1 { }
-\cs_if_exist:cT { ver at color.sty }
+\cs_new_protected:Npn \__color_backend_pickup:N #1
   {
-    \cs_set_protected:Npn \__color_backend_pickup:N #1
+    \exp_args:NV \tl_if_head_is_space:nTF \current at color
       {
-        \exp_args:NV \tl_if_head_is_space:nTF \current at color
-          {
-            \tl_set:Nx #1
-               {
-                 { named }
-                 { \exp_after:wN \use:n \current at color }
-               }
-          }
-          {
-            \exp_last_unbraced:Nx \__color_backend_pickup:w
-              { \current at color } \s__color_stop #1
-          }
+        \tl_set:Nn #1 { { gray } { 0 } }
+        \msg_warning:nnx { color } { unhandled }
+          { \current at color }
+      }
+      {
+        \exp_last_unbraced:Nx \__color_backend_pickup:w
+          { \current at color } \s__color_stop #1
       }
-    \cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \s__color_stop #3
-      { \tl_set:Nn #3 { {#1} {#2} } }
   }
+\cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \s__color_stop #3
+  { \tl_set:Nn #3 { {#1} {#2} } }
 \cs_new_protected:Npn \__color_backend_select_cmyk:n #1
   { \__color_backend_select:n { cmyk ~ #1 } }
 \cs_new_protected:Npn \__color_backend_select_gray:n #1
diff --git a/texmf/tex/latex/l3backend/l3backend-luatex.def b/texmf/tex/latex/l3backend/l3backend-luatex.def
index 8b056a25..9be08080 100644
--- a/texmf/tex/latex/l3backend/l3backend-luatex.def
+++ b/texmf/tex/latex/l3backend/l3backend-luatex.def
@@ -26,7 +26,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-luatex.def}{2022-08-05}{}
+  {l3backend-luatex.def}{2022-08-23}{}
   {L3 backend support: PDF output (LuaTeX)}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {
@@ -82,34 +82,26 @@
   }
 \cs_generate_variant:Nn \__kernel_backend_matrix:n { x }
 %% File: l3backend-color.dtx
-\cs_new_protected:Npn \__color_backend_pickup:N #1 { }
-\cs_if_exist:cT { ver at color.sty }
+\cs_new_protected:Npn \__color_backend_pickup:N #1
   {
-    \cs_set_protected:Npn \__color_backend_pickup:N #1
-      {
-        \exp_last_unbraced:Nx \__color_backend_pickup:w
-          { \current at color } ~ 0 ~ 0 ~ 0 \s__color_stop #1
-      }
-    \cs_new_protected:Npn \__color_backend_pickup:w
-      #1 ~ #2 ~ #3 ~ #4 ~ #5 ~ #6 \s__color_stop #7
+    \exp_last_unbraced:Nx \__color_backend_pickup:w
+      { \current at color } ~ 0 ~ 0 ~ 0 \s__color_stop #1
+  }
+\cs_new_protected:Npn \__color_backend_pickup:w
+  #1 ~ #2 ~ #3 ~ #4 ~ #5 ~ #6 \s__color_stop #7
+  {
+    \str_if_eq:nnTF {#2} { g }
+      { \tl_set:Nn #7 { { gray } {#1} } }
       {
-        \str_if_eq:nnTF {#2} { g }
-          { \tl_set:Nn #7 { { gray } {#1} } }
+        \str_if_eq:nnTF {#4} { rg }
+          { \tl_set:Nn #7 { { rgb } { #1 ~ #2 ~ #3 } } }
           {
-            \str_if_eq:nnTF {#4} { rg }
-              { \tl_set:Nn #7 { { rgb } { #1 ~ #2 ~ #3 } } }
+            \str_if_eq:nnTF {#5} { k }
+              { \tl_set:Nn #7 { { cmyk } { #1 ~ #2 ~ #3 ~ #4 } } }
               {
-                 \str_if_eq:nnTF {#5} { k }
-                   { \tl_set:Nn #7 { { cmyk } { #1 ~ #2 ~ #3 ~ #4 } } }
-                   {
-                     \str_if_eq:nnTF {#2} { cs }
-                       {
-                         \tl_set:Nx #7 { { \use:n #1 } { #5 } }
-                       }
-                       {
-                         \tl_set:Nn #7 { { gray } { 0 } }
-                       }
-                   }
+                \tl_set:Nn #1 { { gray } { 0 } }
+                \msg_warning:nnx { color } { unhandled }
+                  { \current at color }
               }
           }
       }
diff --git a/texmf/tex/latex/l3backend/l3backend-pdftex.def b/texmf/tex/latex/l3backend/l3backend-pdftex.def
index 2bcf56a2..4d5b03c0 100644
--- a/texmf/tex/latex/l3backend/l3backend-pdftex.def
+++ b/texmf/tex/latex/l3backend/l3backend-pdftex.def
@@ -26,7 +26,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-pdftex.def}{2022-08-05}{}
+  {l3backend-pdftex.def}{2022-08-23}{}
   {L3 backend support: PDF output (pdfTeX)}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {
@@ -82,34 +82,26 @@
   }
 \cs_generate_variant:Nn \__kernel_backend_matrix:n { x }
 %% File: l3backend-color.dtx
-\cs_new_protected:Npn \__color_backend_pickup:N #1 { }
-\cs_if_exist:cT { ver at color.sty }
+\cs_new_protected:Npn \__color_backend_pickup:N #1
   {
-    \cs_set_protected:Npn \__color_backend_pickup:N #1
-      {
-        \exp_last_unbraced:Nx \__color_backend_pickup:w
-          { \current at color } ~ 0 ~ 0 ~ 0 \s__color_stop #1
-      }
-    \cs_new_protected:Npn \__color_backend_pickup:w
-      #1 ~ #2 ~ #3 ~ #4 ~ #5 ~ #6 \s__color_stop #7
+    \exp_last_unbraced:Nx \__color_backend_pickup:w
+      { \current at color } ~ 0 ~ 0 ~ 0 \s__color_stop #1
+  }
+\cs_new_protected:Npn \__color_backend_pickup:w
+  #1 ~ #2 ~ #3 ~ #4 ~ #5 ~ #6 \s__color_stop #7
+  {
+    \str_if_eq:nnTF {#2} { g }
+      { \tl_set:Nn #7 { { gray } {#1} } }
       {
-        \str_if_eq:nnTF {#2} { g }
-          { \tl_set:Nn #7 { { gray } {#1} } }
+        \str_if_eq:nnTF {#4} { rg }
+          { \tl_set:Nn #7 { { rgb } { #1 ~ #2 ~ #3 } } }
           {
-            \str_if_eq:nnTF {#4} { rg }
-              { \tl_set:Nn #7 { { rgb } { #1 ~ #2 ~ #3 } } }
+            \str_if_eq:nnTF {#5} { k }
+              { \tl_set:Nn #7 { { cmyk } { #1 ~ #2 ~ #3 ~ #4 } } }
               {
-                 \str_if_eq:nnTF {#5} { k }
-                   { \tl_set:Nn #7 { { cmyk } { #1 ~ #2 ~ #3 ~ #4 } } }
-                   {
-                     \str_if_eq:nnTF {#2} { cs }
-                       {
-                         \tl_set:Nx #7 { { \use:n #1 } { #5 } }
-                       }
-                       {
-                         \tl_set:Nn #7 { { gray } { 0 } }
-                       }
-                   }
+                \tl_set:Nn #1 { { gray } { 0 } }
+                \msg_warning:nnx { color } { unhandled }
+                  { \current at color }
               }
           }
       }
diff --git a/texmf/tex/latex/l3backend/l3backend-xetex.def b/texmf/tex/latex/l3backend/l3backend-xetex.def
index 2fa8d2ce..29e2cc7c 100644
--- a/texmf/tex/latex/l3backend/l3backend-xetex.def
+++ b/texmf/tex/latex/l3backend/l3backend-xetex.def
@@ -26,7 +26,7 @@
 %% 
 %% File: l3backend-basics.dtx
 \ProvidesExplFile
-  {l3backend-xetex.def}{2022-08-05}{}
+  {l3backend-xetex.def}{2022-08-23}{}
   {L3 backend support: XeTeX}
 \cs_if_exist:NTF \__kernel_dependency_version_check:nn
   {
@@ -66,27 +66,21 @@
 \cs_new_protected:Npn \__kernel_backend_scope_end:
   { \__kernel_backend_literal:n { x:grestore } }
 %% File: l3backend-color.dtx
-\cs_new_protected:Npn \__color_backend_pickup:N #1 { }
-\cs_if_exist:cT { ver at color.sty }
+\cs_new_protected:Npn \__color_backend_pickup:N #1
   {
-    \cs_set_protected:Npn \__color_backend_pickup:N #1
+    \exp_args:NV \tl_if_head_is_space:nTF \current at color
       {
-        \exp_args:NV \tl_if_head_is_space:nTF \current at color
-          {
-            \tl_set:Nx #1
-               {
-                 { named }
-                 { \exp_after:wN \use:n \current at color }
-               }
-          }
-          {
-            \exp_last_unbraced:Nx \__color_backend_pickup:w
-              { \current at color } \s__color_stop #1
-          }
+        \tl_set:Nn #1 { { gray } { 0 } }
+        \msg_warning:nnx { color } { unhandled }
+          { \current at color }
+      }
+      {
+        \exp_last_unbraced:Nx \__color_backend_pickup:w
+          { \current at color } \s__color_stop #1
       }
-    \cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \s__color_stop #3
-      { \tl_set:Nn #3 { {#1} {#2} } }
   }
+\cs_new_protected:Npn \__color_backend_pickup:w #1 ~ #2 \s__color_stop #3
+  { \tl_set:Nn #3 { {#1} {#2} } }
 \cs_new_protected:Npn \__color_backend_select:n #1
   { \__kernel_backend_literal:n { pdf : bc ~ [ #1 ] } }
 \cs_new_eq:NN \__color_backend_select_cmyk:n \__color_backend_select:n
diff --git a/texmf/tex/latex/l3kernel/expl3-code.tex b/texmf/tex/latex/l3kernel/expl3-code.tex
index 3ef89d63..e23ee371 100644
--- a/texmf/tex/latex/l3kernel/expl3-code.tex
+++ b/texmf/tex/latex/l3kernel/expl3-code.tex
@@ -70,7 +70,7 @@
 %% and all files in that bundle must be distributed together.
 %% 
 %% File: expl3.dtx
-\def\ExplFileDate{2022-08-05}%
+\def\ExplFileDate{2022-08-23}%
 \begingroup
   \def\next{\endgroup}%
   \expandafter\ifx\csname PackageError\endcsname\relax
@@ -10156,7 +10156,6 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
       { #1 ~ }
   }
 \prop_new:N \g_msg_module_name_prop
-\prop_gput:Nnn \g_msg_module_name_prop { LaTeX } { LaTeX3 }
 \prop_new:N \g_msg_module_type_prop
 \prop_gput:Nnn \g_msg_module_type_prop { LaTeX } { }
 \cs_new:Npn \msg_module_type:n #1
@@ -10808,7 +10807,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
   { Backend~request~inconsistent~with~engine:~using~'#2'~backend. }
   {
     You~have~requested~backend~'#1',~but~this~is~not~suitable~for~use~with~the~
-    active~engine.~LaTeX3~will~use~the~'#2'~backend~instead.
+    active~engine.~LaTeX~will~use~the~'#2'~backend~instead.
   }
 \cs_set_protected:Npn \__msg_tmp:w #1
   {
@@ -10847,7 +10846,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
 \cs_generate_variant:Nn \msg_expandable_error:nnnnn  { nnfff }
 \cs_generate_variant:Nn \msg_expandable_error:nnnn   { nnff }
 \cs_generate_variant:Nn \msg_expandable_error:nnn    { nnf }
-\prop_gput:Nnn \g_msg_module_name_prop { kernel } { LaTeX3 }
+\prop_gput:Nnn \g_msg_module_name_prop { kernel } { LaTeX }
 \prop_gput:Nnn \g_msg_module_type_prop { kernel } { }
 \clist_map_inline:nn
   {
@@ -10855,12 +10854,12 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
     quark , prg , prop , scanmark , seq , sys
   }
   {
-    \prop_gput:Nnn \g_msg_module_name_prop {#1} { LaTeX3 }
+    \prop_gput:Nnn \g_msg_module_name_prop {#1} { LaTeX }
     \prop_gput:Nnn \g_msg_module_type_prop {#1} { }
   }
-\prop_gput:Nnn \g_msg_module_name_prop { LaTeX / cmd } { LaTeX3 }
+\prop_gput:Nnn \g_msg_module_name_prop { LaTeX / cmd } { LaTeX }
 \prop_gput:Nnn \g_msg_module_type_prop { LaTeX / cmd } { }
-\prop_gput:Nnn \g_msg_module_name_prop { LaTeX / ltcmd } { LaTeX3 }
+\prop_gput:Nnn \g_msg_module_name_prop { LaTeX / ltcmd } { LaTeX }
 \prop_gput:Nnn \g_msg_module_type_prop { LaTeX / ltcmd } { }
 %% File: l3file.dtx
 \tl_new:N  \l__ior_internal_tl
@@ -13081,7 +13080,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
   { Misplaced~'='~in~key-value~input~\msg_line_context: }
 \msg_new:nnn { keyval } { blank-key-name }
   { Blank~key~name~in~key-value~input~\msg_line_context: }
-\prop_gput:Nnn \g_msg_module_name_prop { keyval } { LaTeX3 }
+\prop_gput:Nnn \g_msg_module_name_prop { keyval } { LaTeX }
 \prop_gput:Nnn \g_msg_module_type_prop { keyval } { }
 \group_begin:
   \cs_set_protected:Npn \__keyval_tmp:w #1
@@ -14314,7 +14313,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
       { is~undefined. }
       { has~the~properties: #2 . }
   }
-\prop_gput:Nnn \g_msg_module_name_prop { keys } { LaTeX3 }
+\prop_gput:Nnn \g_msg_module_name_prop { keys } { LaTeX }
 \prop_gput:Nnn \g_msg_module_type_prop { keys } { }
 %% File: l3intarray.dtx
 \msg_new:nnn { kernel } { negative-array-size }
@@ -15056,7 +15055,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
     '\token_to_str:N \fp_to_tl:N',~or~other~
     conversion~functions.
   }
-\prop_gput:Nnn \g_msg_module_name_prop { fp } { LaTeX3 }
+\prop_gput:Nnn \g_msg_module_name_prop { fp } { LaTeX }
 \prop_gput:Nnn \g_msg_module_type_prop { fp } { }
 %% File: l3fp-traps.dtx
 \flag_new:n { fp_invalid_operation }
@@ -21394,7 +21393,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
     you~tried~to~interleave~them.~LaTeX~will~try~to~proceed,~
     but~results~may~be~unexpected.
   }
-\prop_gput:Nnn \g_msg_module_name_prop { cctab } { LaTeX3 }
+\prop_gput:Nnn \g_msg_module_name_prop { cctab } { LaTeX }
 \prop_gput:Nnn \g_msg_module_type_prop { cctab } { }
 %% File l3sort.dtx
 \seq_new:N \g__sort_internal_seq
@@ -21814,7 +21813,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
     \iow_char:N\\sort_return_swapped: ~multiple~times.~
     Exactly~one~of~these~should~be~called.
   }
-\prop_gput:Nnn \g_msg_module_name_prop { sort } { LaTeX3 }
+\prop_gput:Nnn \g_msg_module_name_prop { sort } { LaTeX }
 \prop_gput:Nnn \g_msg_module_type_prop { sort } { }
 %% File: l3str-convert.dtx
 \cs_new_protected:Npn \__str_tmp:w { }
@@ -22594,10 +22593,10 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
   }
 \prg_new_conditional:Npnn \__str_if_escape_string:N #1 { TF }
   {
-    \if_int_compare:w `#1 < "21 \exp_stop_f:
+    \if_int_compare:w `#1 < "27 \exp_stop_f:
       \prg_return_false:
     \else:
-      \if_int_compare:w `#1 > "7E \exp_stop_f:
+      \if_int_compare:w `#1 > "7A \exp_stop_f:
         \prg_return_false:
       \else:
         \prg_return_true:
@@ -22698,7 +22697,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
         Unicode~limits~code~points~to~the~range~[0,1114111].
       }
   }
-\prop_gput:Nnn \g_msg_module_name_prop { str } { LaTeX3 }
+\prop_gput:Nnn \g_msg_module_name_prop { str } { LaTeX }
 \prop_gput:Nnn \g_msg_module_type_prop { str } { }
 \cs_new_protected:cpn { __str_convert_decode_utf8: }
   {
@@ -27767,7 +27766,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
     \tl_if_empty:nTF {#1} { variable~ #2 } { {#1} } :
     #3
   }
-\prop_gput:Nnn \g_msg_module_name_prop { regex } { LaTeX3 }
+\prop_gput:Nnn \g_msg_module_name_prop { regex } { LaTeX }
 \prop_gput:Nnn \g_msg_module_type_prop { regex } { }
 \cs_new:Npn \__regex_msg_repeated:nnN #1#2#3
   {
@@ -28491,10 +28490,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
 \cs_new_eq:NN \color_group_begin: \group_begin:
 \cs_new_eq:NN \color_group_end:   \group_end:
 \cs_new_protected:Npn \color_ensure_current:
-  {
-    \__color_backend_pickup:N \l__color_current_tl
-    \__color_select:N \l__color_current_tl
-  }
+  { \__color_select:N \l__color_current_tl }
 \scan_new:N \s__color_stop
 \cs_new_protected:Npn \__color_select:N #1
   {
@@ -28511,7 +28507,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
 \int_new:N \l__color_internal_int
 \tl_new:N \l__color_internal_tl
 \scan_new:N \s__color_mark
-\prg_new_conditional:Npnn \__color_if_defined:n #1 { T, F, TF }
+\prg_new_conditional:Npnn \color_if_exist:n #1 { p , T, F, TF }
   {
     \prop_if_exist:cTF { l__color_named_ #1 _prop }
       {
@@ -28578,14 +28574,21 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
   { #1 }
 \cs_new:Npn \__color_convert_rgb_cmyk:w #1 ~ #2 ~ #3 \s__color_stop
   {
-    \exp_args:Nf \__color_convert_rgb_cmyk:nnnn
-      { \fp_eval:n { min ( 1 - #1 , 1 - #2 , 1 - #3 ) } } {#1} {#2} {#3}
+    \exp_args:Neee \__color_convert_rgb_cmyk:nnn
+       { \fp_eval:n { 1 - #1 } }
+       { \fp_eval:n { 1 - #2 } }
+       { \fp_eval:n { 1 - #3 } }
+  }
+\cs_new:Npn \__color_convert_rgb_cmyk:nnn #1#2#3
+  {
+    \exp_args:Ne \__color_convert_rgb_cmyk:nnnn
+      { \fp_eval:n { min( #1, #2 , #3 ) } } {#1} {#2} {#3}
   }
 \cs_new:Npn \__color_convert_rgb_cmyk:nnnn #1#2#3#4
   {
-    \fp_eval:n { min ( 1 , max ( 0 , 1 - #2 - #1 ) ) } \c_space_tl
-    \fp_eval:n { min ( 1 , max ( 0 , 1 - #3 - #1 ) ) } \c_space_tl
-    \fp_eval:n { min ( 1 , max ( 0 , 1 - #4 - #1 ) ) } \c_space_tl
+    \fp_eval:n { min ( 1 , max ( 0 , #2 - #1 ) ) } \c_space_tl
+    \fp_eval:n { min ( 1 , max ( 0 , #3 - #1 ) ) } \c_space_tl
+    \fp_eval:n { min ( 1 , max ( 0 , #4 - #1 ) ) } \c_space_tl
     #1
   }
 \cs_new:Npn \__color_convert_cmyk_gray:w #1 ~ #2 ~ #3 ~ #4 \s__color_stop
@@ -28604,7 +28607,6 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
 \tl_new:N \l__color_next_value_tl
 \cs_new_protected:Npx \__color_parse:nN #1#2
   {
-    \exp_not:N \__color_backend_pickup:N \exp_not:N \l__color_current_tl
     \tl_set:Nx \exp_not:c { l__color_named_ . _tl }
       { \exp_not:N \__color_model:N \exp_not:N \l__color_current_tl }
     \prop_put:NVx \exp_not:c { l__color_named_ . _prop }
@@ -28615,7 +28617,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
   }
 \cs_new_protected:Npn \__color_parse_aux:nN #1#2
   {
-    \__color_if_defined:nTF {#1}
+    \color_if_exist:nTF {#1}
       { \__color_parse_set_eq:Nn #2 {#1} }
       { \__color_parse:Nw #2#1 ! \s__color_stop }
     \__color_check_model:N #2
@@ -28648,7 +28650,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
   }
 \cs_new_protected:Npn \__color_parse:Nw #1#2 ! #3 \s__color_stop
   {
-    \__color_if_defined:nTF {#2}
+    \color_if_exist:nTF {#2}
       {
         \tl_if_blank:nTF {#3}
           { \__color_parse_set_eq:Nn #1 {#2} }
@@ -28696,7 +28698,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
   }
 \cs_new_protected:Npn \__color_parse_loop:nn #1#2
   {
-    \__color_if_defined:nTF {#2}
+    \color_if_exist:nTF {#2}
       {
         \__color_extract:nNN {#2} \l__color_next_model_tl \l__color_next_value_tl
         \tl_if_eq:NNF \l__color_model_tl \l__color_next_model_tl
@@ -28930,6 +28932,41 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
   }
 \cs_new:Npn \__color_parse_model_wave_rho:n #1
   { \fp_eval:n { min(1, max(0,#1) ) } }
+\cs_new:Npn \__color_parse_model_cmy:w #1 , #2 , #3 , #4 \s__color_stop
+  {
+    { cmyk }
+    { \__color_convert_rgb_cmyk:nnn {#1} {#2} {#3} }
+  }
+\cs_new:Npn \__color_parse_model_tHsb:w #1 , #2 , #3 , #4 \s__color_stop
+  {
+    \exp_args:Ne \__color_parse_model_hsb:nnn
+      { \__color_parse_model_tHsb:n {#1} } {#2} {#3}
+  }
+\cs_new:Npn \__color_parse_model_tHsb:n #1
+  {
+    \__color_parse_model_tHsb:nw {#1}
+        0 ,   0 ;
+       60 ,  30 ;
+      120 ,  60 ;
+      180 , 120 ;
+      210 , 180 ;
+      240 , 240 ;
+      360 , 360 ;
+      \q_recursion_tail , ;
+      \q_recursion_stop
+  }
+\cs_new:Npn \__color_parse_model_tHsb:nw #1 #2 , #3 ; #4 , #5 ;
+  {
+    \quark_if_recursion_tail_stop_do:nn {#4} { 0 }
+    \fp_compare:nNnTF {#1} > {#4}
+      { \__color_parse_model_tHsb:nw {#1} #4 , #5 ; }
+      {
+        \use_i_delimit_by_q_recursion_stop:nw
+          { \fp_eval:n { ((#1 - #2) / (#4 - #2) * (#5 - #3) + #3) / 360 } }
+      }
+  }
+\cs_new:cpn { __color_parse_model_&spot:w } #1 , #2 \s__color_stop
+  { { gray } { #1 } }
 \tl_new:N \l_color_fixed_model_tl
 \cs_new_protected:Npn \__color_check_model:N #1
   {
@@ -29223,7 +29260,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
   }
 \cs_new_protected:Npn \color_set_eq:nn #1#2
   {
-    \__color_if_defined:nTF {#2}
+    \color_if_exist:nTF {#2}
       {
         \tl_clear_new:c { l__color_named_ #1 _tl }
         \prop_clear_new:c { l__color_named_ #1 _prop }
@@ -30012,7 +30049,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
     #1 { color } { show }
       {#2}
       {
-        \__color_if_defined:nT {#2}
+        \color_if_exist:nT {#2}
           {
             \exp_args:Nv \__color_show:n { l__color_named_ #2 _tl }
             \prop_map_function:cN
@@ -30121,6 +30158,12 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
     \\ \\
     key~was~given~with~the~correct~information.
   }
+\msg_new:nnn { color } { unhandled-model }
+  {
+    Unhandled~color~model~in~LaTeX2e~value~"#1":
+    \\ \\
+    falling~back~on~grayscale.
+  }
 \msg_new:nnnn { color } { unknown-color }
   { Unknown~color~'#1'. }
   {
@@ -30160,7 +30203,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
     LaTeX~has~been~asked~to~create~a~new~color~model~called~'#1',~
     but~this~type~of~model~was~never~set~up.
   }
-\prop_gput:Nnn \g_msg_module_name_prop { color } { LaTeX3 }
+\prop_gput:Nnn \g_msg_module_name_prop { color } { LaTeX }
 \prop_gput:Nnn \g_msg_module_type_prop { color } { }
 \msg_new:nnn { color } { show }
   {
@@ -31597,7 +31640,7 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
     #2
   }
 
-\prop_gput:Nnn \g_msg_module_name_prop { luatex } { LaTeX3 }
+\prop_gput:Nnn \g_msg_module_name_prop { luatex } { LaTeX }
 \prop_gput:Nnn \g_msg_module_type_prop { luatex } { }
 %% File: l3unicode.dtx
 \ior_new:N \g__char_data_ior
@@ -33741,6 +33784,8 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
         { 0179 } { 017A }
         { 017B } { 017C }
         { 017D } { 017E }
+        { 01A0 } { 01A1 }
+        { 01AF } { 01B0 }
         { 01CD } { 01CE }
         { 01CF } { 01D0 }
         { 01D1 } { 01D2 }
@@ -33974,6 +34019,54 @@ Type  H <return>  for immediate help}\def~{\errmessage{%
           \__text_tmp:nnnnnn { upper } {#5} {#6} {#7} {#1} {#2} {#3}
           \__text_tmp:nnnnnn { title } {#5} {#6} {#7} {#1} {#2} {#3}
         }
+      \__text_loop:nn
+        { 1EA0 } { 1EA1 }
+        { 1EA2 } { 1EA3 }
+        { 1EA4 } { 1EA5 }
+        { 1EA6 } { 1EA7 }
+        { 1EA8 } { 1EA9 }
+        { 1EAA } { 1EAB }
+        { 1EAC } { 1EAD }
+        { 1EAE } { 1EAF }
+        { 1EB0 } { 1EB1 }
+        { 1EB2 } { 1EB3 }
+        { 1EB4 } { 1EB5 }
+        { 1EB6 } { 1EB7 }
+        { 1EB8 } { 1EB9 }
+        { 1EBA } { 1EBB }
+        { 1EBC } { 1EBD }
+        { 1EBE } { 1EBF }
+        { 1EC0 } { 1EC1 }
+        { 1EC2 } { 1EC3 }
+        { 1EC4 } { 1EC5 }
+        { 1EC6 } { 1EC7 }
+        { 1EC8 } { 1EC9 }
+        { 1ECA } { 1ECB }
+        { 1ECC } { 1ECD }
+        { 1ECE } { 1ECF }
+        { 1ED0 } { 1ED1 }
+        { 1ED2 } { 1ED3 }
+        { 1ED4 } { 1ED5 }
+        { 1ED6 } { 1ED7 }
+        { 1ED8 } { 1ED9 }
+        { 1EDA } { 1EDB }
+        { 1EDC } { 1EDD }
+        { 1EDE } { 1EDF }
+        { 1EE0 } { 1EE1 }
+        { 1EE2 } { 1EE3 }
+        { 1EE4 } { 1EE5 }
+        { 1EE6 } { 1EE7 }
+        { 1EE8 } { 1EE9 }
+        { 1EEA } { 1EEB }
+        { 1EEC } { 1EED }
+        { 1EEE } { 1EEF }
+        { 1EF0 } { 1EF1 }
+        { 1EF2 } { 1EF3 }
+        { 1EF4 } { 1EF5 }
+        { 1EF6 } { 1EF7 }
+        { 1EF8 } { 1EF9 }
+        \q_recursion_tail ?
+        \q_recursion_stop
       \__text_loop:nn
         { 1F08 } { 1F00 }
         { 1F09 } { 1F01 }
diff --git a/texmf/tex/latex/l3kernel/expl3-generic.tex b/texmf/tex/latex/l3kernel/expl3-generic.tex
index 88cd00c7..2bb475c1 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{2022-08-05}%
+\def\ExplFileDate{2022-08-23}%
 \let\ExplLoaderFileDate\ExplFileDate
 \begingroup
   \catcode`\_=11
diff --git a/texmf/tex/latex/l3kernel/expl3.ltx b/texmf/tex/latex/l3kernel/expl3.ltx
index 98aeaab7..9e63d6fa 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{2022-08-05}%
+\def\ExplFileDate{2022-08-23}%
 \let\ExplLoaderFileDate\ExplFileDate
 \begingroup
   \catcode`\_=11
diff --git a/texmf/tex/latex/l3kernel/expl3.sty b/texmf/tex/latex/l3kernel/expl3.sty
index bb4e1763..24372534 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{2022-08-05}%
+\def\ExplFileDate{2022-08-23}%
 \let\ExplLoaderFileDate\ExplFileDate
 \ProvidesPackage{expl3}
   [%





More information about the latex3-commits mailing list.