summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx')
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx28
1 files changed, 15 insertions, 13 deletions
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
index 27baad8b08d..65f3e70e5cc 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx
@@ -36,7 +36,7 @@
%
%<*driver|package>
\RequirePackage{l3bootstrap}
-\GetIdInfo$Id: l3candidates.dtx 4633 2013-12-31 17:28:46Z joseph $
+\GetIdInfo$Id: l3candidates.dtx 4643 2014-01-06 13:28:06Z joseph $
{L3 Experimental additions to l3kernel}
%</driver|package>
%<*driver>
@@ -2330,31 +2330,33 @@
% \seq_mapthread_function:cNN, \seq_mapthread_function:ccN
% }
% \begin{macro}[aux]
-% {\@@_mapthread_function:NNw, \@@_mapthread_function:Nnnwnn}
+% {
+% \@@_mapthread_function:wNN, \@@_mapthread_function:wNw,
+% \@@_mapthread_function:Nnnwnn
+% }
% The idea here is to first expand both sequences, adding the
% usual |{ ? \__prg_break: } { }| to the end of each one. This is
% most conveniently done in two steps using an auxiliary function.
% The mapping then throws away the first tokens of |#2| and |#5|,
-% which for items in the sequences will both be
+% which for items in the sequences will both be \cs{s_@@}
% \cs{@@_item:n}. The function to be mapped will then be applied to
% the two entries. When the code hits the end of one of the
-% sequences, \cs{__prg_break:} stops the entire loop and tidy up.
-% This avoids needing to count items in the sequences, or
+% sequences, the break material will stop the entire loop and tidy up.
+% This avoids needing to find the count of the two sequences, or
% worrying about which is longer.
% \begin{macrocode}
\cs_new:Npn \seq_mapthread_function:NNN #1#2#3
+ { \exp_after:wN \@@_mapthread_function:wNN #2 \q_stop #1 #3 }
+\cs_new:Npn \@@_mapthread_function:wNN \s_@@ #1 \q_stop #2#3
{
- \exp_after:wN \@@_mapthread_function:NNw
- \exp_after:wN #3
- \exp_after:wN #1
- #2 { ? \__prg_break: } { }
+ \exp_after:wN \@@_mapthread_function:wNw #2 \q_stop #3
+ #1 { ? \__prg_break: } { }
\__prg_break_point:
}
-\cs_new:Npn \@@_mapthread_function:NNw #1#2
+\cs_new:Npn \@@_mapthread_function:wNw \s_@@ #1 \q_stop #2
{
- \exp_after:wN \@@_mapthread_function:Nnnwnn
- \exp_after:wN #1
- #2 { ? \__prg_break: } { }
+ \@@_mapthread_function:Nnnwnn #2
+ #1 { ? \__prg_break: } { }
\q_stop
}
\cs_new:Npn \@@_mapthread_function:Nnnwnn #1#2#3#4 \q_stop #5#6