From 7710aef62454bfc451d8cc0643d2707643d05bb0 Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Thu, 25 May 2023 20:56:40 +0000
Subject: l3kernel (24may23)

git-svn-id: svn://tug.org/texlive/trunk@67219 c570f23f-e606-0410-a88d-b1316a301751
---
 Master/texmf-dist/source/latex/l3kernel/l3keys.dtx | 24 +++++++++++++++-------
 1 file changed, 17 insertions(+), 7 deletions(-)

(limited to 'Master/texmf-dist/source/latex/l3kernel/l3keys.dtx')

diff --git a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
index 64a301d906b..84d5bc1d968 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
@@ -43,7 +43,7 @@
 %    }^^A
 % }
 %
-% \date{Released 2023-05-15}
+% \date{Released 2023-05-22}
 %
 % \maketitle
 %
@@ -1888,7 +1888,7 @@
     \@@_cmd_set_direct:nn { \l_keys_path_str / unknown }
       {
         \msg_error:nnx { keys } { boolean-values-only }
-          \l_keys_key_str
+          \l_keys_path_str
       }
     \@@_default_set:n { true }
   }
@@ -2063,6 +2063,8 @@
 %
 % \begin{macro}{\@@_initialise:n}
 %   A set up for initialisation: just run the code if it exists.
+%   We need to set the key string here, using the deprecated \texttt{tl}
+%   as a piece of scratch space.
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_initialise:n #1
   {
@@ -2072,7 +2074,13 @@
       {
         \str_clear:N \l_@@_inherit_str
         \cs_if_exist:cT { \c_@@_code_root_str \l_keys_path_str }
-          { \@@_execute:nn \l_keys_path_str {#1} }
+          {
+            \exp_after:wN \@@_find_key_module:wNN
+              \l_keys_path_str \s_@@_stop
+                \l_keys_key_tl \l_keys_key_str
+            \tl_set_eq:NN \l_keys_key_tl \l_keys_key_str
+            \@@_execute:nn \l_keys_path_str {#1}
+          }
       }
   }
 %    \end{macrocode}
@@ -2097,7 +2105,7 @@
     \@@_cmd_set:nn { \l_keys_path_str / unknown }
       {
         \msg_error:nnx { keys } { boolean-values-only }
-          \l_keys_key_str
+          \l_keys_path_str
       }
     \@@_default_set:n { true }
     \cs_if_exist:cF { if#1 }
@@ -2112,20 +2120,22 @@
 %
 % \begin{macro}{\@@_meta_make:n}
 % \begin{macro}{\@@_meta_make:nn}
-%   To create a meta-key, simply set up to pass data through.
+%   To create a meta-key, simply set up to pass data through. The internal
+%   function is used here as a meta key should respect the prevailing
+%   filtering, etc.
 %    \begin{macrocode}
 \cs_new_protected:Npn \@@_meta_make:n #1
   {
     \exp_args:NVo \@@_cmd_set_direct:nn \l_keys_path_str
       {
-        \exp_after:wN \keys_set:nn \exp_after:wN 
+        \exp_after:wN \@@_set:nn \exp_after:wN 
           { \l_@@_module_str } {#1}
       }
   }
 \cs_new_protected:Npn \@@_meta_make:nn #1#2
   {
     \exp_args:NV \@@_cmd_set_direct:nn
-      \l_keys_path_str { \keys_set:nn {#1} {#2} }
+      \l_keys_path_str { \@@_set:nn {#1} {#2} }
   }
 %    \end{macrocode}
 % \end{macro}
-- 
cgit v1.2.3

