summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/expl3
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/expl3')
-rw-r--r--Master/texmf-dist/tex/latex/expl3/expl3.sty45
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3basics.sty107
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3box.sty2
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3calc.sty2
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3chk.sty2
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3clist.sty2
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3doc.cls79
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3expan.sty2
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3file.sty156
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3font.sty26
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3fp.sty2
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3int.sty5
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3keyval.sty2
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3precom.sty2
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3prg.sty2
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3prop.sty2
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3quark.sty82
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3seq.sty457
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3tl.sty120
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3token.sty2
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3toks.sty2
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3xref.sty2
22 files changed, 637 insertions, 466 deletions
diff --git a/Master/texmf-dist/tex/latex/expl3/expl3.sty b/Master/texmf-dist/tex/latex/expl3/expl3.sty
index cec0003dbd8..d9ade26fef4 100644
--- a/Master/texmf-dist/tex/latex/expl3/expl3.sty
+++ b/Master/texmf-dist/tex/latex/expl3/expl3.sty
@@ -49,7 +49,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: expl3.dtx 2156 2011-02-17 15:40:23Z will $
+\GetIdInfo$Id: expl3.dtx 2222 2011-04-09 12:47:12Z will $
{L3 Experimental code bundle wrapper}%
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
@@ -89,7 +89,6 @@
l3file,
l3fp,
l3luatex,
- l3font
}
\RequirePackage{calc}
\bool_if:nT { \@l@expl@check@declarations@bool } {
@@ -105,6 +104,48 @@
LaTeX~will~create~the~variable~and~continue.
}
}
+\tex_ifodd:D \@l@expl@check@declarations@bool \scan_stop:
+ \cs_set_protected:Npn \_tl_check_exists:N #1
+ {
+ \cs_if_exist:NF #1
+ {
+ \msg_kernel_error:nnx { check } { non-declared-variable }
+ { \token_to_str:N #1 }
+ }
+ }
+ \cs_set_protected:Npn \tl_set:Nn #1#2
+ {
+ \_tl_check_exists:N #1
+ \cs_set_nopar:Npx #1 { \exp_not:n {#2} }
+ }
+ \cs_set_protected:Npn \tl_set:Nx #1#2
+ {
+ \_tl_check_exists:N #1
+ \cs_set_nopar:Npx #1 {#2}
+ }
+ \cs_set_protected:Npn \tl_gset:Nn #1#2
+ {
+ \_tl_check_exists:N #1
+ \cs_gset_nopar:Npx #1 { \exp_not:n {#2} }
+ }
+ \cs_set_protected:Npn \tl_gset:Nx #1#2
+ {
+ \_tl_check_exists:N #1
+ \cs_gset_nopar:Npx #1 {#2}
+ }
+ \cs_set_protected:Npn \tl_set_eq:NN #1#2
+ {
+ \_tl_check_exists:N #1
+ \_tl_check_exists:N #2
+ \cs_set_eq:NN #1 #2
+ }
+ \cs_set_protected:Npn \tl_gset_eq:NN #1#2
+ {
+ \_tl_check_exists:N #1
+ \_tl_check_exists:N #2
+ \cs_gset_eq:NN #1 #2
+ }
+\tex_fi:D
%%
%%
%% End of file `expl3.sty'.
diff --git a/Master/texmf-dist/tex/latex/expl3/l3basics.sty b/Master/texmf-dist/tex/latex/expl3/l3basics.sty
index 8afc6cdeb81..f5a32767b56 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3basics.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3basics.sty
@@ -48,7 +48,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3basics.dtx 2158 2011-02-26 12:37:22Z mittelba $
+\GetIdInfo$Id: l3basics.dtx 2246 2011-04-23 08:01:25Z joseph $
{L3 Experimental basic definitions}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
@@ -174,8 +174,10 @@
\cs_set:Npn \use_none:nnnnnnnn #1#2#3#4#5#6#7#8{}
\cs_set:Npn \use_none:nnnnnnnnn #1#2#3#4#5#6#7#8#9{}
\cs_set:Npn \exp_args:Nc #1#2{\exp_after:wN#1\cs:w#2\cs_end:}
-\cs_set:Npn \prg_return_true: { \exp_after:wN\if_true:\tex_romannumeral:D }
-\cs_set:Npn \prg_return_false: {\exp_after:wN\if_false:\tex_romannumeral:D }
+\cs_set_nopar:Npn \prg_return_true:
+ { \exp_after:wN \use_i:nn \tex_romannumeral:D }
+\cs_set_nopar:Npn \prg_return_false:
+ { \exp_after:wN \use_ii:nn \tex_romannumeral:D }
\cs_set_protected:Npn \prg_set_conditional:Npnn #1{
\prg_get_parm_aux:nw{
\cs_split_function:NN #1 \prg_generate_conditional_aux:nnNNnnnn
@@ -246,46 +248,64 @@
\use:c{prg_generate_#3_form_#1:Nnnnn} #2
\prg_generate_conditional_aux:nnw{#1}{#2}
}
-\cs_set:Npn \prg_generate_p_form_parm:Nnnnn #1#2#3#4#5{
- \exp_args:Nc #1 {#2_p:#3}#4{#5 \c_zero
- \exp_after:wN\c_true_bool\else:\exp_after:wN\c_false_bool\fi:
+\cs_set_protected:Npn \prg_generate_p_form_parm:Nnnnn #1#2#3#4#5
+ {
+ \exp_args:Nc #1 { #2 _p: #3 } #4
+ {
+ #5 \c_zero
+ \c_true_bool \c_false_bool
+ }
}
-}
-\cs_set:Npn \prg_generate_TF_form_parm:Nnnnn #1#2#3#4#5{
- \exp_args:Nc#1 {#2:#3TF}#4{#5 \c_zero
- \exp_after:wN \use_i:nn \else: \exp_after:wN \use_ii:nn \fi:
+\cs_set_protected:Npn \prg_generate_T_form_parm:Nnnnn #1#2#3#4#5
+ {
+ \exp_args:Nc #1 { #2 : #3 T } #4
+ {
+ #5 \c_zero
+ \use:n \use_none:n
+ }
}
-}
-\cs_set:Npn \prg_generate_T_form_parm:Nnnnn #1#2#3#4#5{
- \exp_args:Nc#1 {#2:#3T}#4{#5 \c_zero
- \else:\exp_after:wN\use_none:nn\fi:\use:n
+\cs_set_protected:Npn \prg_generate_F_form_parm:Nnnnn #1#2#3#4#5
+ {
+ \exp_args:Nc #1 { #2 : #3 F } #4
+ {
+ #5 \c_zero
+ { }
+ }
}
-}
-\cs_set:Npn \prg_generate_F_form_parm:Nnnnn #1#2#3#4#5{
- \exp_args:Nc#1 {#2:#3F}#4{#5 \c_zero
- \exp_after:wN\use_none:nn\fi:\use:n
+\cs_set_protected:Npn \prg_generate_TF_form_parm:Nnnnn #1#2#3#4#5
+ {
+ \exp_args:Nc #1 { #2 : #3 TF } #4
+ { #5 \c_zero }
}
-}
-\cs_set:Npn \prg_generate_p_form_count:Nnnnn #1#2#3#4#5{
- \cs_generate_from_arg_count:cNnn {#2_p:#3} #1 {#4}{#5 \c_zero
- \exp_after:wN\c_true_bool\else:\exp_after:wN\c_false_bool\fi:
+\cs_set_protected:Npn \prg_generate_p_form_count:Nnnnn #1#2#3#4#5
+ {
+ \cs_generate_from_arg_count:cNnn { #2 _p: #3 } #1 {#4}
+ {
+ #5 \c_zero
+ \c_true_bool \c_false_bool
+ }
}
-}
-\cs_set:Npn \prg_generate_TF_form_count:Nnnnn #1#2#3#4#5{
- \cs_generate_from_arg_count:cNnn {#2:#3TF} #1 {#4}{#5 \c_zero
- \exp_after:wN\use_i:nn\else:\exp_after:wN\use_ii:nn\fi:
+\cs_set_protected:Npn \prg_generate_T_form_count:Nnnnn #1#2#3#4#5
+ {
+ \cs_generate_from_arg_count:cNnn { #2 : #3 T } #1 {#4}
+ {
+ #5 \c_zero
+ \use:n \use_none:n
+ }
}
-}
-\cs_set:Npn \prg_generate_T_form_count:Nnnnn #1#2#3#4#5{
- \cs_generate_from_arg_count:cNnn {#2:#3T} #1 {#4}{#5 \c_zero
- \else:\exp_after:wN\use_none:nn\fi:\use:n
+\cs_set_protected:Npn \prg_generate_F_form_count:Nnnnn #1#2#3#4#5
+ {
+ \cs_generate_from_arg_count:cNnn { #2 : #3 F } #1 {#4}
+ {
+ #5 \c_zero
+ { }
+ }
}
-}
-\cs_set:Npn \prg_generate_F_form_count:Nnnnn #1#2#3#4#5{
- \cs_generate_from_arg_count:cNnn {#2:#3F} #1 {#4}{#5 \c_zero
- \exp_after:wN\use_none:nn\fi:\use:n
+\cs_set_protected:Npn \prg_generate_TF_form_count:Nnnnn #1#2#3#4#5
+ {
+ \cs_generate_from_arg_count:cNnn { #2 : #3 TF } #1 {#4}
+ { #5 \c_zero }
}
-}
\cs_set:Npn \prg_set_eq_conditional_aux:NNNn #1#2#3#4 {
\prg_set_eq_conditional_aux:NNNw #1#2#3#4,?,\q_recursion_stop
}
@@ -306,14 +326,15 @@
\cs_set:Npn \prg_conditional_form_F:nnn #1#2#3 {#1:#2F}
\tex_chardef:D \c_true_bool = 1~
\tex_chardef:D \c_false_bool = 0~
-\cs_set_nopar:Npn \cs_to_str:N {
- \if:w \exp_after:wN \cs_str_aux:w\token_to_str:N \a ax\q_stop
- \else:
- \exp_after:wN \exp_after:wN\exp_after:wN \use_ii:nn
- \fi:
- \exp_after:wN \use_none:n \token_to_str:N
-}
-\cs_set:Npn \cs_str_aux:w #1#2#3#4\q_stop{#2#3}
+\cs_set:Npn \cs_to_str:N
+ {
+ \tex_if:D \tex_romannumeral:D - `0 \token_to_str:N \ %
+ \cs_to_str_aux:w
+ \tex_fi:D
+ \exp_after:wN \use_none:n \token_to_str:N
+ }
+\cs_set_nopar:Npn \cs_to_str_aux:w #1 \use_none:n
+ { ~ \tex_romannumeral:D - `0 \tex_fi:D }
\group_begin:
\tex_lccode:D `\@ = `\: \scan_stop:
\tex_catcode:D `\@ = 12~
diff --git a/Master/texmf-dist/tex/latex/expl3/l3box.sty b/Master/texmf-dist/tex/latex/expl3/l3box.sty
index 7b06929a060..f96675fe755 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3box.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3box.sty
@@ -48,7 +48,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3box.dtx 2178 2011-03-06 09:03:44Z mittelba $
+\GetIdInfo$Id: l3box.dtx 2223 2011-04-09 12:57:14Z will $
{L3 Experimental Box module}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
diff --git a/Master/texmf-dist/tex/latex/expl3/l3calc.sty b/Master/texmf-dist/tex/latex/expl3/l3calc.sty
index e77f86aca93..c880a0c091d 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3calc.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3calc.sty
@@ -48,7 +48,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3calc.dtx 1776 2010-02-07 21:51:23Z joseph $
+\GetIdInfo$Id: l3calc.dtx 2223 2011-04-09 12:57:14Z will $
{L3 Experimental calc module}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
diff --git a/Master/texmf-dist/tex/latex/expl3/l3chk.sty b/Master/texmf-dist/tex/latex/expl3/l3chk.sty
index b059aa3167e..1cb606b8618 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3chk.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3chk.sty
@@ -49,7 +49,7 @@
%% -----------------------------------------------------------------------
%%
\RequirePackage{l3names}
-\GetIdInfo$Id: l3chk.dtx 1362 2009-05-28 20:19:21Z joseph $
+\GetIdInfo$Id: l3chk.dtx 2223 2011-04-09 12:57:14Z will $
{L3 Experimental check module}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
diff --git a/Master/texmf-dist/tex/latex/expl3/l3clist.sty b/Master/texmf-dist/tex/latex/expl3/l3clist.sty
index abbf7133cea..e7afede66af 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3clist.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3clist.sty
@@ -48,7 +48,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3clist.dtx 2178 2011-03-06 09:03:44Z mittelba $
+\GetIdInfo$Id: l3clist.dtx 2223 2011-04-09 12:57:14Z will $
{L3 Experimental comma separated lists}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
diff --git a/Master/texmf-dist/tex/latex/expl3/l3doc.cls b/Master/texmf-dist/tex/latex/expl3/l3doc.cls
index e79e3fbee21..279bb170083 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3doc.cls
+++ b/Master/texmf-dist/tex/latex/expl3/l3doc.cls
@@ -53,7 +53,7 @@
\let \filedateOld \filedate
\let \fileversionOld \fileversion
\let \filedescriptionOld \filedescription
-\GetIdInfo$Id: l3doc.dtx 2180 2011-03-06 10:38:35Z will $
+\GetIdInfo$Id: l3doc.dtx 2228 2011-04-10 08:37:13Z joseph $
{L3 Experimental documentation class}
\ProvidesExplClass
{\filename}{\filedate}{\fileversion}{\filedescription}
@@ -94,7 +94,7 @@
\ProcessOptions
\LoadClass{article}
\RequirePackage{doc}
-\RequirePackage{array,alphalph,booktabs,color,fixltx2e,enumitem,textcomp,trace,underscore}
+\RequirePackage{array,alphalph,booktabs,color,fixltx2e,enumitem,textcomp,trace,underscore,csquotes}
\bool_if:NT \g_doc_lmodern_bool {
\RequirePackage[T1]{fontenc}
\RequirePackage{lmodern}
@@ -103,11 +103,23 @@
\let\doc@verbatim\verbatim
\let\enddoc@verbatim\endverbatim
\let\doc@@verbatim\@verbatim
+\expandafter\let\csname doc@verbatim*\expandafter\endcsname
+ \csname verbatim*\endcsname
+\expandafter\let\csname enddoc@verbatim*\expandafter\endcsname
+ \csname endverbatim*\endcsname
+\expandafter\let\csname doc@@verbatim*\expandafter\endcsname
+ \csname @verbatim*\endcsname
\RequirePackage{verbatim}
\AtBeginDocument{%
\let\verbatim\doc@verbatim
\let\endverbatim\enddoc@verbatim
\let\@verbatim\doc@@verbatim
+ \expandafter\let\csname verbatim*\expandafter\endcsname
+ \csname doc@verbatim*\endcsname
+ \expandafter\let\csname endverbatim*\expandafter\endcsname
+ \csname enddoc@verbatim*\endcsname
+ \expandafter\let\csname @verbatim*\expandafter\endcsname
+ \csname doc@@verbatim*\endcsname
}
\cs_set_nopar:Npn \MakePrivateLetters {
\char_make_letter:N \@
@@ -200,12 +212,21 @@
}{
\endenumerate
}
-\group_begin:
\char_make_active:N \<
-\cs_new_nopar:Npn \function {
+\DeclareDocumentCommand \function { O{} } {
+
\phantomsection
+
+ \bool_gset_false:N \l_doc_meta_TF_bool
+ \bool_gset_false:N \l_doc_meta_pTF_bool
+ \bool_gset_false:N \l_doc_meta_EXP_bool
+
+ \cs_set_nopar:Npn \KV_key_no_value_elt:n ##1 { \use:c {doc_meta_opt_##1:} }
+ \KV_parse_space_removal_sanitize:n {#1}
+
\char_make_active:N \<
\cs_set_eq:NN < \doc_open_meta:n
+
\group_begin:
\MakePrivateLetters
\char_make_other:N \|
@@ -216,8 +237,19 @@
\char_make_ignore:N \^^I
\function_aux:n
}
-\group_end:
+\char_make_other:N \<
\cs_set_eq:NN \variabledoc \function
+\cs_set:Nn \doc_meta_opt_TF: {
+ \bool_gset_true:N \l_doc_meta_TF_bool
+}
+\cs_set:Nn \doc_meta_opt_EXP: {
+ \bool_gset_true:N \l_doc_meta_EXP_bool
+}
+\cs_set:Nn \doc_meta_opt_pTF: {
+ \bool_gset_true:N \l_doc_meta_pTF_bool
+ \bool_gset_true:N \l_doc_meta_TF_bool
+ \bool_gset_true:N \l_doc_meta_EXP_bool
+}
\group_begin:
\char_make_other:N \|
\cs_gset_nopar:Npn \function_aux:n #1 {
@@ -248,26 +280,22 @@
\bool_new:N \l_doc_meta_EXP_bool
\cs_new_nopar:Npn \doc_showmacro_aux:w #1 / #2 \q_stop {
- \tl_if_in:nnTF {#2} { (TF) } {
+ \tl_if_in:nnT {#2} { (TF) } {
\bool_gset_true:N \l_doc_meta_TF_bool
- }{
- \bool_gset_false:N \l_doc_meta_TF_bool
}
- \tl_if_in:nnTF {#2} { (EXP) } {
+
+ \tl_if_in:nnT {#2} { (EXP) } {
\bool_gset_true:N \l_doc_meta_EXP_bool
- }{
- \bool_gset_false:N \l_doc_meta_EXP_bool
}
- \tl_if_in:nnTF {#2} { (pTF) } {
+
+ \tl_if_in:nnT {#2} { (pTF) } {
\bool_gset_true:N \l_doc_meta_TF_bool
\bool_gset_true:N \l_doc_meta_pTF_bool
\bool_gset_true:N \l_doc_meta_EXP_bool
- \tl_set:Nx \l_doc_pTF_name_tl { \doc_predicate_from_base:w #1 \q_nil }
- }{
- \bool_gset_false:N \l_doc_meta_pTF_bool
}
\bool_if:NT \l_doc_meta_pTF_bool {
+ \tl_set:Nx \l_doc_pTF_name_tl { \doc_predicate_from_base:w #1 \q_nil }
\doc_special_main_index:o { \l_doc_pTF_name_tl }
\seq_gput_right:Nx \g_doc_functions_seq { \tl_to_str:N \l_doc_pTF_name_tl }
}
@@ -360,6 +388,7 @@
{ \int_incr:N \g_doc_nested_macro_int }
\bool_set_false:N \l_doc_macro_aux_bool
+ \bool_set_false:N \l_doc_macro_internal_bool
\bool_set_false:N \l_doc_macro_TF_bool
\bool_set_false:N \l_doc_macro_pTF_bool
\bool_set_false:N \l_doc_macro_var_bool
@@ -387,23 +416,30 @@
\bool_if:NTF \l_doc_macro_pTF_bool
{
\clist_map_inline:nn {#1}
- {
- \exp_args:Nf \doc_macro_single
- { \doc_predicate_from_base:w ##1 \q_nil }
- }
+ {
+ \tl_if_blank:nF {##1}
+ {
+ \exp_args:Nf \doc_macro_single
+ { \doc_predicate_from_base:w ##1 \q_nil }
+ }
+ }
\bool_set_true:N \l_doc_macro_TF_bool
- \clist_map_inline:nn {#1} { \doc_macro_single {##1} }
+ \clist_map_inline:nn {#1}
+ { \tl_if_blank:nF {##1} { \doc_macro_single {##1} } }
\bool_set_false:N \l_doc_macro_TF_bool
}
{
- \clist_map_inline:nn {#1} { \doc_macro_single {##1} }
+ \clist_map_inline:nn {#1}
+ { \tl_if_blank:nF {##1} { \doc_macro_single {##1} } }
}
}
+\bool_new:N \l_doc_macro_internal_bool
\bool_new:N \l_doc_macro_aux_bool
\bool_new:N \l_doc_macro_TF_bool
\bool_new:N \l_doc_macro_pTF_bool
\bool_new:N \l_doc_macro_var_bool
\cs_set_nopar:Npn \doc_macro_opt_aux: { \bool_set_true:N \l_doc_macro_aux_bool }
+\cs_set_nopar:Npn \doc_macro_opt_internal: { \bool_set_true:N \l_doc_macro_internal_bool }
\cs_set_nopar:Npn \doc_macro_opt_TF: { \bool_set_true:N \l_doc_macro_TF_bool }
\cs_set_nopar:Npn \doc_macro_opt_pTF: { \bool_set_true:N \l_doc_macro_pTF_bool }
\cs_set_nopar:Npn \doc_macro_opt_var: { \bool_set_true:N \l_doc_macro_var_bool }
@@ -606,6 +642,7 @@
}
\bool_if:nT {
!\l_doc_macro_aux_bool &&
+ !\l_doc_macro_internal_bool &&
\int_compare_p:n {\g_doc_nested_macro_int<1}
}
{
diff --git a/Master/texmf-dist/tex/latex/expl3/l3expan.sty b/Master/texmf-dist/tex/latex/expl3/l3expan.sty
index 7f52c7a22be..583e20f8513 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3expan.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3expan.sty
@@ -48,7 +48,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3expan.dtx 2037 2010-09-20 21:22:45Z joseph $
+\GetIdInfo$Id: l3expan.dtx 2223 2011-04-09 12:57:14Z will $
{L3 Experimental Argument Expansion module}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
diff --git a/Master/texmf-dist/tex/latex/expl3/l3file.sty b/Master/texmf-dist/tex/latex/expl3/l3file.sty
index b120352243b..d651ce408d5 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3file.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3file.sty
@@ -15,7 +15,8 @@
%% Do not distribute a modified version of this file.
%%
%%
-%% File: l3file.dtx Copyright (C) 2009-2010 LaTeX3 project
+%% File: l3file.dtx Copyright (C) 2009-2011 by
+%% The LaTeX3 Project <latex-team@latex-project.org>
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -24,7 +25,7 @@
%%
%% http://www.latex-project.org/lppl.txt
%%
-%% This file is part of the ``expl3 bundle'' (The Work in LPPL)
+%% This file is part of the "expl3 bundle" (The Work in LPPL)
%% and all files in that bundle must be distributed together.
%%
%% The released version of this bundle is available from CTAN.
@@ -44,93 +45,92 @@
%% Snapshots taken from the repository represent work in progress and may
%% not work or may contain conflicting material! We therefore ask
%% people _not_ to put them into distributions, archives, etc. without
-%% prior consultation with the LaTeX Project Team.
+%% prior consultation with the LaTeX3 Project.
%%
%% -----------------------------------------------------------------------
-%%
\RequirePackage{l3names}
-\GetIdInfo$Id: l3file.dtx 1853 2010-03-21 09:11:08Z joseph $
- {L3 Experimental file loading}
+\GetIdInfo$Id: l3file.dtx 2242 2011-04-21 08:07:24Z joseph $
+ {The LaTeX3 kernel: file operations}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
\package_check_loaded_expl:
\tl_new:N \g_file_current_name_tl
-\seq_new:N \g_file_stack_seq
\tl_gset_eq:NN \g_file_current_name_tl \@currname
+\seq_new:N \g_file_stack_seq
\seq_new:N \g_file_record_seq
+\tl_new:N \l_file_name_tl
\seq_new:N \l_file_search_path_seq
\seq_new:N \l_file_search_path_saved_seq
-\tl_new:N \l_file_name_tl
-\prg_new_protected_conditional:Nnn \file_if_exist:n { T , F , TF } {
- \ior_open:Nn \g_file_test_stream {#1}
- \ior_if_eof:NTF \g_file_test_stream
- { \file_if_exist_path_aux:n {#1} }
- {
- \ior_close:N \g_file_test_stream
- \tl_set:Nn \l_file_name_tl {#1}
- \prg_return_true:
- }
-}
-\cs_new_protected_nopar:Npn \file_if_exist_path_aux:n #1 {
- \tl_clear:N \l_file_name_tl
- \cs_if_exist:NT \input@path
- {
- \seq_set_eq:NN \l_file_search_path_saved_seq
- \l_file_search_path_seq
- \clist_map_inline:Nn \input@path
- { \seq_put_right:Nn \l_file_search_path_seq {##1} }
- }
- \seq_map_inline:Nn \l_file_search_path_seq
- {
- \ior_open:Nn \g_file_test_stream { ##1 #1 }
- \ior_if_eof:NF \g_file_test_stream
- {
- \tl_set:Nn \l_file_name_tl { ##1 #1 }
- \seq_map_break:
- }
- }
- \cs_if_exist:NT \input@path
- {
- \seq_set_eq:NN \l_file_search_path_seq
- \l_file_search_path_saved_seq
- }
- \ior_close:N \g_file_test_stream
- \tl_if_empty:NTF \l_file_name_tl
- { \prg_return_false: }
- { \prg_return_true: }
-}
-\cs_generate_variant:Nn \file_if_exist:nT { V }
-\cs_generate_variant:Nn \file_if_exist:nF { V }
-\cs_generate_variant:Nn \file_if_exist:nTF { V }
-\cs_new_protected_nopar:Npn \file_input:n #1 {
- \file_if_exist:nT {#1}
- {
- \@addtofilelist {#1}
- \seq_gpush:NV \g_file_stack_seq \g_file_current_name_tl
- \tl_gset:Nn \g_file_current_name_tl {#1}
- \tex_expandafter:D \tex_input:D \l_file_name_tl ~
- \seq_gpop:NN \g_file_stack_seq \g_file_current_name_tl
- }
-}
-\cs_generate_variant:Nn \file_input:n { V }
-\cs_new_protected_nopar:Npn \file_path_include:n #1 {
- \seq_put_right:Nn \l_file_search_path_seq {#1}
- \seq_remove_duplicates:N \l_file_search_path_seq
-}
-\cs_new_protected_nopar:Npn \file_path_remove:n #1 {
- \seq_remove_element:Nn \l_file_search_path_seq {#1}
-}
-\cs_new_protected_nopar:Npn \file_list: {
- \seq_remove_duplicates:N \g_file_record_seq
- \iow_log:n { *~File~List~* }
- \seq_map_function:NN \g_file_record_seq \file_list_aux:n
- \iow_log:n { ************* }
-}
-\cs_new_protected_nopar:Npn \file_list_aux:n #1 { \iow_log:n {#1} }
-\AtBeginDocument{
- \clist_map_inline:Nn \@filelist
- { \seq_put_right:Nn \g_file_record_seq {#1} }
-}
+\cs_new_protected_nopar:Npn \file_add_path:nN #1#2
+ {
+ \ior_open:Nn \g_file_test_stream {#1}
+ \ior_if_eof:NTF \g_file_test_stream
+ { \file_add_path_search:nN {#1} #2 }
+ {
+ \ior_close:N \g_file_test_stream
+ \tl_set:Nx #2 {#1}
+ }
+ }
+\cs_new_protected_nopar:Npn \file_add_path_search:nN #1#2
+ {
+ \tl_clear:N #2
+ \cs_if_exist:NT \input@path
+ {
+ \seq_set_eq:NN \l_file_search_path_saved_seq \l_file_search_path_seq
+ \clist_map_inline:Nn \input@path
+ { \seq_put_right:Nn \l_file_search_path_seq {##1} }
+ }
+ \seq_map_inline:Nn \l_file_search_path_seq
+ {
+ \ior_open:Nn \g_file_test_stream { ##1 #1 }
+ \ior_if_eof:NF \g_file_test_stream
+ {
+ \tl_set:Nx #2 { ##1 #1 }
+ \seq_map_break:
+ }
+ }
+ \cs_if_exist:NT \input@path
+ { \seq_set_eq:NN \l_file_search_path_seq \l_file_search_path_saved_seq }
+ \ior_close:N \g_file_test_stream
+ }
+\prg_new_protected_conditional:Nnn \file_if_exist:n { T , F , TF }
+ {
+ \file_add_path:nN {#1} \l_file_name_tl
+ \tl_if_empty:NTF \l_file_name_tl
+ { \prg_return_false: }
+ { \prg_return_true: }
+ }
+\cs_new_protected_nopar:Npn \file_input:n #1
+ {
+ \file_add_path:nN {#1} \l_file_name_tl
+ \tl_if_empty:NF \l_file_name_tl
+ {
+ \@addtofilelist {#1}
+ \seq_gpush:NV \g_file_stack_seq \g_file_current_name_tl
+ \tl_gset:Nn \g_file_current_name_tl {#1}
+ \tex_expandafter:D \tex_input:D \l_file_name_tl ~
+ \seq_gpop:NN \g_file_stack_seq \g_file_current_name_tl
+ }
+ }
+\cs_new_protected_nopar:Npn \file_path_include:n #1
+ {
+ \seq_if_in:NnF \l_file_search_path_seq {#1}
+ { \seq_put_right:Nn \l_file_search_path_seq {#1} }
+ }
+\cs_new_protected_nopar:Npn \file_path_remove:n #1
+ { \seq_remove_all:Nn \l_file_search_path_seq {#1} }
+\cs_new_protected_nopar:Npn \file_list:
+ {
+ \seq_remove_duplicates:N \g_file_record_seq
+ \iow_log:n { *~File~List~* }
+ \seq_map_inline:Nn \g_file_record_seq { \iow_log:n {##1} }
+ \iow_log:n { ************* }
+ }
+\AtBeginDocument
+ {
+ \clist_map_inline:Nn \@filelist
+ { \seq_put_right:Nn \g_file_record_seq {#1} }
+ }
%%
%%
%% End of file `l3file.sty'.
diff --git a/Master/texmf-dist/tex/latex/expl3/l3font.sty b/Master/texmf-dist/tex/latex/expl3/l3font.sty
index 78a6f23ec48..81e9661ba75 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3font.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3font.sty
@@ -48,24 +48,26 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3font.dtx 2175 2011-03-03 12:16:46Z will $
+\GetIdInfo$Id: l3font.dtx 2223 2011-04-09 12:57:14Z will $
{L3 Experimental Font Loading}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
\package_check_loaded_expl:
-\cs_new_protected:Npn \font_set:Nnn #1#2#3 { \tex_font:D #1 = #2 ~at~ #3 \scan_stop: }
-\cs_new_protected:Npn \font_gset:Nnn #1#2#3 {
+\cs_new_protected:Npn \fontface_set:Nnn #1#2#3 {
+ \tex_font:D #1 = #2 ~at~ #3 \scan_stop:
+}
+\cs_new_protected:Npn \fontface_gset:Nnn #1#2#3 {
\tex_global:D \tex_font:D #1 = #2 ~at~ #3 \scan_stop:
}
-\cs_generate_variant:Nn \font_set:Nnn {c}
-\cs_generate_variant:Nn \font_gset:Nnn {c}
-\cs_set_eq:NN \font_set_eq:NN \tex_let:D
-\cs_set_protected:Npn \font_gset_eq:NN { \tex_global:D \tex_let:D }
-\cs_set:Npn \font_set_to_current:N #1 {
- \exp_after:wN \font_set_eq:NN \exp_after:wN #1 \tex_the:D \tex_font:D
+\cs_generate_variant:Nn \fontface_set:Nnn {c}
+\cs_generate_variant:Nn \fontface_gset:Nnn {c}
+\cs_set_eq:NN \fontface_set_eq:NN \tex_let:D
+\cs_set_protected:Npn \fontface_gset_eq:NN { \tex_global:D \tex_let:D }
+\cs_set:Npn \fontface_set_to_current:N #1 {
+ \exp_after:wN \fontface_set_eq:NN \exp_after:wN #1 \tex_the:D \tex_font:D
}
-\cs_set:Npn \font_gset_to_current:N #1 {
- \tex_global:D \exp_after:wN \font_set_eq:NN \exp_after:wN #1 \tex_the:D \tex_font:D
+\cs_set:Npn \fontface_gset_to_current:N #1 {
+ \tex_global:D \exp_after:wN \fontface_set_eq:NN \exp_after:wN #1 \tex_the:D \tex_font:D
}
\luatex_if_engine:TF
{
@@ -93,7 +95,7 @@
\msg_kernel_new:nnn {l3font} {cmd-pdftex-unavail} {
The~ command~ `\exp_not:n{#1}'~ is~ not~ available~ for~ the~ pdfTeX~ format.
}
-\prg_new_conditional:Nnn \font_if_null:N {p,TF,T,F} {
+\prg_new_conditional:Nnn \fontface_if_null:N {p,TF,T,F} {
\if_meaning:w #1 \tex_nullfont:D
\prg_return_true:
\else:
diff --git a/Master/texmf-dist/tex/latex/expl3/l3fp.sty b/Master/texmf-dist/tex/latex/expl3/l3fp.sty
index 4ce67fbb7d9..9c042acad1b 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3fp.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3fp.sty
@@ -48,7 +48,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3fp.dtx 2178 2011-03-06 09:03:44Z mittelba $
+\GetIdInfo$Id: l3fp.dtx 2201 2011-03-19 17:16:13Z joseph $
{L3 Experimental floating-point operations}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
diff --git a/Master/texmf-dist/tex/latex/expl3/l3int.sty b/Master/texmf-dist/tex/latex/expl3/l3int.sty
index 97db73b44cd..9a6a034b355 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3int.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3int.sty
@@ -48,7 +48,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3int.dtx 2178 2011-03-06 09:03:44Z mittelba $
+\GetIdInfo$Id: l3int.dtx 2229 2011-04-11 17:37:05Z joseph $
{L3 Experimental Integer module}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
@@ -664,7 +664,8 @@
}
{
\chk_if_free_cs:N #1
- \tex_global:D \tex_mathchardef:D #1 = \int_eval:n {#2}
+ \tex_global:D \tex_mathchardef:D #1 =
+ \etex_numexpr:D #2 \scan_stop:
}
}
{
diff --git a/Master/texmf-dist/tex/latex/expl3/l3keyval.sty b/Master/texmf-dist/tex/latex/expl3/l3keyval.sty
index ad42ce146ee..6bf05f0c409 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3keyval.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3keyval.sty
@@ -48,7 +48,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3keyval.dtx 1890 2010-04-11 03:37:15Z will $
+\GetIdInfo$Id: l3keyval.dtx 2223 2011-04-09 12:57:14Z will $
{L3 Experimental keyval processing}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
diff --git a/Master/texmf-dist/tex/latex/expl3/l3precom.sty b/Master/texmf-dist/tex/latex/expl3/l3precom.sty
index 61cfe7c2a07..0fc29e1d11c 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3precom.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3precom.sty
@@ -48,7 +48,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3precom.dtx 1793 2010-02-09 20:36:19Z joseph $
+\GetIdInfo$Id: l3precom.dtx 2223 2011-04-09 12:57:14Z will $
{L3 Experimental precompilation module}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
diff --git a/Master/texmf-dist/tex/latex/expl3/l3prg.sty b/Master/texmf-dist/tex/latex/expl3/l3prg.sty
index 5e18591892b..d61832b0500 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3prg.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3prg.sty
@@ -48,7 +48,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3prg.dtx 2178 2011-03-06 09:03:44Z mittelba $
+\GetIdInfo$Id: l3prg.dtx 2223 2011-04-09 12:57:14Z will $
{L3 Experimental control structures}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
diff --git a/Master/texmf-dist/tex/latex/expl3/l3prop.sty b/Master/texmf-dist/tex/latex/expl3/l3prop.sty
index 4180388ee03..f688dd0c651 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3prop.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3prop.sty
@@ -48,7 +48,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3prop.dtx 2087 2010-11-23 18:21:44Z joseph $
+\GetIdInfo$Id: l3prop.dtx 2223 2011-04-09 12:57:14Z will $
{L3 Experimental Property Lists}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
diff --git a/Master/texmf-dist/tex/latex/expl3/l3quark.sty b/Master/texmf-dist/tex/latex/expl3/l3quark.sty
index 65935330d67..da25c0a0f3c 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3quark.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3quark.sty
@@ -48,7 +48,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3quark.dtx 2172 2011-03-03 10:56:49Z will $
+\GetIdInfo$Id: l3quark.dtx 2234 2011-04-14 19:58:43Z joseph $
{L3 Experimental Quark Commands}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
@@ -61,37 +61,55 @@
\quark_new:N\q_mark
\quark_new:N\q_recursion_tail
\quark_new:N\q_recursion_stop
-\cs_new:Npn \quark_if_recursion_tail_stop:n #1 {
- \exp_after:wN\if_meaning:w
- \quark_if_recursion_tail_aux:w #1?\q_stop\q_recursion_tail\q_recursion_tail
- \exp_after:wN \use_none_delimit_by_q_recursion_stop:w
- \fi:
-}
-\cs_new:Npn \quark_if_recursion_tail_stop:N #1 {
- \if_meaning:w#1\q_recursion_tail
- \exp_after:wN \use_none_delimit_by_q_recursion_stop:w
- \fi:
-}
-\cs_generate_variant:Nn \quark_if_recursion_tail_stop:n {o}
-\cs_new:Npn \quark_if_recursion_tail_stop_do:nn #1#2 {
- \exp_after:wN\if_meaning:w
- \quark_if_recursion_tail_aux:w #1?\q_stop\q_recursion_tail\q_recursion_tail
- \exp_after:wN \use_i_delimit_by_q_recursion_stop:nw
- \else:
- \exp_after:wN\use_none:n
- \fi:
- {#2}
-}
-\cs_new:Npn \quark_if_recursion_tail_stop_do:Nn #1#2 {
- \if_meaning:w #1\q_recursion_tail
- \exp_after:wN \use_i_delimit_by_q_recursion_stop:nw
- \else:
- \exp_after:wN\use_none:n
- \fi:
- {#2}
-}
-\cs_generate_variant:Nn \quark_if_recursion_tail_stop_do:nn {on}
-\cs_new:Npn \quark_if_recursion_tail_aux:w #1#2 \q_stop \q_recursion_tail {#1}
+\cs_new:Npn \quark_if_recursion_tail_stop:N #1
+ {
+ \tex_ifx:D #1 \q_recursion_tail
+ \exp_after:wN \use_none_delimit_by_q_recursion_stop:w
+ \tex_fi:D
+ }
+\cs_new:Npn \quark_if_recursion_tail_stop_do:Nn #1#2
+ {
+ \tex_ifx:D #1 \q_recursion_tail
+ \exp_after:wN \use_i_delimit_by_q_recursion_stop:nw
+ \tex_else:D
+ \exp_after:wN \use_none:n
+ \tex_fi:D
+ {#2}
+ }
+\cs_new:Npn \quark_if_recursion_tail_stop:n #1
+ {
+ \tex_ifcat:D
+ A
+ \etex_detokenize:D \exp_after:wN
+ {
+ \quark_if_recursion_tail_aux:w #1 \q_recursion_stop
+ \q_recursion_tail \q_recursion_stop \q_stop
+ }
+ A
+ \exp_after:wN \use_none_delimit_by_q_recursion_stop:w
+ \tex_fi:D
+ }
+\cs_new:Npn \quark_if_recursion_tail_stop_do:nn #1#2
+ {
+ \tex_ifcat:D
+ A
+ \etex_detokenize:D \exp_after:wN
+ {
+ \quark_if_recursion_tail_aux:w #1 \q_recursion_stop
+ \q_recursion_tail \q_recursion_stop \q_stop
+ }
+ A
+ \exp_after:wN \use_i_delimit_by_q_recursion_stop:nw
+ \tex_else:D
+ \exp_after:wN \use_none:n
+ \tex_fi:D
+ {#2}
+ }
+\cs_new:Npn \quark_if_recursion_tail_aux:w
+ #1 \q_recursion_tail #2 \q_recursion_stop #3 \q_stop
+ { #1 #2 }
+\cs_generate_variant:Nn \quark_if_recursion_tail_stop:n { o }
+\cs_generate_variant:Nn \quark_if_recursion_tail_stop_do:nn { o }
\prg_new_conditional:Nnn \quark_if_no_value:N {p,TF,T,F} {
\if_meaning:w \q_no_value #1
\prg_return_true: \else: \prg_return_false: \fi:
diff --git a/Master/texmf-dist/tex/latex/expl3/l3seq.sty b/Master/texmf-dist/tex/latex/expl3/l3seq.sty
index 2ccbaf7c977..b43fdbae470 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3seq.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3seq.sty
@@ -15,7 +15,8 @@
%% Do not distribute a modified version of this file.
%%
%%
-%% File: l3seq.dtx Copyright (C) 1990-2010 LaTeX3 project
+%% File: l3seq.dtx Copyright (C) 1990-2011 by
+%% The LaTeX3 Project <latex-team@latex-project.org>
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -24,7 +25,7 @@
%%
%% http://www.latex-project.org/lppl.txt
%%
-%% This file is part of the ``expl3 bundle'' (The Work in LPPL)
+%% This file is part of the "expl3 bundle" (The Work in LPPL)
%% and all files in that bundle must be distributed together.
%%
%% The released version of this bundle is available from CTAN.
@@ -44,17 +45,22 @@
%% Snapshots taken from the repository represent work in progress and may
%% not work or may contain conflicting material! We therefore ask
%% people _not_ to put them into distributions, archives, etc. without
-%% prior consultation with the LaTeX Project Team.
+%% prior consultation with the LaTeX3 Project.
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3seq.dtx 1879 2010-03-29 17:48:38Z mittelba $
- {L3 Experimental sequences and stacks}
+\GetIdInfo$Id: l3seq.dtx 2245 2011-04-21 19:45:31Z joseph $
+ {The LaTeX3 kernel: sequences and stacks}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
\package_check_loaded_expl:
-\cs_new:Npn \seq_elt:w {\ERROR}
-\cs_new:Npn \seq_elt_end: {\ERROR}
+\cs_new:Npn \seq_item:n
+ {
+ \seq_use_error:
+ \use_none:n
+ }
+\tl_new:N \l_seq_tmpa_tl
+\tl_new:N \l_seq_tmpb_tl
\cs_new_eq:NN \seq_new:N \tl_new:N
\cs_new_eq:NN \seq_new:c \tl_new:c
\cs_new_eq:NN \seq_clear:N \tl_clear:N
@@ -65,149 +71,308 @@
\cs_new_eq:NN \seq_clear_new:c \tl_clear_new:c
\cs_new_eq:NN \seq_gclear_new:N \tl_gclear_new:N
\cs_new_eq:NN \seq_gclear_new:c \tl_gclear_new:c
-\cs_new_eq:NN \seq_set_eq:NN \cs_set_eq:NN
-\cs_new_eq:NN \seq_set_eq:cN \cs_set_eq:cN
-\cs_new_eq:NN \seq_set_eq:Nc \cs_set_eq:Nc
-\cs_new_eq:NN \seq_set_eq:cc \cs_set_eq:cc
-\cs_new_eq:NN \seq_gset_eq:NN \cs_gset_eq:NN
-\cs_new_eq:NN \seq_gset_eq:cN \cs_gset_eq:cN
-\cs_new_eq:NN \seq_gset_eq:Nc \cs_gset_eq:Nc
-\cs_new_eq:NN \seq_gset_eq:cc \cs_gset_eq:cc
-\cs_new_protected_nopar:Npn \seq_concat:NNN #1#2#3 {
- \tl_set:Nx #1 { \exp_not:V #2 \exp_not:V #3 }
-}
-\cs_generate_variant:Nn \seq_concat:NNN {ccc}
-\cs_new_protected_nopar:Npn \seq_gconcat:NNN #1#2#3 {
- \tl_gset:Nx #1 { \exp_not:V #2 \exp_not:V #3 }
-}
-\cs_generate_variant:Nn \seq_gconcat:NNN {ccc}
-\prg_new_eq_conditional:NNn \seq_if_empty:N \tl_if_empty:N {p,TF,T,F}
-\prg_new_eq_conditional:NNn \seq_if_empty:c \tl_if_empty:c {p,TF,T,F}
-\cs_new_nopar:Npn \seq_if_empty_err:N #1 {
- \if_meaning:w #1 \c_empty_tl
- \tl_clear:N \l_kernel_testa_tl % catch prefixes
- \msg_kernel_bug:x {Empty~sequence~`\token_to_str:N#1'}
- \fi:
-}
-\prg_new_protected_conditional:Nnn \seq_if_in:Nn {TF,T,F} {
- \cs_set:Npn \seq_tmp:w ##1 \seq_elt:w #2 \seq_elt_end: ##2##3 \q_stop {
- \if_meaning:w \q_no_value ##2
- \prg_return_false: \else: \prg_return_true: \fi:
+\cs_new_eq:NN \seq_set_eq:NN \tl_set_eq:NN
+\cs_new_eq:NN \seq_set_eq:Nc \tl_set_eq:Nc
+\cs_new_eq:NN \seq_set_eq:cN \tl_set_eq:cN
+\cs_new_eq:NN \seq_set_eq:cc \tl_set_eq:cc
+\cs_new_eq:NN \seq_gset_eq:NN \tl_gset_eq:NN
+\cs_new_eq:NN \seq_gset_eq:Nc \tl_gset_eq:Nc
+\cs_new_eq:NN \seq_gset_eq:cN \tl_gset_eq:cN
+\cs_new_eq:NN \seq_gset_eq:cc \tl_gset_eq:cc
+\cs_new_protected_nopar: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
+ { \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 }
+\cs_new_protected:Npn \seq_put_left:Nn #1#2
+ { \tl_put_left:Nn #1 { \seq_item:n {#2} } }
+\cs_new_protected:Npn \seq_put_right:Nn #1#2
+ { \tl_put_right:Nn #1 { \seq_item:n {#2} } }
+\cs_generate_variant:Nn \seq_put_left:Nn { NV , Nv , No , Nx }
+\cs_generate_variant:Nn \seq_put_left:Nn { c , cV , cv , co , cx }
+\cs_generate_variant:Nn \seq_put_right:Nn { NV , Nv , No , Nx }
+\cs_generate_variant:Nn \seq_put_right:Nn { c , cV , cv , co , cx }
+\cs_new_protected:Npn \seq_gput_left:Nn #1#2
+ { \tl_gput_left:Nn #1 { \seq_item:n {#2} } }
+\cs_new_protected:Npn \seq_gput_right:Nn #1#2
+ { \tl_gput_right:Nn #1 { \seq_item:n {#2} } }
+\cs_generate_variant:Nn \seq_gput_left:Nn { NV , Nv , No , Nx }
+\cs_generate_variant:Nn \seq_gput_left:Nn { c , cV , cv , co , cx }
+\cs_generate_variant:Nn \seq_gput_right:Nn { NV , Nv , No , Nx }
+\cs_generate_variant:Nn \seq_gput_right:Nn { c , cV , cv , co , cx }
+\cs_new:Npn \seq_break: #1 \seq_break_point:n #2 {#2}
+\cs_new:Npn \seq_break:n #1#2 \seq_break_point:n #3 { #3 #1 }
+\cs_new_eq:NN \seq_map_break: \seq_break:
+\cs_new_eq:NN \seq_map_break:n \seq_break:n
+\cs_new_eq:NN \seq_break_point:n \use:n
+\cs_new_protected_nopar:Npn \seq_if_empty_err_break:N #1
+ {
+ \tex_ifx:D #1 \c_empty_tl
+ \msg_kernel_bug:x { Empty~sequence~\token_to_str:N #1 }
+ \exp_after:wN \seq_break:
+ \tex_fi:D
}
- \exp_after:wN \seq_tmp:w #1 \seq_elt:w #2 \seq_elt_end: \q_no_value \q_stop
-}
-\cs_generate_variant:Nn \seq_if_in:NnTF { NV, cV, co, c, cx}
-\cs_generate_variant:Nn \seq_if_in:NnT { NV, cV, co, c, cx}
-\cs_generate_variant:Nn \seq_if_in:NnF { NV, cV, co, c, cx}
-\cs_new_protected_nopar:Npn \seq_get:NN #1 {
- \seq_if_empty_err:N #1
- \exp_after:wN \seq_get_aux:w #1 \q_stop
-}
-\cs_new_protected:Npn \seq_get_aux:w \seq_elt:w #1 \seq_elt_end: #2 \q_stop #3 {
- \tl_set:Nn #3 {#1}
-}
-\cs_generate_variant:Nn \seq_get:NN {c}
-\cs_new_protected:Npn \seq_pop_aux:nnNN #1#2#3 {
- \seq_if_empty_err:N #3
- \exp_after:wN \seq_pop_aux:w #3 \q_stop #1#2#3
-}
-\cs_new_protected:Npn \seq_pop_aux:w
- \seq_elt:w #1 \seq_elt_end: #2\q_stop #3#4#5#6 {
- #3 #5 {#2}
- #4 #6 {#1}
-}
-\cs_new_eq:NN \seq_show:N \tl_show:N
-\cs_new_eq:NN \seq_show:c \tl_show:c
-\cs_new_protected_nopar:Npn \seq_display:N #1 {
- \iow_term:x { Sequence~\token_to_str:N #1~contains~
- the~elements~(without~outer~braces): }
- \toks_clear:N \l_tmpa_toks
- \seq_map_inline:Nn #1 {
- \toks_if_empty:NF \l_tmpa_toks {
- \toks_put_right:Nx \l_tmpa_toks {^^J>~}
- }
- \toks_put_right:Nx \l_tmpa_toks {
- \c_space_tl \iow_char:N \{ \exp_not:n {##1} \iow_char:N \}
- }
- }
- \toks_show:N \l_tmpa_toks
-}
-\cs_generate_variant:Nn \seq_display:N {c}
-\cs_new_protected:Npn \seq_put_aux:Nnn #1 {
- \exp_after:wN \seq_put_aux:w #1 \q_stop #1
-}
-\cs_new_protected:Npn \seq_put_aux:w #1\q_stop #2#3#4 { \tl_set:Nn #2 {#3#1#4} }
-\cs_new_protected:Npn \seq_put_left:Nn #1#2 {
- \seq_put_aux:Nnn #1 {\seq_elt:w #2\seq_elt_end:} {}
-}
-\cs_generate_variant:Nn \seq_put_left:Nn {NV,No,Nx,c,cV,co}
-\cs_new_protected:Npn \seq_put_right:Nn #1#2{
- \seq_put_aux:Nnn #1{}{\seq_elt:w #2\seq_elt_end:}}
-\cs_generate_variant:Nn \seq_put_right:Nn {NV,No,Nx,c,cV,co}
-\cs_new_protected:Npn \seq_gput_left:Nn {
- \pref_global:D
- \seq_put_left:Nn
-}
-\cs_new_protected:Npn \seq_gput_right:Nn {
- \pref_global:D
- \seq_put_right:Nn
-}
-\cs_generate_variant:Nn \seq_gput_left:Nn {NV,No,Nx,c,cV,co}
-\cs_generate_variant:Nn \seq_gput_right:Nn {NV,No,Nx,c,cV,co}
-\cs_new_protected:Npn \seq_map_variable_aux:Nnw #1#2 \seq_elt:w #3 \seq_elt_end: {
- \tl_set:Nn #1 {#3}
- \quark_if_nil:NT #1 \seq_map_break:
- #2
- \seq_map_variable_aux:Nnw #1{#2}
-}
-\cs_new_protected:Npn \seq_map_variable:NNn #1#2#3 {
- \tl_set:Nn #2 {\seq_map_variable_aux:Nnw #2{#3}}
- \exp_after:wN #2 #1 \seq_elt:w \q_nil\seq_elt_end: \q_stop
-}
-\cs_generate_variant:Nn \seq_map_variable:NNn {c}
-\cs_new_eq:NN \seq_map_break: \use_none_delimit_by_q_stop:w
-\cs_new_eq:NN \seq_map_break:n \use_i_delimit_by_q_stop:nw
-\cs_new_protected_nopar:Npn \seq_map_function:NN #1#2 {
- \cs_set:Npn \seq_elt:w ##1 \seq_elt_end: {#2{##1}}
- #1 \use_none:n \q_stop
- \cs_set_eq:NN \seq_elt:w \ERROR
-}
-\cs_generate_variant:Nn \seq_map_function:NN {c}
-\cs_new_protected_nopar:Npn \seq_map_inline:Nn #1#2 {
- \cs_set:Npn \seq_elt:w ##1 \seq_elt_end: {#2}
- #1 \use_none:n \q_stop
- \cs_set_eq:NN \seq_elt:w \ERROR
+\cs_new:Npn \seq_map_function:NN #1#2
+ {
+ \exp_after:wN \seq_map_function_aux:NNn \exp_after:wN #2 #1
+ { ? \seq_map_break: } { }
+ \seq_break_point:n { }
+ }
+\cs_new:Npn \seq_map_function_aux:NNn #1#2#3
+ {
+ \use_none:n #2
+ #1 {#3}
+ \seq_map_function_aux:NNn #1
+ }
+\cs_generate_variant:Nn \seq_map_function:NN { c }
+\int_new:N \g_seq_nesting_depth_int
+\cs_new_protected:Npn \seq_push_item_def:n
+ {
+ \seq_push_item_def_aux:
+ \cs_gset:Npn \seq_item:n ##1
+ }
+\cs_new_protected:Npn \seq_push_item_def:x
+ {
+ \seq_push_item_def_aux:
+ \cs_gset:Npx \seq_item:n ##1
+ }
+\cs_new_protected:Npn \seq_push_item_def_aux:
+ {
+ \cs_gset_eq:cN { seq_item_ \int_use:N \g_seq_nesting_depth_int :n }
+ \seq_item:n
+ \int_gincr:N \g_seq_nesting_depth_int
+ }
+\cs_new_protected_nopar:Npn \seq_pop_item_def:
+ {
+ \int_gdecr:N \g_seq_nesting_depth_int
+ \cs_gset_eq:Nc \seq_item:n
+ { seq_item_ \int_use:N \g_seq_nesting_depth_int :n }
+ }
+\cs_new_protected:Npn \seq_map_inline:Nn #1#2
+ {
+ \seq_push_item_def:n {#2}
+ #1
+ \seq_break_point:n { \seq_pop_item_def: }
+ }
+\cs_generate_variant:Nn \seq_map_inline:Nn { c }
+\cs_new_protected:Npn \seq_map_variable:NNn #1#2#3
+ {
+ \seq_push_item_def:x
+ {
+ \tl_set:Nn \exp_not:N #2 {##1}
+ \exp_not:n {#3}
+ }
+ #1
+ \seq_break_point:n { \seq_pop_item_def: }
+ }
+\cs_generate_variant:Nn \seq_map_variable:NNn { Nc }
+\cs_generate_variant:Nn \seq_map_variable:NNn { c , cc }
+\cs_new_eq:NN \seq_push:Nn \seq_put_left:Nn
+\cs_new_eq:NN \seq_push:NV \seq_put_left:NV
+\cs_new_eq:NN \seq_push:Nv \seq_put_left:Nv
+\cs_new_eq:NN \seq_push:No \seq_put_left:No
+\cs_new_eq:NN \seq_push:Nx \seq_put_left:Nx
+\cs_new_eq:NN \seq_push:cn \seq_put_left:cn
+\cs_new_eq:NN \seq_push:cV \seq_put_left:cV
+\cs_new_eq:NN \seq_push:cv \seq_put_left:cv
+\cs_new_eq:NN \seq_push:co \seq_put_left:co
+\cs_new_eq:NN \seq_push:cx \seq_put_left:cx
+\cs_new_eq:NN \seq_gpush:Nn \seq_gput_left:Nn
+\cs_new_eq:NN \seq_gpush:NV \seq_gput_left:NV
+\cs_new_eq:NN \seq_gpush:Nv \seq_gput_left:Nv
+\cs_new_eq:NN \seq_gpush:No \seq_gput_left:No
+\cs_new_eq:NN \seq_gpush:Nx \seq_gput_left:Nx
+\cs_new_eq:NN \seq_gpush:cn \seq_gput_left:cn
+\cs_new_eq:NN \seq_gpush:cV \seq_gput_left:cV
+\cs_new_eq:NN \seq_gpush:cv \seq_gput_left:cv
+\cs_new_eq:NN \seq_gpush:co \seq_gput_left:co
+\cs_new_eq:NN \seq_gpush:cx \seq_gput_left:cx
+\cs_new_protected_nopar:Npn \seq_get_left:NN #1#2
+ {
+ \seq_if_empty_err_break:N #1
+ \exp_after:wN \seq_get_left_aux:Nw #1 \q_stop #2
+ \seq_break_point:n { }
+ }
+\cs_new_protected:Npn \seq_get_left_aux:Nw \seq_item:n #1#2 \q_stop #3
+ { \tl_set:Nn #3 {#1} }
+\cs_generate_variant:Nn \seq_get_left:NN { c }
+\cs_new_protected_nopar:Npn \seq_pop_left:NN
+ { \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
+ {
+ \seq_if_empty_err_break:N #2
+ \exp_after:wN \seq_pop_left_aux:Nw #2 \q_stop #1#2#3
+ \seq_break_point:n { }
+ }
+\cs_new_protected:Npn \seq_pop_left_aux:Nw \seq_item:n #1#2 \q_stop #3#4#5
+ {
+ #3 #4 {#2}
+ \tl_set:Nn #5 {#1}
+ }
+\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
+ {
+ \seq_if_empty_err_break:N #1
+ \seq_get_right_aux:NN #1#2
+ \seq_break_point:n { }
+ }
+\cs_new_protected_nopar: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
+ \exp_after:wN \use_none:n #1
+ { \tl_set:Nn #2 }
+ { }
+ {
+ \seq_pop_item_def:
+ \seq_break:
+ }
}
-\cs_generate_variant:Nn \seq_map_inline:Nn {c}
+\cs_new:Npn \seq_get_right_loop:nn #1#2
+ {
+ #2 {#1}
+ \seq_get_right_loop:nn
+ }
+\cs_generate_variant:Nn \seq_get_right:NN { c }
+\cs_new_protected_nopar:Npn \seq_pop_right:NN
+ { \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
+ {
+ \seq_if_empty_err_break:N #2
+ \seq_pop_right_aux_ii:NNN #1 #2 #3
+ \seq_break_point:n { }
+ }
+\cs_new_protected_nopar:Npn \seq_pop_right_aux_ii:NNN #1#2#3
+ {
+ \seq_push_item_def:n { \exp_not:n { \seq_item:n {##1} } }
+ #1 #2 { \tex_iffalse:D } \tex_fi:D
+ \exp_after:wN \exp_after:wN \exp_after:wN \seq_get_right_loop:nn
+ \exp_after:wN \use_none:n #2
+ {
+ \tex_iffalse:D { \tex_fi:D }
+ \tl_set:Nn #3
+ }
+ { }
+ {
+ \seq_pop_item_def:
+ \seq_break:
+ }
+ }
+\cs_generate_variant:Nn \seq_pop_right:NN { c }
+\cs_generate_variant:Nn \seq_gpop_right:NN { c }
+\cs_new_eq:NN \seq_get:NN \seq_get_left:NN
+\cs_new_eq:NN \seq_get:cN \seq_get_left:cN
+\cs_new_eq:NN \seq_pop:NN \seq_pop_left:NN
+\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
+\prg_new_eq_conditional:NNn \seq_if_empty:N \tl_if_empty:N
+ { p , T , F , TF }
+\prg_new_eq_conditional:NNn \seq_if_empty:c \tl_if_empty:c
+ { p , T , F , TF }
+\prg_new_protected_conditional:Npnn \seq_if_in:Nn #1#2
+ { T , F , TF }
+ {
+ \group_begin:
+ \tl_set:Nn \l_seq_tmpa_tl {#2}
+ \cs_set_protected:Npn \seq_item:n ##1
+ {
+ \tl_set:Nn \l_seq_tmpb_tl {##1}
+ \tex_ifx:D \l_seq_tmpa_tl \l_seq_tmpb_tl
+ \exp_after:wN \seq_if_in_aux:
+ \tex_fi:D
+ }
+ #1
+ \seq_break:n { \prg_return_false: }
+ \seq_break_point:n { \group_end: }
+ }
+\cs_new_nopar:Npn \seq_if_in_aux: { \seq_break:n { \prg_return_true: } }
+\cs_generate_variant:Nn \seq_if_in:NnT { NV , Nv , No , Nx }
+\cs_generate_variant:Nn \seq_if_in:NnT { c , cV , cv , co , cx }
+\cs_generate_variant:Nn \seq_if_in:NnF { NV , Nv , No , Nx }
+\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 }
\seq_new:N \l_seq_remove_seq
-\cs_new_protected:Npn \seq_remove_duplicates_aux:NN #1#2 {
- \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_protected:Npn \seq_remove_duplicates_aux:n #1 {
- \seq_if_in:NnF \l_seq_remove_seq {#1} {
- \seq_put_right:Nn \l_seq_remove_seq {#1}
+\cs_new_protected:Npn \seq_remove_duplicates:N
+ { \seq_remove_duplicates_aux:NN \seq_set_eq:NN }
+\cs_new_protected:Npn \seq_gremove_duplicates:N
+ { \seq_remove_duplicates_aux:NN \seq_gset_eq:NN }
+\cs_new_protected:Npn \seq_remove_duplicates_aux:NN #1#2
+ {
+ \seq_clear:N \l_seq_remove_seq
+ \seq_map_inline:Nn #2
+ {
+ \seq_if_in:NnF \l_seq_remove_seq {##1}
+ { \seq_put_right:Nn \l_seq_remove_seq {##1} }
+ }
+ #1 #2 \l_seq_remove_seq
}
-}
-\cs_new_protected_nopar:Npn \seq_remove_duplicates:N {
- \seq_remove_duplicates_aux:NN \seq_set_eq:NN
-}
-\cs_new_protected_nopar:Npn \seq_gremove_duplicates:N {
- \seq_remove_duplicates_aux:NN \seq_gset_eq:NN
-}
-\cs_new_eq:NN \seq_push:Nn \seq_put_left:Nn
-\cs_new_eq:NN \seq_push:NV \seq_put_left:NV
-\cs_new_eq:NN \seq_push:No \seq_put_left:No
-\cs_new_eq:NN \seq_push:cn \seq_put_left:cn
-\cs_new_protected_nopar:Npn \seq_pop:NN { \seq_pop_aux:nnNN \tl_set:Nn \tl_set:Nn }
-\cs_generate_variant:Nn \seq_pop:NN {c}
-\cs_new_eq:NN \seq_gpush:Nn \seq_gput_left:Nn
-\cs_new_protected_nopar:Npn \seq_gpop:NN { \seq_pop_aux:nnNN \tl_gset:Nn \tl_set:Nn }
-\cs_generate_variant:Nn \seq_gpush:Nn {NV,No,c,Nv}
-\cs_generate_variant:Nn \seq_gpop:NN {c}
-\cs_new_eq:NN \seq_top:NN \seq_get:NN
-\cs_new_eq:NN \seq_top:cN \seq_get:cN
+\cs_generate_variant:Nn \seq_remove_duplicates:N { c }
+\cs_generate_variant:Nn \seq_gremove_duplicates:N { c }
+\cs_new_protected:Npn \seq_remove_all:Nn
+ { \seq_remove_all_aux:NNn \tl_set:Nx }
+\cs_new_protected:Npn \seq_gremove_all:Nn
+ { \seq_remove_all_aux:NNn \tl_gset:Nx }
+\cs_new_protected:Npn \seq_remove_all_aux:NNn #1#2#3
+ {
+ \seq_push_item_def:n
+ {
+ \str_if_eq:nnT {##1} {#3}
+ {
+ \tex_iffalse:D { \tex_fi:D }
+ \tl_set:Nn \l_seq_tmpb_tl {##1}
+ #1 #2
+ { \tex_iffalse:D } \tex_fi:D
+ \exp_not:o {#2}
+ \tl_if_eq:NNT \l_seq_tmpa_tl \l_seq_tmpb_tl
+ { \use_none:nn }
+ }
+ \exp_not:n { \seq_item:n {##1} }
+ }
+ \tl_set:Nn \l_seq_tmpa_tl {#3}
+ #1 #2 {#2}
+ \seq_pop_item_def:
+ }
+\cs_generate_variant:Nn \seq_remove_all:Nn { c }
+\cs_generate_variant:Nn \seq_gremove_all:Nn { c }
+\tl_new:N \l_seq_show_tl
+\cs_new_protected_nopar:Npn \seq_show:N #1
+ {
+ \seq_if_empty:NTF #1
+ {
+ \iow_term:x { Sequence~\token_to_str:N #1 \c_space_tl is~empty }
+ \tl_show:n { }
+ }
+ {
+ \iow_term:x
+ {
+ Sequence~\token_to_str:N #1 \c_space_tl
+ contains~the~items~(without~outer~braces):
+ }
+ \tl_set:Nx \l_seq_show_tl
+ { \seq_map_function:NN #1 \seq_show_aux:n }
+ \etex_showtokens:D \exp_after:wN \exp_after:wN \exp_after:wN
+ { \exp_after:wN \seq_show_aux:w \l_seq_show_tl }
+ }
+ }
+\cs_new:Npn \seq_show_aux:n #1
+ {
+ \iow_newline: > \c_space_tl \c_space_tl
+ \iow_char:N \{ \exp_not:n {#1} \iow_char:N \}
+ }
+\cs_new:Npn \seq_show_aux:w #1 > ~ { }
+\cs_generate_variant:Nn \seq_show:N { c }
+\cs_new_eq:NN \seq_top:NN \seq_get_left:NN
+\cs_new_eq:NN \seq_top:cN \seq_get_left:cN
+\cs_new_eq:NN \seq_display:N \seq_show:N
+\cs_new_eq:NN \seq_display:c \seq_show:c
%%
%%
%% End of file `l3seq.sty'.
diff --git a/Master/texmf-dist/tex/latex/expl3/l3tl.sty b/Master/texmf-dist/tex/latex/expl3/l3tl.sty
index cacec3e0fdf..29bba61d462 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3tl.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3tl.sty
@@ -48,19 +48,19 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3tl.dtx 2184 2011-03-07 18:07:12Z joseph $
+\GetIdInfo$Id: l3tl.dtx 2223 2011-04-09 12:57:14Z will $
{L3 Experimental Token Lists}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
\package_check_loaded_expl:
\cs_new_protected:Npn \tl_new:Nn #1#2{
\chk_if_free_cs:N #1
- \cs_gset_nopar:Npn #1{#2}
+ \tl_gset:Nn #1 {#2}
}
\cs_generate_variant:Nn \tl_new:Nn {cn}
\cs_new_protected:Npn \tl_new:Nx #1#2{
\chk_if_free_cs:N #1
- \cs_gset_nopar:Npx #1{#2}
+ \tl_gset:Nx #1 {#2}
}
\cs_new_protected_nopar:Npn \tl_new:N #1{\tl_new:Nn #1{}}
\cs_new_protected_nopar:Npn \tl_new:c #1{\tl_new:cn {#1}{}}
@@ -553,120 +553,6 @@
\tl_head:w #1 \q_stop \exp_not:N #2
\prg_return_true: \else: \prg_return_false: \fi:
}
-\tex_ifodd:D \@l@expl@check@declarations@bool \scan_stop:
- \cs_set_protected:Npn \_tl_check_exists:N #1
- {
- \cs_if_exist:NF #1
- {
- \msg_kernel_error:nnx { check } { non-declared-variable }
- { \token_to_str:N #1 }
- }
- }
- \cs_set_protected:Npn \tl_set:Nn #1#2
- {
- \_tl_check_exists:N #1
- \cs_set_nopar:Npx #1 { \exp_not:n {#2} }
- }
- \cs_set_protected:Npn \tl_set:Nx #1#2
- {
- \_tl_check_exists:N #1
- \cs_set_nopar:Npx #1 {#2}
- }
- \cs_set_protected:Npn \tl_gset:Nn #1#2
- {
- \_tl_check_exists:N #1
- \cs_gset_nopar:Npx #1 { \exp_not:n {#2} }
- }
- \cs_set_protected:Npn \tl_gset:Nx #1#2
- {
- \_tl_check_exists:N #1
- \cs_gset_nopar:Npx #1 {#2}
- }
- \cs_set_protected:Npn \tl_set_eq:NN #1#2
- {
- \_tl_check_exists:N #1
- \_tl_check_exists:N #2
- \cs_set_eq:NN #1 #2
- }
- \cs_set_protected:Npn \tl_gset_eq:NN #1#2
- {
- \_tl_check_exists:N #1
- \_tl_check_exists:N #2
- \cs_gset_eq:NN #1 #2
- }
- \cs_set_protected:Npn \tl_put_right:Nn #1#2 {
- \_tl_check_exists:N #1
- \cs_set_nopar:Npx #1 { \exp_not:o #1 \exp_not:n {#2} }
- }
- \cs_set_protected:Npn \tl_put_right:NV #1#2 {
- \_tl_check_exists:N #1
- \cs_set_nopar:Npx #1 { \exp_not:o #1 \exp_not:V #2 }
- }
- \cs_set_protected:Npn \tl_put_right:Nv #1#2 {
- \_tl_check_exists:N #1
- \cs_set_nopar:Npx #1 { \exp_not:o #1 \exp_not:v {#2} }
- }
- \cs_set_protected:Npn \tl_put_right:No #1#2 {
- \_tl_check_exists:N #1
- \cs_set_nopar:Npx #1 { \exp_not:o #1 \exp_not:o {#2} }
- }
- \cs_set_protected:Npn \tl_put_right:Nx #1#2 {
- \_tl_check_exists:N #1
- \cs_set_nopar:Npx #1 { \exp_not:o #1 #2 }
- }
- \cs_set_protected:Npn \tl_gput_right:Nn #1#2 {
- \_tl_check_exists:N #1
- \cs_gset_nopar:Npx #1 { \exp_not:o #1 \exp_not:n {#2} }
- }
- \cs_set_protected:Npn \tl_gput_right:NV #1#2 {
- \_tl_check_exists:N #1
- \cs_gset_nopar:Npx #1 { \exp_not:o #1 \exp_not:V #2 }
- }
- \cs_set_protected:Npn \tl_gput_right:Nv #1#2 {
- \_tl_check_exists:N #1
- \cs_gset_nopar:Npx #1 { \exp_not:o #1 \exp_not:v {#2} }
- }
- \cs_set_protected:Npn \tl_gput_right:Nx #1#2 {
- \_tl_check_exists:N #1
- \cs_gset_nopar:Npx #1 { \exp_not:o #1 #2 }
- }
- \cs_set_protected:Npn \tl_put_left:Nn #1#2 {
- \_tl_check_exists:N #1
- \cs_set_nopar:Npx #1 { \exp_not:n {#2} \exp_not:o #1 }
- }
- \cs_set_protected:Npn \tl_put_left:NV #1#2 {
- \_tl_check_exists:N #1
- \cs_set_nopar:Npx #1 { \exp_not:V #2 \exp_not:o #1 }
- }
- \cs_set_protected:Npn \tl_put_left:Nv #1#2 {
- \_tl_check_exists:N #1
- \cs_set_nopar:Npx #1 { \exp_not:v {#2} \exp_not:o #1 }
- }
- \cs_set_protected:Npn \tl_put_left:No #1#2 {
- \_tl_check_exists:N #1
- \cs_set_nopar:Npx #1 { \exp_not:o {#2} \exp_not:o #1 }
- }
- \cs_set_protected:Npn \tl_put_left:Nx #1#2 {
- \_tl_check_exists:N #1
- \cs_set_nopar:Npx #1 { #2 \exp_not:o #1 }
- }
- \cs_set_protected:Npn \tl_gput_left:Nn #1#2 {
- \_tl_check_exists:N #1
- \cs_gset_nopar:Npx #1 { \exp_not:n {#2} \exp_not:o #1 }
- }
- \cs_set_protected:Npn \tl_gput_left:NV #1#2 {
- \_tl_check_exists:N #1
- \cs_gset_nopar:Npx #1 { \exp_not:V #2 \exp_not:o #1 }
- }
- \cs_set_protected:Npn \tl_gput_left:Nv #1#2 {
- \_tl_check_exists:N #1
- \cs_gset_nopar:Npx #1 { \exp_not:v {#2} \exp_not:o #1 }
- }
- \cs_set_protected:Npn \tl_gput_left:Nx #1#2 {
- \_tl_check_exists:N #1
- \cs_gset_nopar:Npx #1 { #2 \exp_not:o #1 }
- }
-\tex_fi:D
%%
%%
%% End of file `l3tl.sty'.
diff --git a/Master/texmf-dist/tex/latex/expl3/l3token.sty b/Master/texmf-dist/tex/latex/expl3/l3token.sty
index 4fa8cc3f704..9013497ff87 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3token.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3token.sty
@@ -48,7 +48,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3token.dtx 2151 2011-02-16 06:58:12Z will $
+\GetIdInfo$Id: l3token.dtx 2223 2011-04-09 12:57:14Z will $
{L3 Experimental token investigation and manipulation}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
diff --git a/Master/texmf-dist/tex/latex/expl3/l3toks.sty b/Master/texmf-dist/tex/latex/expl3/l3toks.sty
index 23c8f1fd9dd..23abea78be8 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3toks.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3toks.sty
@@ -48,7 +48,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3toks.dtx 2037 2010-09-20 21:22:45Z joseph $
+\GetIdInfo$Id: l3toks.dtx 2223 2011-04-09 12:57:14Z will $
{L3 Experimental Token Registers}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
diff --git a/Master/texmf-dist/tex/latex/expl3/l3xref.sty b/Master/texmf-dist/tex/latex/expl3/l3xref.sty
index 44e5bc5e554..99ed3f83b47 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3xref.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3xref.sty
@@ -48,7 +48,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3xref.dtx 2151 2011-02-16 06:58:12Z will $
+\GetIdInfo$Id: l3xref.dtx 2223 2011-04-09 12:57:14Z will $
{L3 Experimental cross referencing}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}