summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/l3kernel/l3prop.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2011-10-10 21:52:54 +0000
committerKarl Berry <karl@freefriends.org>2011-10-10 21:52:54 +0000
commit26a0070af35fa5652128c74fa1f126ec51def209 (patch)
treec3cb194fd4cc2dc13141e39c561dc5bc5d0b7a83 /Master/texmf-dist/tex/latex/l3kernel/l3prop.sty
parent4d055293335b5b39f55edeff0c28700ebc2486eb (diff)
l3kernel 2900 (10oct11)
git-svn-id: svn://tug.org/texlive/trunk@24256 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3kernel/l3prop.sty')
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3prop.sty47
1 files changed, 29 insertions, 18 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3prop.sty b/Master/texmf-dist/tex/latex/l3kernel/l3prop.sty
index b7941873865..eebc40c2520 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3prop.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3prop.sty
@@ -46,7 +46,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3prop.dtx 2820 2011-09-12 18:56:29Z bruno $
+\GetIdInfo$Id: l3prop.dtx 2839 2011-09-17 20:18:23Z bruno $
{L3 Experimental property lists}
%%
\ProvidesExplPackage
@@ -186,20 +186,22 @@
{
\exp_last_unbraced:Noo \prop_if_in_aux:nwn
{ \tl_to_str:n {#2} } #1
- A \q_prop { } \q_stop
+ \tl_to_str:n {#2} \q_prop { }
+ \q_recursion_tail \q_recursion_stop
}
\cs_new:Npn \prop_if_in_aux:nwn #1 \q_prop #2 \q_prop #3
{
- \if_meaning:w A #2
- \prg_return_false:
- \exp_after:wN \use_none_delimit_by_q_stop:w
+ \str_if_eq:xxTF {#1} {#2}
+ { \prop_if_in_aux:Nw }
+ { \prop_if_in_aux:nwn {#1} }
+ }
+\cs_new:Npn \prop_if_in_aux:Nw #1 #2 \q_recursion_stop
+ {
+ \if_meaning:w \q_prop #1
+ \prg_return_true:
+ \else:
+ \prg_return_false:
\fi:
- \str_if_eq:nnT {#1} {#2}
- {
- \prg_return_true:
- \use_none_delimit_by_q_stop:w
- }
- \prop_if_in_aux:nwn {#1}
}
\cs_generate_variant:Nn \prop_if_in_p:Nn { NV , No }
\cs_generate_variant:Nn \prop_if_in_p:Nn { c , cV , co }
@@ -229,11 +231,11 @@
\cs_new_nopar:Npn \prop_map_function:NN #1#2
{
\exp_last_unbraced:NNo \prop_map_function_aux:Nwn #2
- #1 A \q_prop { } \q_recursion_stop
+ #1 \q_recursion_tail \q_prop { } \q_recursion_stop
}
\cs_new:Npn \prop_map_function_aux:Nwn #1 \q_prop #2 \q_prop #3
{
- \if_meaning:w A #2
+ \if_meaning:w \q_recursion_tail #2
\exp_after:wN \prop_map_break:
\fi:
#1 {#2} {#3}
@@ -310,11 +312,11 @@
\cs_new:Npn \prop_map_tokens:Nn #1#2
{
\exp_last_unbraced:Nno \prop_map_tokens_aux:nwn {#2} #1
- A \q_prop { } \q_recursion_stop
+ \q_recursion_tail \q_prop { } \q_recursion_stop
}
\cs_new:Npn \prop_map_tokens_aux:nwn #1 \q_prop #2 \q_prop #3
{
- \if_meaning:w A #2
+ \if_meaning:w \q_recursion_tail #2
\exp_after:wN \prop_map_break:
\fi:
\use:n {#1} {#2} {#3}
@@ -322,9 +324,18 @@
}
\cs_generate_variant:Nn \prop_map_tokens:Nn { c }
\cs_new:Npn \prop_get:Nn #1#2
- { \prop_map_tokens:Nn #1 { \prop_get_aux:nnn {#2} } }
-\cs_new:Npn \prop_get_aux:nnn #1#2#3
- { \str_if_eq:nnT {#1} {#2} { \prop_map_break:n {#3} } }
+ {
+ \exp_last_unbraced:Noo \prop_get_Nn_aux:nwn
+ { \tl_to_str:n {#2} } #1
+ \tl_to_str:n {#2} \q_prop { }
+ \q_recursion_stop
+ }
+\cs_new:Npn \prop_get_Nn_aux:nwn #1 \q_prop #2 \q_prop #3
+ {
+ \str_if_eq:xxTF {#1} {#2}
+ { \use_i_delimit_by_q_recursion_stop:nw {#3} }
+ { \prop_get_Nn_aux:nwn {#1} }
+ }
\cs_generate_variant:Nn \prop_get:Nn { c }
%%
%%