diff options
author | Karl Berry <karl@freefriends.org> | 2011-09-16 22:35:41 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2011-09-16 22:35:41 +0000 |
commit | 6d95b4a2c1bbdaea1a3802c822808f476ac5703b (patch) | |
tree | 1abf9117bf53f2de53fbcc62c352acc92780365b /Master/texmf-dist/source/latex/l3kernel/l3prop.dtx | |
parent | b7f762397f5df2d732326713423e31e1bf91b903 (diff) |
l3kernel 2828 (15sep11)
git-svn-id: svn://tug.org/texlive/trunk@23983 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/l3kernel/l3prop.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/l3kernel/l3prop.dtx | 85 |
1 files changed, 48 insertions, 37 deletions
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx index d7409586cac..9a8624bc7c7 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx @@ -9,7 +9,7 @@ %% %% http://www.latex-project.org/lppl.txt %% -%% This file is part of the "expl3 bundle" (The Work in LPPL) +%% This file is part of the "l3kernel bundle" (The Work in LPPL) %% and all files in that bundle must be distributed together. %% %% The released version of this bundle is available from CTAN. @@ -35,7 +35,7 @@ % %<*driver|package> \RequirePackage{l3names} -\GetIdInfo$Id: l3prop.dtx 2725 2011-09-05 18:53:03Z bruno $ +\GetIdInfo$Id: l3prop.dtx 2820 2011-09-12 18:56:29Z bruno $ {L3 Experimental property lists} %</driver|package> %<*driver> @@ -78,7 +78,7 @@ % added to a property list which already contains the \meta{key} then the new % entry will overwrite the existing one. The \meta{keys} are compared on a % string basis, using the same method as \cs{str_if_eq:nn}. -% +% % Property lists are intended for storing key-based information for use within % code. This is in contrast to key--value lists, which are a form of % \emph{input} parsed by the \pkg{keys} module. @@ -219,7 +219,7 @@ % % \section{Recovering values from property lists} % -% \begin{function} +% \begin{function}[updated = 2011-08-28] % { % \prop_get:NnN, \prop_get:NVN, \prop_get:NoN, % \prop_get:cnN, \prop_get:cVN, \prop_get:coN, @@ -236,7 +236,8 @@ % \cs{prop_get:NnNTF}. % \end{function} % -% \begin{function}{\prop_pop:NnN, \prop_pop:NoN, \prop_pop:cnN, \prop_pop:coN} +% \begin{function}[updated = 2011-08-18] +% {\prop_pop:NnN, \prop_pop:NoN, \prop_pop:cnN, \prop_pop:coN} % \begin{syntax} % \cs{prop_pop:NnN} \meta{property list} \Arg{key} \meta{tl var} % \end{syntax} @@ -249,7 +250,7 @@ % assignments are local. % \end{function} % -% \begin{function} +% \begin{function}[updated = 2011-08-18] % {\prop_gpop:NnN, \prop_gpop:NoN, \prop_gpop:cnN, \prop_gpop:coN} % \begin{syntax} % \cs{prop_gpop:NnN} \meta{property list} \Arg{key} \meta{tl var} @@ -294,8 +295,7 @@ % \begin{function}[EXP,pTF]{\prop_if_empty:N, \prop_if_empty:c} % \begin{syntax} % \cs{prop_if_empty_p:N} \meta{property list} -% \cs{prop_if_empty:NTF} \meta{property list} -% ~~\Arg{true code} \Arg{false code} +% \cs{prop_if_empty:NTF} \meta{property list} \Arg{true code} \Arg{false code} % \end{syntax} % Tests if the \meta{property list} is empty (containing no entries). % \end{function} @@ -306,8 +306,7 @@ % \prop_if_in:cn, \prop_if_in:cV, \prop_if_in:co % } % \begin{syntax} -% \cs{prop_if_in:NnTF} \meta{property list} \Arg{key} -% ~~\Arg{true code} \Arg{false code} +% \cs{prop_if_in:NnTF} \meta{property list} \Arg{key} \Arg{true code} \Arg{false code} % \end{syntax} % Tests if the \meta{key} is present in the \meta{property list}, % making the comparison using the method described by \cs{str_if_eq:nnTF}. @@ -317,23 +316,23 @@ % non-expandable \cs{prop_get:NnNTF}. % \end{texnote} % \end{function} -% +% % \section{Recovering values from property lists with branching} -% +% % The functions in this section combine tests for the presence of a key % in a property list with recovery of the associated valued. This makes them % useful for cases where different cases follow dependent on the presence % or absence of a key in a property list. They offer increased readability % and performance over separate testing and recovery phases. % -% \begin{function}[TF] +% \begin{function}[updated = 2011-08-28, TF] % { % \prop_get:NnN, \prop_get:NVN, \prop_get:NoN, % \prop_get:cnN, \prop_get:cVN, \prop_get:coN % } % \begin{syntax} -% \cs{prop_get:NnNTF} \meta{property list} \Arg{key} -% ~~\meta{token list variable} \Arg{true code} \Arg{false code} +% \cs{prop_get:NnNTF} \meta{property list} \Arg{key} \meta{token list variable} \\ +% ~~\Arg{true code} \Arg{false code} % \end{syntax} % If the \meta{key} is not present in the \meta{property list}, leaves % the \meta{false code} in the input stream and leaves the @@ -343,17 +342,17 @@ % \meta{property list}. The \meta{token list variable} is assigned locally. % \end{function} % -% \begin{function}[TF]{\prop_pop:NnN, \prop_pop:cnN} +% \begin{function}[added = 2011-08-18,TF]{\prop_pop:NnN, \prop_pop:cnN} % \begin{syntax} -% \cs{prop_pop:NnNTF} \meta{property list} \Arg{key} -% ~~\meta{token list variable} \Arg{true code} \Arg{false code} +% \cs{prop_pop:NnNTF} \meta{property list} \Arg{key} \meta{token list variable} \\ +% ~~\Arg{true code} \Arg{false code} % \end{syntax} % If the \meta{key} is not present in the \meta{property list}, leaves % the \meta{false code} in the input stream and leaves the % \meta{token list variable} unchanged. If the \meta{key} is present in % the \meta{property list}, pops the corresponding \meta{value} % in the \meta{token list variable}, \emph{i.e.}~removes the item from -% the \meta{property list}. +% the \meta{property list}. % Both the \meta{property list} and the \meta{token list variable} % are assigned locally. % \end{function} @@ -404,7 +403,7 @@ % level \TeX{} errors. % \end{function} % -% \begin{function}[EXP]{\prop_map_break:n} +% \begin{function}[rEXP]{\prop_map_break:n} % \begin{syntax} % \cs{prop_map_break:n} \Arg{tokens} % \end{syntax} @@ -440,22 +439,23 @@ % This section contains functions which may or may not be retained, depending % on how useful they are found to be. % -% \begin{function}[TF]{\prop_gpop:NnN, \prop_gpop:cnN} +% \begin{function}[added = 2011-08-18,TF]{\prop_gpop:NnN, \prop_gpop:cnN} % \begin{syntax} -% \cs{prop_gpop:NnNTF} \meta{property list} \Arg{key} -% ~~\meta{token list variable} \Arg{true code} \Arg{false code} +% \cs{prop_gpop:NnNTF} \meta{property list} \Arg{key} \meta{token list variable} \\ +% ~~\Arg{true code} \Arg{false code} % \end{syntax} % If the \meta{key} is not present in the \meta{property list}, leaves % the \meta{false code} in the input stream and leaves the % \meta{token list variable} unchanged. If the \meta{key} is present in % the \meta{property list}, pops the corresponding \meta{value} % in the \meta{token list variable}, \emph{i.e.}~removes the item from -% the \meta{property list}. +% the \meta{property list}. % The \meta{property list} is modified globally, while the % \meta{token list variable} is assigned locally. % \end{function} % -% \begin{function}[EXP]{\prop_map_tokens:Nn, \prop_map_tokens:cn} +% \begin{function}[added = 2011-08-18,rEXP] +% {\prop_map_tokens:Nn, \prop_map_tokens:cn} % \begin{syntax} % \cs{prop_map_tokens:Nn} \meta{property list} \Arg{code} % \end{syntax} @@ -464,7 +464,7 @@ % property list while keeping track of a given key. % \end{function} % -% \begin{function}[EXP]{\prop_get:Nn, \prop_get:cn} +% \begin{function}[updated = 2011-08-18,EXP]{\prop_get:Nn, \prop_get:cn} % \begin{syntax} % \cs{prop_get:Nn} \meta{property list} \Arg{key} % \end{syntax} @@ -490,7 +490,7 @@ % % \begin{function}{\prop_split:Nnn} % \begin{syntax} -% \cs{prop_spilt:Nnn} \meta{property list} \Arg{key} \Arg{code} +% \cs{prop_split:Nnn} \meta{property list} \Arg{key} \Arg{code} % \end{syntax} % Splits the \meta{property list} at the \meta{key}, giving three % groups: the \meta{extract} of \meta{property list} before the @@ -511,8 +511,7 @@ % % \begin{function}{\prop_split:NnTF} % \begin{syntax} -% \cs{prop_spilt:NnTF} \meta{property list} \Arg{key} -% ~~\Arg{true code} \Arg{false code} +% \cs{prop_split:NnTF} \meta{property list} \Arg{key} \Arg{true code} \Arg{false code} % \end{syntax} % Splits the \meta{property list} at the \meta{key}, giving three % groups: the \meta{extract} of \meta{property list} before the @@ -908,7 +907,7 @@ } \cs_new:Npn \prop_if_in_aux:nwn #1 \q_prop #2 \q_prop #3 { - \if_catcode:w A #2 + \if_meaning:w A #2 \prg_return_false: \exp_after:wN \use_none_delimit_by_q_stop:w \fi: @@ -930,9 +929,9 @@ % \end{macrocode} % \end{macro} % \end{macro} -% +% % \subsection{Recovering values from property lists with branching} -% +% % \begin{macro}[TF] % { % \prop_get:NnN, \prop_get:NVN, \prop_get:NoN, @@ -973,7 +972,7 @@ % } % \begin{macro}[aux]{\prop_map_function_aux:Nwn} % The fastest way to do a recursion here is to use an -% \cs{if_catcode:w} test: the keys are strings, and thus +% \cs{if_meaning:w} test: the keys are strings, and thus % cannot match the marker |A| (which has catcode \enquote{letter}). % \begin{macrocode} \cs_new_nopar:Npn \prop_map_function:NN #1#2 @@ -983,7 +982,7 @@ } \cs_new:Npn \prop_map_function_aux:Nwn #1 \q_prop #2 \q_prop #3 { - \if_catcode:w A #2 + \if_meaning:w A #2 \exp_after:wN \prop_map_break: \fi: #1 {#2} {#3} @@ -1123,7 +1122,7 @@ % \end{macro} % \end{macro} % -% \begin{macro}[EXP]{\prop_map_tokens:Nn, \prop_map_tokens:cn} +% \begin{macro}[rEXP]{\prop_map_tokens:Nn, \prop_map_tokens:cn} % \begin{macro}[aux]{\prop_map_tokens_aux:nwn} % The mapping grabs one key--value pair at a time, and stops when % reaching the marker key |A|, with catcode \enquote{letter}, which @@ -1137,7 +1136,7 @@ } \cs_new:Npn \prop_map_tokens_aux:nwn #1 \q_prop #2 \q_prop #3 { - \if_catcode:w A #2 + \if_meaning:w A #2 \exp_after:wN \prop_map_break: \fi: \use:n {#1} {#2} {#3} @@ -1174,8 +1173,10 @@ % \begin{macro}{\prop_display:N, \prop_display:c} % An older name for \cs{prop_show:N}. % \begin{macrocode} +%<*deprecated> \cs_new_eq:NN \prop_display:N \prop_show:N \cs_new_eq:NN \prop_display:c \prop_show:c +%</deprecated> % \end{macrocode} % \end{macro} % @@ -1184,12 +1185,14 @@ % Getting globally is no longer supported: this is a conceptual change, so % the necessary code for the transition is provided directly. % \begin{macrocode} +%<*deprecated> \cs_new_protected:Npn \prop_gget:NnN #1#2#3 { \prop_split:Nnn #1 {#2} { \prop_gget_aux:Nnnn #3 } } \cs_new_protected:Npn \prop_gget_aux:Nnnn #1#2#3#4 { \tl_gset:Nn #1 {#3} } \cs_generate_variant:Nn \prop_gget:NnN { NV } \cs_generate_variant:Nn \prop_gget:NnN { c , cV } +%</deprecated> % \end{macrocode} % \end{macro} % \end{macro} @@ -1197,23 +1200,29 @@ % \begin{macro}{\prop_get_gdel:NnN} % This name seems very odd. % \begin{macrocode} +%<*deprecated> \cs_new_eq:NN \prop_get_gdel:NnN \prop_gpop:NnN +%</deprecated> % \end{macrocode} % \end{macro} % % \begin{macro}[TF]{\prop_if_in:cc} % A hang-over from an ancient implementation % \begin{macrocode} +%<*deprecated> \cs_generate_variant:Nn \prop_if_in:NnT { cc } \cs_generate_variant:Nn \prop_if_in:NnF { cc } \cs_generate_variant:Nn \prop_if_in:NnTF { cc } +%</deprecated> % \end{macrocode} % \end{macro} % % \begin{macro}{\prop_gput:ccx} % Another one. % \begin{macrocode} +%<*deprecated> \cs_generate_variant:Nn \prop_gput:Nnn { ccx } +%</deprecated> % \end{macrocode} % \end{macro} % @@ -1221,10 +1230,12 @@ % {\prop_if_eq:NN, \prop_if_eq:Nc, \prop_if_eq:cN, \prop_if_eq:cc} % These ones do no even make sense! % \begin{macrocode} +%<*deprecated> \prg_new_eq_conditional:NNn \prop_if_eq:NN \tl_if_eq:NN { p , T , F , TF } \prg_new_eq_conditional:NNn \prop_if_eq:cN \tl_if_eq:cN { p , T , F , TF } \prg_new_eq_conditional:NNn \prop_if_eq:Nc \tl_if_eq:Nc { p , T , F , TF } \prg_new_eq_conditional:NNn \prop_if_eq:cc \tl_if_eq:cc { p , T , F , TF } +%</deprecated> % \end{macrocode} % \end{macro} % @@ -1234,4 +1245,4 @@ % % \end{implementation} % -% \PrintIndex
\ No newline at end of file +% \PrintIndex |