diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/expl3/l3prop.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/expl3/l3prop.dtx | 51 |
1 files changed, 27 insertions, 24 deletions
diff --git a/Master/texmf-dist/source/latex/expl3/l3prop.dtx b/Master/texmf-dist/source/latex/expl3/l3prop.dtx index 9c93d32dcbc..8de35d67a5c 100644 --- a/Master/texmf-dist/source/latex/expl3/l3prop.dtx +++ b/Master/texmf-dist/source/latex/expl3/l3prop.dtx @@ -36,7 +36,7 @@ \RequirePackage{l3names} %</driver|package> %\fi -\GetIdInfo$Id: l3prop.dtx 1622 2009-10-25 06:41:23Z will $ +\GetIdInfo$Id: l3prop.dtx 1857 2010-03-21 21:32:09Z joseph $ {L3 Experimental Property Lists} %\iffalse %<*driver> @@ -104,6 +104,7 @@ % \prop_put:NVV | % \prop_put:cnn | % \prop_gput:Nnn | +% \prop_gput:NVn | % \prop_gput:Nno | % \prop_gput:NnV | % \prop_gput:Nnx | @@ -458,7 +459,7 @@ % \begin{macro}{\prop_display:c} % Pretty print the contents of a property list on the console. % \begin{macrocode} -\cs_new_nopar:Npn \prop_display:N #1 { +\cs_new_protected_nopar:Npn \prop_display:N #1 { \iow_term:x { Property-list~\token_to_str:N #1~contains~ the~pairs~(without~outer~braces): } \toks_clear:N \l_tmpa_toks @@ -467,9 +468,9 @@ \toks_put_right:Nx \l_tmpa_toks {^^J>~} } \toks_put_right:Nx \l_tmpa_toks { - \iow_space: \iow_char:N \{ \exp_not:n {##1} \iow_char:N \} \iow_space: - \iow_space: => \iow_space: - \iow_space: \iow_char:N \{ \exp_not:n {##2} \iow_char:N \} + \c_space_tl \iow_char:N \{ \exp_not:n {##1} \iow_char:N \} \c_space_tl + \c_space_tl => \c_space_tl + \c_space_tl \iow_char:N \{ \exp_not:n {##2} \iow_char:N \} } } \toks_show:N \l_tmpa_toks @@ -489,7 +490,7 @@ % and the 3rd argument is empty; otherwise the 3rd argument has the % extra tokens |\q_prop| \meta{\propkey} |\q_prop| |\q_no_value| at the end. % \begin{macrocode} -\cs_new:Npn \prop_split_aux:Nnn #1#2#3{ +\cs_new_protected:Npn \prop_split_aux:Nnn #1#2#3{ \cs_set:Npn \prop_tmp:w ##1 \q_prop #2 \q_prop ##2##3 \q_stop { #3 {##1}{##2}{##3} } @@ -507,10 +508,10 @@ % \meta{tl var.}~to be the value associated with \meta{\propkey} in \meta{\proplist}, % |\q_no_value| if not found. % \begin{macrocode} -\cs_new:Npn \prop_get:NnN #1#2 { +\cs_new_protected:Npn \prop_get:NnN #1#2 { \prop_split_aux:Nnn #1{#2}\prop_get_aux:w } -\cs_new:Npn \prop_get_aux:w #1#2#3#4 { \tl_set:Nx #4 {\exp_not:n{#2}} } +\cs_new_protected:Npn \prop_get_aux:w #1#2#3#4 { \tl_set:Nn #4 {#2} } % \end{macrocode} % % \begin{macrocode} @@ -529,9 +530,9 @@ % \begin{macro}{\prop_gget_aux:w} % The global version of the previous function. % \begin{macrocode} -\cs_new:Npn \prop_gget:NnN #1#2{ +\cs_new_protected:Npn \prop_gget:NnN #1#2{ \prop_split_aux:Nnn #1{#2}\prop_gget_aux:w} -\cs_new:Npn \prop_gget_aux:w #1#2#3#4{\tl_gset:Nx#4{\exp_not:n{#2}}} +\cs_new_protected:Npn \prop_gget_aux:w #1#2#3#4{\tl_gset:Nx#4{\exp_not:n{#2}}} % \end{macrocode} % % \begin{macrocode} @@ -550,10 +551,10 @@ % from \m{property_list}. One probably also needs the local % variants or only the local one, or\ldots\ We decide this later. % \begin{macrocode} -\cs_new:Npn \prop_get_gdel:NnN #1#2#3{ +\cs_new_protected:Npn \prop_get_gdel:NnN #1#2#3{ \prop_split_aux:Nnn #1{#2}{\prop_get_del_aux:w #3{\toks_gset:Nn #1}{#2}}} -\cs_new:Npn \prop_get_del_aux:w #1#2#3#4#5#6{ - \tl_set:Nx #1{\exp_not:n{#5}} +\cs_new_protected:Npn \prop_get_del_aux:w #1#2#3#4#5#6{ + \tl_set:Nn #1 {#5} \quark_if_no_value:NF #1 { \cs_set_nopar:Npn \prop_tmp:w ##1\q_prop#3\q_prop\q_no_value {#2{#4##1}} \prop_tmp:w #6} @@ -568,6 +569,7 @@ % \begin{macro}{\prop_put:NVV} % \begin{macro}{\prop_put:cnn} % \begin{macro}{\prop_gput:Nnn} +% \begin{macro}{\prop_gput:NVn} % \begin{macro}{\prop_gput:NnV} % \begin{macro}{\prop_gput:Nno} % \begin{macro}{\prop_gput:Nnx} @@ -577,7 +579,7 @@ % |\prop_put:Nnn| \marg{\proplist} \marg{\propkey} \marg{\propval} adds/changes the % value associated with \meta{\propkey} in \meta{\proplist} to \meta{\propval}. % \begin{macrocode} -\cs_new:Npn \prop_put:Nnn #1#2{ +\cs_new_protected:Npn \prop_put:Nnn #1#2{ \prop_split_aux:Nnn #1{#2}{ \prop_clear:N #1 \prop_put_aux:w {\toks_put_right:Nn #1}{#2} @@ -586,7 +588,7 @@ % \end{macrocode} % % \begin{macrocode} -\cs_new:Npn \prop_gput:Nnn #1#2{ +\cs_new_protected:Npn \prop_gput:Nnn #1#2{ \prop_split_aux:Nnn #1{#2}{ \prop_gclear:N #1 \prop_put_aux:w {\toks_gput_right:Nn #1}{#2} @@ -595,7 +597,7 @@ % \end{macrocode} % % \begin{macrocode} -\cs_new:Npn \prop_put_aux:w #1#2#3#4#5#6{ +\cs_new_protected:Npn \prop_put_aux:w #1#2#3#4#5#6{ #1{\q_prop#2\q_prop{#6}#3} \tl_if_empty:nF{#5} { @@ -610,7 +612,7 @@ % \end{macrocode} % % \begin{macrocode} -\cs_generate_variant:Nn \prop_gput:Nnn {NnV,Nno,Nnx,Nox,cnn,ccx} +\cs_generate_variant:Nn \prop_gput:Nnn {NVn,NnV,Nno,Nnx,Nox,cnn,ccx} % \end{macrocode} % \end{macro} % \end{macro} @@ -624,6 +626,7 @@ % \end{macro} % \end{macro} % \end{macro} +% \end{macro} % % \begin{macro}{\prop_del:Nn} % \begin{macro}{\prop_del:NV} @@ -633,11 +636,11 @@ % |\prop_del:Nn |\meta{\proplist}\meta{\propkey} deletes the entry for % \meta{\propkey} in \meta{\proplist}, if any. % \begin{macrocode} -\cs_new:Npn \prop_del:Nn #1#2{ +\cs_new_protected:Npn \prop_del:Nn #1#2{ \prop_split_aux:Nnn #1{#2}{\prop_del_aux:w {\toks_set:Nn #1}{#2}}} -\cs_new:Npn \prop_gdel:Nn #1#2{ +\cs_new_protected:Npn \prop_gdel:Nn #1#2{ \prop_split_aux:Nnn #1{#2}{\prop_del_aux:w {\toks_gset:Nn #1}{#2}}} -\cs_new:Npn \prop_del_aux:w #1#2#3#4#5{ +\cs_new_protected:Npn \prop_del_aux:w #1#2#3#4#5{ \cs_set_nopar:Npn \prop_tmp:w {#4} \quark_if_no_value:NF \prop_tmp:w { \cs_set_nopar:Npn \prop_tmp:w ##1\q_prop#2\q_prop\q_no_value {#1{#3##1}} @@ -672,9 +675,9 @@ % F. and Louis A. which makes writing macros sometimes difficult; I % find myself humming instead of working): % \begin{macrocode} -\cs_new:Npn \prop_gput_if_new:Nnn #1#2{ +\cs_new_protected:Npn \prop_gput_if_new:Nnn #1#2{ \prop_split_aux:Nnn #1{#2}{\prop_put_if_new_aux:w #1{#2}}} -\cs_new:Npn \prop_put_if_new_aux:w #1#2#3#4#5#6{ +\cs_new_protected:Npn \prop_put_if_new_aux:w #1#2#3#4#5#6{ \tl_if_empty:nT {#5}{#1{\q_prop#2\q_prop{#6}#3}}} % \end{macrocode} % \end{macro} @@ -721,7 +724,7 @@ % \m{\propkey} is on the \m{property_list} and then select % either the true or false case. % \begin{macrocode} -\prg_new_conditional:Nnn \prop_if_in:Nn {TF,T,F} { +\prg_new_protected_conditional:Nnn \prop_if_in:Nn {TF,T,F} { \prop_split_aux:Nnn #1 {#2} {\prop_if_in_aux:w} } \cs_new_nopar:Npn \prop_if_in_aux:w #1#2#3 { @@ -818,7 +821,7 @@ % we don't waste time doing that. % \begin{macrocode} \int_new:N \g_prop_inline_level_int -\cs_new_nopar:Npn \prop_map_inline:Nn #1#2 { +\cs_new_protected_nopar:Npn \prop_map_inline:Nn #1#2 { \int_gincr:N \g_prop_inline_level_int \cs_gset:cpn {prop_map_inline_ \int_use:N \g_prop_inline_level_int :n} ##1##2{#2} |