From 26a0070af35fa5652128c74fa1f126ec51def209 Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Mon, 10 Oct 2011 21:52:54 +0000
Subject: l3kernel 2900 (10oct11)

git-svn-id: svn://tug.org/texlive/trunk@24256 c570f23f-e606-0410-a88d-b1316a301751
---
 Master/texmf-dist/tex/latex/l3kernel/l3prop.sty | 47 +++++++++++++++----------
 1 file changed, 29 insertions(+), 18 deletions(-)

(limited to 'Master/texmf-dist/tex/latex/l3kernel/l3prop.sty')

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 }
 %% 
 %%
-- 
cgit v1.2.3

