diff options
author | Karl Berry <karl@freefriends.org> | 2020-02-11 22:10:31 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-02-11 22:10:31 +0000 |
commit | e3b4a159cf41e3aa51b8a48e50ec38fc7f6d51b6 (patch) | |
tree | b17591d4fde382db56bcf7931e5721a4e8a84431 /Master/texmf-dist/source/latex/l3kernel/l3keys.dtx | |
parent | 5e49fa64bd451d499e66784df6f9a437f8b3ab71 (diff) |
l3kernel (11feb20)
git-svn-id: svn://tug.org/texlive/trunk@53758 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.dtx | 56 |
1 files changed, 55 insertions, 1 deletions
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx index d172a1a041c..eedd06ad24f 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 2020-02-08} +% \date{Released 2020-02-11} % % \maketitle % @@ -243,6 +243,20 @@ % \meta{value} given for the \meta{key}. % \end{function} % +% \begin{function}[added = 2020-01-11] +% { +% .cs_set:Np, .cs_set:cp, +% .cs_set_protected:Np, .cs_set_protected:cp, +% .cs_gset:Np, .cs_gset:cp, +% .cs_gset_protected:Np, .cs_gset_protected:cp, +% } +% \begin{syntax} +% \meta{key} .cs_set:Np = \meta{control sequence} \meta{arg.~spec.} +% \end{syntax} +% Defines \meta{key} to set \meta{control sequence} to have \meta{arg.~spec.} +% and replacement text \meta{value}. +% \end{function} +% % \begin{function}[updated = 2013-07-09] % {.default:n, .default:V, .default:o, .default:x} % \begin{syntax} @@ -1588,6 +1602,21 @@ % \end{macrocode} % \end{macro} % +% \begin{macro}{\@@_cs_set:NNpn, \@@_cs_set:Ncpn} +% Creating control sequences is a bit more tricky than other cases as +% we need to pick up the |p| argument. To make the internals look clearer, +% the trailing |n| argument here is just for appearance. +% \begin{macrocode} +\cs_new_protected:Npn \@@_cs_set:NNpn #1#2#3# + { + \cs_set_protected:cpx { \c_@@_code_root_str \l_keys_path_str } ##1 + { #1 \exp_not:N #2 \exp_not:n {#3} {##1} } + \use_none:n + } +\cs_generate_variant:Nn \@@_cs_set:NNpn { Nc } +% \end{macrocode} +% \end{macro} +% % \begin{macro}{\@@_default_set:n} % Setting a default value is easy. These are stored using \cs{cs_set:cpx} as this % avoids any worries about whether a token list exists. @@ -1898,6 +1927,31 @@ % \end{macro} % \end{macro} % +% \begin{macro} +% {.cs_set:Np, .cs_set:cp, .cs_set_protected:Np, .cs_set_protected:cp} +% \begin{macro} +% {.cs_gset:Np, .cs_gset:cp, .cs_gset_protected:Np, .cs_gset_protected:cp} +% \begin{macrocode} +\cs_new_protected:cpn { \c_@@_props_root_str .cs_set:Np } #1 + { \@@_cs_set:NNpn \cs_set:Npn #1 { } } +\cs_new_protected:cpn { \c_@@_props_root_str .cs_set:cp } #1 + { \@@_cs_set:Ncpn \cs_set:Npn #1 { } } +\cs_new_protected:cpn { \c_@@_props_root_str .cs_set_protected:Np } #1 + { \@@_cs_set:NNpn \cs_set_protected:Npn #1 { } } +\cs_new_protected:cpn { \c_@@_props_root_str .cs_set_protected:cp } #1 + { \@@_cs_set:Ncpn \cs_set_protected:Npn #1 { } } +\cs_new_protected:cpn { \c_@@_props_root_str .cs_gset:Np } #1 + { \@@_cs_set:NNpn \cs_gset:Npn #1 { } } +\cs_new_protected:cpn { \c_@@_props_root_str .cs_gset:cp } #1 + { \@@_cs_set:Ncpn \cs_gset:Npn #1 { } } +\cs_new_protected:cpn { \c_@@_props_root_str .cs_gset_protected:Np } #1 + { \@@_cs_set:NNpn \cs_gset_protected:Npn #1 { } } +\cs_new_protected:cpn { \c_@@_props_root_str .cs_gset_protected:cp } #1 + { \@@_cs_set:Ncpn \cs_gset_protected:Npn #1 { } } +% \end{macrocode} +% \end{macro} +% \end{macro} +% % \begin{macro}{.default:n, .default:V, .default:o, .default:x} % Expansion is left to the internal functions. % \begin{macrocode} |