From 7a50f35d6fd3bd705c78298b1ccc085991638f87 Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Thu, 29 Dec 2011 23:03:42 +0000
Subject: l3kernel 3109 (29dec11)

git-svn-id: svn://tug.org/texlive/trunk@24971 c570f23f-e606-0410-a88d-b1316a301751
---
 Master/texmf-dist/tex/latex/l3kernel/l3seq.sty | 58 +++++++++++++++++---------
 1 file changed, 39 insertions(+), 19 deletions(-)

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

diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3seq.sty b/Master/texmf-dist/tex/latex/l3kernel/l3seq.sty
index adfb1684b43..743e17ed121 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3seq.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3seq.sty
@@ -46,7 +46,7 @@
 %%
 %% -----------------------------------------------------------------------
 \RequirePackage{l3names}
-\GetIdInfo$Id: l3seq.dtx 3033 2011-12-07 10:12:21Z joseph $
+\GetIdInfo$Id: l3seq.dtx 3085 2011-12-22 16:29:26Z bruno $
   {L3 Experimental sequences and stacks}
 \ProvidesExplPackage
   {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -80,7 +80,7 @@
   { \seq_set_split_aux:NNnn \tl_set:Nx }
 \cs_new_protected_nopar:Npn \seq_gset_split:Nnn
   { \seq_set_split_aux:NNnn \tl_gset:Nx }
-\cs_new_protected_nopar:Npn \seq_set_split_aux:NNnn #1 #2 #3 #4
+\cs_new_protected:Npn \seq_set_split_aux:NNnn #1 #2 #3 #4
   {
     \tl_if_empty:nTF {#3}
       { #1 #2 { \tl_map_function:nN {#4} \seq_wrap_item:n } }
@@ -108,9 +108,9 @@
   }
 \cs_new:Npn \seq_set_split_aux_ii:w #1 \seq_set_split_aux_end:
   { \seq_wrap_item:n {#1} }
-\cs_new_protected_nopar:Npn \seq_concat:NNN #1#2#3
+\cs_new_protected:Npn \seq_concat:NNN #1#2#3
   { \tl_set:Nx #1 { \exp_not:o {#2} \exp_not:o {#3} } }
-\cs_new_protected_nopar:Npn \seq_gconcat:NNN #1#2#3
+\cs_new_protected:Npn \seq_gconcat:NNN #1#2#3
   { \tl_gset:Nx #1 { \exp_not:o {#2} \exp_not:o {#3} } }
 \cs_generate_variant:Nn \seq_concat:NNN  { ccc }
 \cs_generate_variant:Nn \seq_gconcat:NNN { ccc }
@@ -201,7 +201,7 @@
 \cs_generate_variant:Nn \seq_if_in:NnF  { c , cV , cv , co , cx }
 \cs_generate_variant:Nn \seq_if_in:NnTF {     NV , Nv , No , Nx }
 \cs_generate_variant:Nn \seq_if_in:NnTF { c , cV , cv , co , cx }
-\cs_new_protected_nopar:Npn \seq_get_left:NN #1#2
+\cs_new_protected:Npn \seq_get_left:NN #1#2
   {
     \seq_if_empty_err_break:N #1
     \exp_after:wN \seq_get_left_aux:NnwN #1 \q_stop #2
@@ -214,7 +214,7 @@
   { \seq_pop_left_aux:NNN \tl_set:Nn }
 \cs_new_protected_nopar:Npn \seq_gpop_left:NN
   { \seq_pop_left_aux:NNN \tl_gset:Nn }
-\cs_new_protected_nopar:Npn \seq_pop_left_aux:NNN #1#2#3
+\cs_new_protected:Npn \seq_pop_left_aux:NNN #1#2#3
   {
     \seq_if_empty_err_break:N #2
     \exp_after:wN \seq_pop_left_aux:NnwNNN #2 \q_stop #1#2#3
@@ -227,13 +227,13 @@
   }
 \cs_generate_variant:Nn \seq_pop_left:NN  { c }
 \cs_generate_variant:Nn \seq_gpop_left:NN { c }
-\cs_new_protected_nopar:Npn \seq_get_right:NN #1#2
+\cs_new_protected:Npn \seq_get_right:NN #1#2
   {
     \seq_if_empty_err_break:N #1
     \seq_get_right_aux:NN #1#2
     \prg_break_point:n { }
   }
-\cs_new_protected_nopar:Npn \seq_get_right_aux:NN #1#2
+\cs_new_protected:Npn \seq_get_right_aux:NN #1#2
   {
     \seq_push_item_def:n { }
     \exp_after:wN \exp_after:wN \exp_after:wN \seq_get_right_loop:nn
@@ -255,13 +255,13 @@
   { \seq_pop_right_aux:NNN \tl_set:Nx }
 \cs_new_protected_nopar:Npn \seq_gpop_right:NN
   { \seq_pop_right_aux:NNN \tl_gset:Nx }
-\cs_new_protected_nopar:Npn \seq_pop_right_aux:NNN #1#2#3
+\cs_new_protected:Npn \seq_pop_right_aux:NNN #1#2#3
   {
     \seq_if_empty_err_break:N #2
     \seq_pop_right_aux_ii:NNN #1 #2 #3
     \prg_break_point:n { }
   }
-\cs_new_protected_nopar:Npn \seq_pop_right_aux_ii:NNN #1#2#3
+\cs_new_protected:Npn \seq_pop_right_aux_ii:NNN #1#2#3
   {
     \seq_push_item_def:n { \seq_wrap_item:n {##1} }
     #1 #2 { \if_false: } \fi:
@@ -283,7 +283,7 @@
 \cs_new_eq:NN \seq_break:n     \prg_map_break:n
 \cs_new_eq:NN \seq_map_break:  \prg_map_break:
 \cs_new_eq:NN \seq_map_break:n \prg_map_break:n
-\cs_new_protected_nopar:Npn \seq_if_empty_err_break:N #1
+\cs_new_protected:Npn \seq_if_empty_err_break:N #1
   {
     \if_meaning:w #1 \c_empty_tl
       \msg_kernel_error:nnx { seq } { empty-sequence } { \token_to_str:N #1 }
@@ -370,7 +370,7 @@
 \cs_new_eq:NN \seq_pop:cN \seq_pop_left:cN
 \cs_new_eq:NN \seq_gpop:NN \seq_gpop_left:NN
 \cs_new_eq:NN \seq_gpop:cN \seq_gpop_left:cN
-\cs_new_protected_nopar:Npn \seq_show:N #1
+\cs_new_protected:Npn \seq_show:N #1
   {
     \msg_aux_show:Nnx
       #1
@@ -378,7 +378,7 @@
       { \seq_map_function:NN #1 \msg_aux_show:n }
   }
 \cs_generate_variant:Nn \seq_show:N { c }
-\cs_new_nopar:Npn \seq_if_empty_break_return_false:N #1
+\cs_new:Npn \seq_if_empty_break_return_false:N #1
   {
     \if_meaning:w #1 \c_empty_tl
       \prg_return_false:
@@ -456,7 +456,7 @@
   }
 \cs_new:Npn \seq_length_aux:n #1 { +1 }
 \cs_generate_variant:Nn \seq_length:N { c }
-\cs_new_nopar:Npn \seq_item:Nn #1#2
+\cs_new:Npn \seq_item:Nn #1#2
   {
     \exp_last_unbraced:Nfo \seq_item_aux:nnn
       {
@@ -472,7 +472,7 @@
     { }
     \prg_break_point:n { }
   }
-\cs_new_nopar:Npn \seq_item_aux:nnn #1#2#3
+\cs_new:Npn \seq_item_aux:nnn #1#2#3
   {
     \use_none:n #2
     \int_compare:nNnTF {#1} = \c_zero
@@ -480,9 +480,9 @@
       { \exp_args:Nf \seq_item_aux:nnn { \int_eval:n { #1 - 1 } } }
   }
 \cs_generate_variant:Nn \seq_item:Nn { c }
-\cs_new_nopar:Npn \seq_use:N #1 { \seq_map_function:NN #1 \use:n }
+\cs_new:Npn \seq_use:N #1 { \seq_map_function:NN #1 \use:n }
 \cs_generate_variant:Nn \seq_use:N { c }
-\cs_new_nopar:Npn \seq_mapthread_function:NNN #1#2#3
+\cs_new:Npn \seq_mapthread_function:NNN #1#2#3
   {
     \exp_after:wN \seq_mapthread_function_aux:NN
       \exp_after:wN #3
@@ -491,7 +491,7 @@
       { ? \seq_break: } { }
     \prg_break_point:n { }
   }
-\cs_new_nopar:Npn \seq_mapthread_function_aux:NN #1#2
+\cs_new:Npn \seq_mapthread_function_aux:NN #1#2
   {
     \exp_after:wN \seq_mapthread_function_aux:Nnnwnn
       \exp_after:wN #1
@@ -539,7 +539,7 @@
   { \seq_reverse_aux:NN \tl_set:Nx }
 \cs_new_protected_nopar:Npn \seq_greverse:N
   { \seq_reverse_aux:NN \tl_gset:Nx }
-\cs_new_protected_nopar:Npn \seq_reverse_aux:NN #1 #2
+\cs_new_protected:Npn \seq_reverse_aux:NN #1 #2
   {
     \cs_set_eq:NN \seq_tmp:w \seq_item:n
     \cs_set_eq:NN \seq_item:n \seq_reverse_aux_item:nwn
@@ -553,6 +553,26 @@
   }
 \cs_generate_variant:Nn \seq_reverse:N  { c }
 \cs_generate_variant:Nn \seq_greverse:N { c }
+\cs_new_protected_nopar:Npn \seq_set_filter:NNn
+  { \seq_set_filter_aux:NNNn \tl_set:Nx }
+\cs_new_protected_nopar:Npn \seq_gset_filter:NNn
+  { \seq_set_filter_aux:NNNn \tl_gset:Nx }
+\cs_new_protected:Npn \seq_set_filter_aux:NNNn #1#2#3#4
+  {
+    \seq_push_item_def:n { \bool_if:nT {#4} { \seq_wrap_item:n {##1} } }
+    #1 #2 { #3 \prg_break_point:n { } }
+    \seq_pop_item_def:
+  }
+\cs_new_protected_nopar:Npn \seq_set_map:NNn
+  { \seq_set_map_aux:NNNn \tl_set:Nx }
+\cs_new_protected_nopar:Npn \seq_gset_map:NNn
+  { \seq_set_map_aux:NNNn \tl_gset:Nx }
+\cs_new_protected:Npn \seq_set_map_aux:NNNn #1#2#3#4
+  {
+    \seq_push_item_def:n { \exp_not:N \seq_item:n {#4} }
+    #1 #2 { #3 }
+    \seq_pop_item_def:
+  }
 %% 
 %%
 %% End of file `l3seq.sty'.
-- 
cgit v1.2.3

