diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx | 28 |
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 |