From af8f869831d4976ff671f8f0b0ed8de0bb5dc7e8 Mon Sep 17 00:00:00 2001 From: Manuel Pégourié-Gonnard Date: Sat, 11 Jul 2009 00:46:31 +0000 Subject: expl3 update git-svn-id: svn://tug.org/texlive/trunk@14222 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/source/latex/expl3/l3basics.dtx | 12 +++++- Master/texmf-dist/source/latex/expl3/l3expan.dtx | 38 ++++-------------- Master/texmf-dist/source/latex/expl3/l3keyval.dtx | 5 +-- Master/texmf-dist/source/latex/expl3/l3prop.dtx | 7 +++- Master/texmf-dist/source/latex/expl3/l3seq.dtx | 49 ++++++++++++++++++++++- Master/texmf-dist/source/latex/expl3/l3tl.dtx | 37 +++++++---------- Master/texmf-dist/source/latex/expl3/l3toks.dtx | 15 ++----- 7 files changed, 91 insertions(+), 72 deletions(-) (limited to 'Master/texmf-dist/source') diff --git a/Master/texmf-dist/source/latex/expl3/l3basics.dtx b/Master/texmf-dist/source/latex/expl3/l3basics.dtx index ecbafc5d6b9..3604d0f2244 100644 --- a/Master/texmf-dist/source/latex/expl3/l3basics.dtx +++ b/Master/texmf-dist/source/latex/expl3/l3basics.dtx @@ -35,7 +35,7 @@ \RequirePackage{l3names} % %\fi -\GetIdInfo$Id: l3basics.dtx 1365 2009-05-31 17:26:17Z mittelba $ +\GetIdInfo$Id: l3basics.dtx 1414 2009-06-16 07:34:57Z joseph $ {L3 Experimental basic definitions} %\iffalse %<*driver> @@ -1110,7 +1110,10 @@ % % \subsection{Undefining functions} % -% \begin{function}{ \cs_gundefine:N } +% \begin{function}{ +% \cs_gundefine:N | +% \cs_gundefine:c +% } % \begin{syntax} % "\cs_gundefine:N" % \end{syntax} @@ -2764,12 +2767,17 @@ % \subsection{Undefining functions} % % \begin{macro}{\cs_gundefine:N } +% \begin{macro}{\cs_gundefine:c } % The following function is used to free the main memory from the % definition of some function that isn't in use any longer. % \begin{macrocode} \cs_new_nopar:Npn \cs_gundefine:N #1{\cs_gset_eq:NN #1\c_undefined:D} +\cs_new_nopar:Npn \cs_gundefine:c #1{ + \cs_gset_eq:cN {#1} \c_undefined:D +} % \end{macrocode} % \end{macro} +% \end{macro} % % % \subsection{Engine specific definitions} diff --git a/Master/texmf-dist/source/latex/expl3/l3expan.dtx b/Master/texmf-dist/source/latex/expl3/l3expan.dtx index 7f2323b2e0c..e0d0da73d38 100644 --- a/Master/texmf-dist/source/latex/expl3/l3expan.dtx +++ b/Master/texmf-dist/source/latex/expl3/l3expan.dtx @@ -36,7 +36,7 @@ \RequirePackage{l3names} % %\fi -\GetIdInfo$Id: l3expan.dtx 1376 2009-06-01 17:01:30Z morten $ +\GetIdInfo$Id: l3expan.dtx 1418 2009-07-04 08:24:17Z joseph $ {L3 Experimental Argument Expansion module} %\iffalse %<*driver> @@ -233,15 +233,6 @@ % more than one argument---all others are passed unchanged. % \end{function} % -% \begin{function}{ \exp_args:Nd / (EXP) } -% \begin{syntax} -% " \exp_args:Nd" "..." -% \end{syntax} -% The first argument of (i.e., ) is expanded twice, the -% result is surrounded by braces and passed to . may have -% more than one argument---all others are passed unchanged. -% \end{function} -% % \begin{function}{ \exp_args:Nc / (EXP) | \exp_args:cc / (EXP) } % \begin{syntax} % " \exp_args:Nc" "..." @@ -320,7 +311,6 @@ % \exp_args:NNc / (EXP) | % \exp_args:NNv / (EXP) | % \exp_args:NNV / (EXP) | -% \exp_args:NNd / (EXP) | % \exp_args:NNf / (EXP) | % \exp_args:Nno / (EXP) | % \exp_args:Nnf / (EXP) | @@ -362,6 +352,7 @@ % % \begin{function}{% % \exp_args:NNNo / (EXP) | +% \exp_args:NNNV / (EXP) | % \exp_args:NNoo / (EXP) | % \exp_args:NNno / (EXP) | % \exp_args:Nnno / (EXP) | @@ -502,7 +493,7 @@ % or a built-in \TeX\ register such as |\count|. % \end{function} % -% \begin{function}{\::n|\::N|\::c|\::o|\::f|\::x|\::v|\::V|\::d|\:::} +% \begin{function}{\::n|\::N|\::c|\::o|\::f|\::x|\::v|\::V|\:::} % \begin{syntax} % "\cs_set_nopar:Npn \exp_args:Ncof {\::c\::o\::f\:::}" % \end{syntax} @@ -789,20 +780,6 @@ % \end{macro} % \end{macro} % -% -% Here are some that might not stay but let's see. -% -% \begin{macro}{\::d} -% This function is used to expand an argument twice. Mostly useful -% for |toks| type things. This is likely to vanish with |V| around. -% \begin{macrocode} -\cs_new:Npn\::d#1\:::#2#3{ - \exp_after:wN\exp_after:wN\exp_after:wN\exp_arg_next:nnn - \exp_after:wN\exp_after:wN\exp_after:wN{#3}{#1}{#2} -} -% \end{macrocode} -% \end{macro} -% % \subsection{Hand-tuned definitions} % \label{sec:handtune} % @@ -857,9 +834,8 @@ % \subsection{Definitions with the `general' technique} % \label{sec:gendef} % -% \begin{macro}{\exp_args:Nd,\exp_args:Nf,\exp_args:NV,\exp_args:Nv,\exp_args:Nx} +% \begin{macro}{\exp_args:Nf,\exp_args:NV,\exp_args:Nv,\exp_args:Nx} % \begin{macrocode} -\cs_set_nopar:Npn \exp_args:Nd {\::d\:::} \cs_set_nopar:Npn \exp_args:Nf {\::f\:::} \cs_set_nopar:Npn \exp_args:Nv {\::v\:::} \cs_set_nopar:Npn \exp_args:NV {\::V\:::} @@ -867,7 +843,7 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{\exp_args:NNV,\exp_args:NNv,\exp_args:NNd,\exp_args:NNf,\exp_args:NNx, +% \begin{macro}{\exp_args:NNV,\exp_args:NNv,\exp_args:NNf,\exp_args:NNx, % \exp_args:NVV, % \exp_args:Ncx, % \exp_args:Nfo,\exp_args:Nff, @@ -878,7 +854,6 @@ % Here are the actual function definitions, using the helper functions % above. % \begin{macrocode} -\cs_set_nopar:Npn \exp_args:NNd {\::N\::d\:::} \cs_set_nopar:Npn \exp_args:NNf {\::N\::f\:::} \cs_set_nopar:Npn \exp_args:NNv {\::N\::v\:::} \cs_set_nopar:Npn \exp_args:NNV {\::N\::V\:::} @@ -909,6 +884,7 @@ % \exp_args:NcNc, % \exp_args:NcNo, % \exp_args:NNno, +% \exp_args:NNNV, % \exp_args:Nnno, % \exp_args:Nnnx, % \exp_args:Nnox, @@ -919,6 +895,8 @@ % \exp_args:NNoo, % \exp_args:NNox} % \begin{macrocode} +\cs_set_nopar:Npn \exp_args:NNNV {\::N\::N\::V\:::} + \cs_set_nopar:Npn \exp_args:NNno {\::N\::n\::o\:::} \cs_set_nopar:Npn \exp_args:NNnx {\::N\::n\::x\:::} \cs_set_nopar:Npn \exp_args:NNoo {\::N\::o\::o\:::} diff --git a/Master/texmf-dist/source/latex/expl3/l3keyval.dtx b/Master/texmf-dist/source/latex/expl3/l3keyval.dtx index 8ac747e5d0a..6af4faab0bc 100644 --- a/Master/texmf-dist/source/latex/expl3/l3keyval.dtx +++ b/Master/texmf-dist/source/latex/expl3/l3keyval.dtx @@ -35,7 +35,7 @@ \RequirePackage{l3names} % %\fi -\GetIdInfo$Id: l3keyval.dtx 1362 2009-05-28 20:19:21Z joseph $ +\GetIdInfo$Id: l3keyval.dtx 1412 2009-06-14 17:55:48Z joseph $ {L3 Experimental keyval processing} %\iffalse %<*driver> @@ -394,8 +394,7 @@ } % \end{macrocode} % Afterwards we gobble an extra level of braces if that's what we are -% asked to do. The next part can be done using \cs{toks_set:Nd}, but -% this might not be around for long. +% asked to do. % \begin{macrocode} \bool_if:NT \l_KV_remove_one_level_of_braces_bool { diff --git a/Master/texmf-dist/source/latex/expl3/l3prop.dtx b/Master/texmf-dist/source/latex/expl3/l3prop.dtx index ec76aa7fa6b..f136108719d 100644 --- a/Master/texmf-dist/source/latex/expl3/l3prop.dtx +++ b/Master/texmf-dist/source/latex/expl3/l3prop.dtx @@ -36,7 +36,7 @@ \RequirePackage{l3names} % %\fi -\GetIdInfo$Id: l3prop.dtx 1365 2009-05-31 17:26:17Z mittelba $ +\GetIdInfo$Id: l3prop.dtx 1420 2009-07-08 19:07:14Z joseph $ {L3 Experimental Property Lists} %\iffalse %<*driver> @@ -99,6 +99,7 @@ % % \begin{function}{% % \prop_put:Nnn | +% \prop_put:NnV | % \prop_put:cnn | % \prop_gput:Nnn | % \prop_gput:Nno | @@ -540,6 +541,7 @@ % \end{macro} % % \begin{macro}{\prop_put:Nnn} +% \begin{macro}{\prop_put:NnV} % \begin{macro}{\prop_put:cnn} % \begin{macro}{\prop_gput:Nnn} % \begin{macro}{\prop_gput:NnV} @@ -580,7 +582,7 @@ % \end{macrocode} % % \begin{macrocode} -\cs_generate_variant:Nn \prop_put:Nnn {cnn} +\cs_generate_variant:Nn \prop_put:Nnn { NnV, cnn } % \end{macrocode} % % \begin{macrocode} @@ -595,6 +597,7 @@ % \end{macro} % \end{macro} % \end{macro} +% \end{macro} % % \begin{macro}{\prop_del:Nn} % \begin{macro}{\prop_gdel:Nn} diff --git a/Master/texmf-dist/source/latex/expl3/l3seq.dtx b/Master/texmf-dist/source/latex/expl3/l3seq.dtx index 139e5038579..4c06643d19b 100644 --- a/Master/texmf-dist/source/latex/expl3/l3seq.dtx +++ b/Master/texmf-dist/source/latex/expl3/l3seq.dtx @@ -36,7 +36,7 @@ \RequirePackage{l3names} % %\fi -\GetIdInfo$Id: l3seq.dtx 1362 2009-05-28 20:19:21Z joseph $ +\GetIdInfo$Id: l3seq.dtx 1415 2009-06-17 19:37:24Z will $ {L3 Experimental sequences and stacks} %\iffalse %<*driver> @@ -301,6 +301,14 @@ % As with "\seq_show:N" but pretty prints the output one line per element. % \end{function} % +% \begin{function}{ \seq_remove_duplicates:N | +% \seq_gremove_duplicates:N } +% \begin{syntax} +% "\seq_gremove_duplicates:N" +% \end{syntax} +% Function that removes any duplicate entries in . +% \end{function} +% % \section{Predicates and conditionals} % % \begin{function}{ \seq_if_empty_p:N / (EXP) | @@ -865,6 +873,45 @@ % \end{macro} % \end{macro} % +% \subsection{Manipulation} +% +% \begin{macro}[aux]{\l_clist_remove_clist} +% A common scratch space for the removal routines. +% \begin{macrocode} +\seq_new:N \l_seq_remove_seq +% \end{macrocode} +% \end{macro} +% +% \begin{macro}[aux]{\seq_remove_duplicates_aux:NN} +% \begin{macro}[aux]{\seq_remove_duplicates_aux:n} +% \begin{macro}{\seq_remove_duplicates:N} +% \begin{macro}{\seq_gremove_duplicates:N} +% Copied from "\clist_remove_duplicates". +% \begin{macrocode} +\cs_new:Nn \seq_remove_duplicates_aux:NN { + \seq_clear:N \l_seq_remove_seq + \seq_map_function:NN #2 \seq_remove_duplicates_aux:n + #1 #2 \l_seq_remove_seq +} +\cs_new:Nn \seq_remove_duplicates_aux:n { + \seq_if_in:NnF \l_seq_remove_seq {#1} { + \seq_put_right:Nn \l_seq_remove_seq {#1} + } +} +% \end{macrocode} +% \begin{macrocode} +\cs_new_nopar:Npn \seq_remove_duplicates:N { + \seq_remove_duplicates_aux:NN \seq_set_eq:NN +} +\cs_new_nopar:Npn \seq_gremove_duplicates:N { + \seq_remove_duplicates_aux:NN \seq_gset_eq:NN +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% % \subsection{Sequence stacks} % % \begin{macro}{\seq_push:Nn} diff --git a/Master/texmf-dist/source/latex/expl3/l3tl.dtx b/Master/texmf-dist/source/latex/expl3/l3tl.dtx index e63646016e8..011f99fc26a 100644 --- a/Master/texmf-dist/source/latex/expl3/l3tl.dtx +++ b/Master/texmf-dist/source/latex/expl3/l3tl.dtx @@ -36,7 +36,7 @@ \RequirePackage{l3names} % %\fi -\GetIdInfo$Id: l3tl.dtx 1365 2009-05-31 17:26:17Z mittelba $ +\GetIdInfo$Id: l3tl.dtx 1421 2009-07-10 21:10:59Z joseph $ {L3 Experimental Token Lists} %\iffalse %<*driver> @@ -123,7 +123,6 @@ % \tl_set:NV | % \tl_set:No | % \tl_set:Nv | -% \tl_set:Nd | % \tl_set:Nf | % \tl_set:Nx | % \tl_set:cn | @@ -134,7 +133,6 @@ % \tl_gset:Nc | % \tl_gset:No | % \tl_gset:NV | -% \tl_gset:Nd | % \tl_gset:Nv | % \tl_gset:Nx | % \tl_gset:cn | @@ -869,7 +867,6 @@ % \begin{macro}{\tl_set:NV} % \begin{macro}{\tl_set:No} % \begin{macro}{\tl_set:Nv} -% \begin{macro}{\tl_set:Nd} % \begin{macro}{\tl_set:Nf} % \begin{macro}{\tl_set:Nx} % \begin{macro}{\tl_set:cn} @@ -880,7 +877,6 @@ % \begin{macro}{\tl_gset:NV} % \begin{macro}{\tl_gset:No} % \begin{macro}{\tl_gset:Nv} -% \begin{macro}{\tl_gset:Nd} % \begin{macro}{\tl_gset:Nx} % \begin{macro}{\tl_gset:cn} % \begin{macro}{\tl_gset:cx} @@ -934,8 +930,8 @@ % The remaining functions can just be defined with help from the % expansion module. % \begin{macrocode} -\cs_generate_variant:Nn \tl_set:Nn {NV,No,Nv,Nd,Nf,cn,cV,co,cx} -\cs_generate_variant:Nn \tl_gset:Nn {NV,No,Nv,Nd,cn,cx} +\cs_generate_variant:Nn \tl_set:Nn {NV,No,Nv,Nf,cn,cV,co,cx} +\cs_generate_variant:Nn \tl_gset:Nn {NV,No,Nv,cn,cx} % \end{macrocode} % \end{macro} % \end{macro} @@ -954,8 +950,6 @@ % \end{macro} % \end{macro} % \end{macro} -% \end{macro} -% \end{macro} % % \begin{macro}{\tl_set_eq:NN} % \begin{macro}{\tl_set_eq:Nc} @@ -1123,8 +1117,7 @@ \tl_gset:Nx #1 { #2 \exp_not:V #1 } % \chk_local_or_pref_global:N #1 } -\cs_generate_variant:Nn \tl_put_left:Nn {cn,co} -\cs_generate_variant:Nn \tl_put_left:NV {cV} +\cs_generate_variant:Nn \tl_put_left:Nn {cn,co,cV} % \end{macrocode} % % \begin{macrocode} @@ -1202,8 +1195,7 @@ % \end{macrocode} % % \begin{macrocode} -\cs_generate_variant:Nn \tl_gput_right:Nn {cn,co} -\cs_generate_variant:Nn \tl_gput_right:NV {cV} +\cs_generate_variant:Nn \tl_gput_right:Nn {cn,co,cV} % \end{macrocode} % \end{macro} % \end{macro} @@ -1869,13 +1861,13 @@ % \begin{macrocode} \cs_new:Npn \tl_set_rescan_aux:NNnn #1#2#3#4 { \group_begin: - \toks_set:No \etex_everyeof:D { \c_two_ats_with_two_catcodes_tl } + \toks_set:NV \etex_everyeof:D \c_two_ats_with_two_catcodes_tl \tex_endlinechar:D = \c_minus_one #3 \exp_after:wN \tl_rescan_aux:w \etex_scantokens:D {#4} - \exp_args:NNNo + \exp_args:NNNV \group_end: - #1 #2 { \l_tmpa_tl } + #1 #2 \l_tmpa_toks } % \end{macrocode} % @@ -1885,7 +1877,7 @@ \exp_after:wN \tl_rescan_aux:w \exp_after:wN # \exp_after:wN 1 \c_two_ats_with_two_catcodes_tl { - \tl_set:Nn \l_tmpa_tl {#1} + \tl_set:Nn \l_tmpa_toks {#1} } % \end{macrocode} % @@ -1910,9 +1902,9 @@ \tex_endlinechar:D = \c_minus_one #2 \tl_set:Nx \l_tmpa_tl { \etex_scantokens:D {#3} } - \exp_args:NNNo + \exp_args:NNNV \group_end: - \tl_set:Nn #1 { \l_tmpa_tl } + \tl_set:Nn #1 \l_tmpa_tl } % \end{macrocode} % Globally is easier again: @@ -1937,11 +1929,12 @@ % \begin{macrocode} \cs_new:Npn \tl_rescan:nn #1#2 { \group_begin: - \etex_everyeof:D { \exp_not:N } + \toks_set:NV \etex_everyeof:D \c_two_ats_with_two_catcodes_tl \tex_endlinechar:D = \c_minus_one #1 - \toks_set:Nx \l_tmpa_toks { \etex_scantokens:D {#2} } - \exp_args:NV \group_end: \l_tmpa_toks + \exp_after:wN \tl_rescan_aux:w \etex_scantokens:D {#2} + \exp_args:NV \group_end: + \l_tmpa_toks } % \end{macrocode} % \end{macro} diff --git a/Master/texmf-dist/source/latex/expl3/l3toks.dtx b/Master/texmf-dist/source/latex/expl3/l3toks.dtx index e5575678f27..80c9305ffb6 100644 --- a/Master/texmf-dist/source/latex/expl3/l3toks.dtx +++ b/Master/texmf-dist/source/latex/expl3/l3toks.dtx @@ -36,7 +36,7 @@ \RequirePackage{l3names} % %\fi -\GetIdInfo$Id: l3toks.dtx 1362 2009-05-28 20:19:21Z joseph $ +\GetIdInfo$Id: l3toks.dtx 1412 2009-06-14 17:55:48Z joseph $ {L3 Experimental Token Registers} %\iffalse %<*driver> @@ -125,14 +125,12 @@ % \toks_set:Nv | % \toks_set:No | % \toks_set:Nx | -% \toks_set:Nd | % \toks_set:Nf | % \toks_set:cn | % \toks_set:co | % \toks_set:cV | % \toks_set:cv | % \toks_set:cx | -% \toks_set:cd | % \toks_set:cf } % \begin{syntax} % "\toks_set:Nn" \Arg{token list} @@ -386,14 +384,12 @@ % \begin{macro}{\toks_set:Nv} % \begin{macro}{\toks_set:No} % \begin{macro}{\toks_set:Nx} -% \begin{macro}{\toks_set:Nd} % \begin{macro}{\toks_set:Nf} % \begin{macro}{\toks_set:cn} % \begin{macro}{\toks_set:co} % \begin{macro}{\toks_set:cV} % \begin{macro}{\toks_set:cv} % \begin{macro}{\toks_set:cx} -% \begin{macro}{\toks_set:cd} % \begin{macro}{\toks_set:cf} % |\toks_set:Nn|\m{toks}\m{stuff} stores \m{stuff} without expansion % in \m{toks}. |\toks_set:No| and |\toks_set:Nx| expand \m{stuff} once @@ -401,7 +397,7 @@ % \begin{macrocode} %<*check> \cs_new_nopar:Npn \toks_set:Nn #1 { \chk_local:N #1 #1 } -\cs_generate_variant:Nn \toks_set:Nn {No,Nd,Nf} +\cs_generate_variant:Nn \toks_set:Nn {No,Nf} % % \end{macrocode} % If we don't check if \m{toks} is a local register then the @@ -420,9 +416,6 @@ #1 \exp_after:wN { \int_to_roman:w -`0 \exp_eval_register:c {#2} } } \cs_new:Npn \toks_set:No #1#2 { #1 \exp_after:wN {#2} } -\cs_new:Npn \toks_set:Nd #1#2 { - #1 \exp_after:wN \exp_after:wN \exp_after:wN {#2} -} \cs_new:Npn \toks_set:Nf #1#2 { #1 \exp_after:wN { \int_to_roman:w -`0#2 } } @@ -430,7 +423,7 @@ % \end{macrocode} % % \begin{macrocode} -\cs_generate_variant:Nn \toks_set:Nn {Nx,cn,cV,cv,co,cx,cd,cf} +\cs_generate_variant:Nn \toks_set:Nn {Nx,cn,cV,cv,co,cx,cf} % \end{macrocode} % \end{macro} % \end{macro} @@ -444,8 +437,6 @@ % \end{macro} % \end{macro} % \end{macro} -% \end{macro} -% \end{macro} % % \begin{macro}{\toks_gset:Nn} % \begin{macro}{\toks_gset:NV} -- cgit v1.2.3