summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-10-18 20:31:59 +0000
committerKarl Berry <karl@freefriends.org>2018-10-18 20:31:59 +0000
commitf78ef933642c4be9fd32c6ec1d846912f751ae65 (patch)
treebeb179870f7e226889c112201a34ab0ff5dde4c2 /Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
parentcd9c32dfd264eb7b5dc559f8a8355140b63d12ba (diff)
l3 (18oct18)
git-svn-id: svn://tug.org/texlive/trunk@48935 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/l3kernel/l3keys.dtx')
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3keys.dtx25
1 files changed, 22 insertions, 3 deletions
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
index 7195061bfcc..e58e9631338 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx
@@ -41,7 +41,7 @@
% }^^A
% }
%
-% \date{Released 2018-09-24}
+% \date{Released 2018-10-17}
%
% \maketitle
%
@@ -1207,6 +1207,12 @@
% \end{macrocode}
% \end{variable}
%
+% \begin{variable}{\l_@@_inherit_tl}
+% \begin{macrocode}
+\tl_new:N \l_@@_inherit_tl
+% \end{macrocode}
+% \end{variable}
+%
% \begin{variable}{\l_@@_property_tl}
% The \enquote{property} begin set for a key at definition time is
% stored here.
@@ -2339,6 +2345,7 @@
\cs_if_exist:cT
{ \c_@@_code_root_tl ##1 / \l_keys_key_tl }
{
+ \tl_set:Nn \l_@@_inherit_tl {##1}
\cs:w \c_@@_code_root_tl ##1 / \l_keys_key_tl
\exp_after:wN \cs_end: \exp_after:wN
{ \l_keys_value_tl }
@@ -2384,6 +2391,7 @@
% \end{macro}
%
% \begin{macro}[EXP]{\@@_choice_find:n}
+% \begin{macro}[EXP]{\@@_choice_find:nn}
% \begin{macro}[EXP]{\@@_multichoice_find:n}
% Executing a choice has two parts. First, try the choice given, then
% if that fails call the unknown key. That always exists, as it is created
@@ -2392,14 +2400,25 @@
% \begin{macrocode}
\cs_new:Npn \@@_choice_find:n #1
{
- \@@_execute:nn { \l_keys_path_tl / \@@_remove_spaces:n {#1} }
- { \@@_execute:nn { \l_keys_path_tl / unknown } { } }
+ \tl_if_empty:NTF \l_@@_inherit_tl
+ { \@@_choice_find:nn { \l_keys_path_tl } {#1} }
+ {
+ \@@_choice_find:nn
+ { \l_@@_inherit_tl / \l_keys_key_tl } {#1}
+ }
+ }
+\cs_new:Npn \@@_choice_find:nn #1#2
+ {
+ \cs_if_exist:cTF { \c_@@_code_root_tl #1 / \@@_remove_spaces:n {#2} }
+ { \use:c { \c_@@_code_root_tl #1 / \@@_remove_spaces:n {#2} } {#2} }
+ { \use:c { \c_@@_code_root_tl #1 / unknown } {#2} }
}
\cs_new:Npn \@@_multichoice_find:n #1
{ \clist_map_function:nN {#1} \@@_choice_find:n }
% \end{macrocode}
% \end{macro}
% \end{macro}
+% \end{macro}
%
% \subsection{Utilities}
%