summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-03-31 00:04:47 +0000
committerKarl Berry <karl@freefriends.org>2010-03-31 00:04:47 +0000
commit3ab55a61f6f8d2218a8f3175bc7481ce162b60d3 (patch)
treef606e0c2117a8058213441400e50ba25400ba94a /Master/texmf-dist/tex/latex
parent035ea73193af75f6ade46e306603e61d82b24950 (diff)
expl3 1881 (30mar10)
git-svn-id: svn://tug.org/texlive/trunk@17631 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
-rw-r--r--Master/texmf-dist/tex/latex/expl3/expl3.sty136
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3basics.sty83
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3box.sty66
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3calc.sty4
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3clist.sty92
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3doc.cls9
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3expan.sty81
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3file.sty163
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3int.sty69
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3intexpr.sty3
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3io.sty259
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3keys.sty211
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3keyval.sty119
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3msg.sty168
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3names.sty58
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3num.sty30
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3precom.sty49
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3prg.sty57
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3prop.sty48
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3quark.sty8
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3seq.sty63
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3skip.sty77
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3tl.sty437
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3token.sty114
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3toks.sty45
-rw-r--r--Master/texmf-dist/tex/latex/expl3/l3xref.sty3
26 files changed, 1464 insertions, 988 deletions
diff --git a/Master/texmf-dist/tex/latex/expl3/expl3.sty b/Master/texmf-dist/tex/latex/expl3/expl3.sty
index 684dab217f2..be01e6750ef 100644
--- a/Master/texmf-dist/tex/latex/expl3/expl3.sty
+++ b/Master/texmf-dist/tex/latex/expl3/expl3.sty
@@ -49,15 +49,15 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: expl3.dtx 1677 2009-11-02 08:24:04Z joseph $
+\GetIdInfo$Id: expl3.dtx 1866 2010-03-23 08:29:27Z joseph $
{L3 Experimental code bundle wrapper}%
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
+\RequirePackage{etex}
\RequirePackage{
l3basics,
l3expan,
l3tl,
- l3num,
l3intexpr,
l3quark,
l3seq,
@@ -66,9 +66,9 @@
l3prg,
l3clist,
l3token,
- l3io,
l3prop,
l3msg,
+ l3io,
l3skip,
}
\RequirePackage{
@@ -80,6 +80,136 @@
l3xref,
l3file
}
+\bool_new:N \_l_expl_check_declarations_bool
+\DeclareOption{check-declarations}{
+ \bool_set_true:N \_l_expl_check_declarations_bool
+}
+\ProcessOptions \scan_stop:
+\bool_if:NT \_l_expl_check_declarations_bool {
+ \msg_kernel_new:nnnn { check } { non-declared-variable }
+ { The~variable~#1~has~not~been~declared~\msg_line_context:. }
+ {
+ Checking~is~active,~and~you~have~tried~do~so~something~like: \\
+ \c_space_tl \c_space_tl \tl_set:Nn #1 ~
+ \iow_char:N \{ ~ ... ~ \iow_char:N \} \\
+ without~first~having: \\
+ \c_space_tl \c_space_tl \tl_new:N #1 \\
+ \\
+ LaTeX~will~create~the~variable~and~continue.
+ }
+ \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:V #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:V #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:V #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:V #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:V #1 #2 }
+ }
+ \cs_set_protected:Npn \tl_gput_right:Nn #1#2 {
+ \_tl_check_exists:N #1
+ \cs_gset_nopar:Npx #1 { \exp_not:V #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:V #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:V #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:V #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:V #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:V #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:V #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:V #1 }
+ }
+ \cs_set_protected:Npn \tl_put_left:Nx #1#2 {
+ \_tl_check_exists:N #1
+ \cs_set_nopar:Npx #1 { #2 \exp_not:V #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:V #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:V #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:V #1 }
+ }
+ \cs_set_protected:Npn \tl_gput_left:Nx #1#2 {
+ \_tl_check_exists:N #1
+ \cs_gset_nopar:Npx #1 { #2 \exp_not:V #1 }
+ }
+}
%%
%%
%% 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 21d986edb7d..1934eccb2d8 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 1700 2009-11-04 21:15:58Z joseph $
+\GetIdInfo$Id: l3basics.dtx 1853 2010-03-21 09:11:08Z joseph $
{L3 Experimental basic definitions}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
@@ -133,6 +133,13 @@
\pref_protected:D \pref_long:D \cs_gset_nopar:Npx
}
\cs_set:Npn \use:c #1 { \cs:w#1\cs_end: }
+\cs_set_protected:Npn \use:x #1 {
+ \group_begin:
+ \cs_set:Npx \cs_tmp: {#1}
+ \exp_args:wN
+ \group_end:
+ \cs_tmp:
+}
\cs_set:Npn \use:n #1 {#1}
\cs_set:Npn \use:nn #1#2 {#1#2}
\cs_set:Npn \use:nnn #1#2#3 {#1#2#3}
@@ -169,60 +176,60 @@
\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:Npn \prg_set_conditional:Npnn #1{
+\cs_set_protected:Npn \prg_set_conditional:Npnn #1{
\prg_get_parm_aux:nw{
\cs_split_function:NN #1 \prg_generate_conditional_aux:nnNNnnnn
\cs_set:Npn {parm}
}
}
-\cs_set:Npn \prg_new_conditional:Npnn #1{
+\cs_set_protected:Npn \prg_new_conditional:Npnn #1{
\prg_get_parm_aux:nw{
\cs_split_function:NN #1 \prg_generate_conditional_aux:nnNNnnnn
\cs_new:Npn {parm}
}
}
-\cs_set:Npn \prg_set_protected_conditional:Npnn #1{
+\cs_set_protected:Npn \prg_set_protected_conditional:Npnn #1{
\prg_get_parm_aux:nw{
\cs_split_function:NN #1 \prg_generate_conditional_aux:nnNNnnnn
\cs_set_protected:Npn {parm}
}
}
-\cs_set:Npn \prg_new_protected_conditional:Npnn #1{
+\cs_set_protected:Npn \prg_new_protected_conditional:Npnn #1{
\prg_get_parm_aux:nw{
\cs_split_function:NN #1 \prg_generate_conditional_aux:nnNNnnnn
\cs_new_protected:Npn {parm}
}
}
-\cs_set:Npn \prg_set_conditional:Nnn #1{
+\cs_set_protected:Npn \prg_set_conditional:Nnn #1{
\exp_args:Nnf \prg_get_count_aux:nn{
\cs_split_function:NN #1 \prg_generate_conditional_aux:nnNNnnnn
\cs_set:Npn {count}
}{\cs_get_arg_count_from_signature:N #1}
}
-\cs_set:Npn \prg_new_conditional:Nnn #1{
+\cs_set_protected:Npn \prg_new_conditional:Nnn #1{
\exp_args:Nnf \prg_get_count_aux:nn{
\cs_split_function:NN #1 \prg_generate_conditional_aux:nnNNnnnn
\cs_new:Npn {count}
}{\cs_get_arg_count_from_signature:N #1}
}
-\cs_set:Npn \prg_set_protected_conditional:Nnn #1{
+\cs_set_protected:Npn \prg_set_protected_conditional:Nnn #1{
\exp_args:Nnf \prg_get_count_aux:nn{
\cs_split_function:NN #1 \prg_generate_conditional_aux:nnNNnnnn
\cs_set_protected:Npn {count}
}{\cs_get_arg_count_from_signature:N #1}
}
-\cs_set:Npn \prg_new_protected_conditional:Nnn #1{
+\cs_set_protected:Npn \prg_new_protected_conditional:Nnn #1{
\exp_args:Nnf \prg_get_count_aux:nn{
\cs_split_function:NN #1 \prg_generate_conditional_aux:nnNNnnnn
\cs_new_protected:Npn {count}
}{\cs_get_arg_count_from_signature:N #1}
}
-\cs_set:Npn \prg_set_eq_conditional:NNn #1#2#3 {
+\cs_set_protected:Npn \prg_set_eq_conditional:NNn #1#2#3 {
\prg_set_eq_conditional_aux:NNNn \cs_set_eq:cc #1#2 {#3}
}
-\cs_set:Npn \prg_new_eq_conditional:NNn #1#2#3 {
+\cs_set_protected:Npn \prg_new_eq_conditional:NNn #1#2#3 {
\prg_set_eq_conditional_aux:NNNn \cs_new_eq:cc #1#2 {#3}
}
\cs_set:Npn \prg_get_count_aux:nn #1#2 {#1{#2}}
@@ -389,18 +396,18 @@
\cs_set_eq:NwN \c_minus_one\m@ne
\tex_chardef:D \c_sixteen = 16~
\tex_chardef:D \c_zero = 0~
-\cs_set_nopar:Npn \iow_log:x {
+\cs_set_protected_nopar:Npn \iow_log:x {
\tex_immediate:D \iow_shipout_x:Nn \c_minus_one
}
-\cs_set_nopar:Npn \iow_term:x {
+\cs_set_protected_nopar:Npn \iow_term:x {
\tex_immediate:D \iow_shipout_x:Nn \c_sixteen
}
-\cs_set_nopar:Npn \msg_kernel_bug:x #1 {
+\cs_set_protected_nopar:Npn \msg_kernel_bug:x #1 {
\iow_term:x { This~is~a~LaTeX~bug:~check~coding! }
\tex_errmessage:D {#1}
}
\cs_set:Npn \cs_record_meaning:N #1{}
-\cs_set_nopar:Npn \chk_if_free_cs:N #1{
+\cs_set_protected_nopar:Npn \chk_if_free_cs:N #1{
\cs_if_free:NF #1
{
\msg_kernel_bug:x {Command~name~`\token_to_str:N #1'~
@@ -412,15 +419,19 @@
\iow_log:x{Defining~\token_to_str:N #1~on~
line~\tex_the:D \tex_inputlineno:D}
}
-\cs_set_nopar:Npn \chk_if_free_cs:c { \exp_args:Nc \chk_if_free_cs:N }
-\cs_set_nopar:Npn \chk_if_exist_cs:N #1 {
+\cs_set_protected_nopar:Npn \chk_if_free_cs:c {
+ \exp_args:Nc \chk_if_free_cs:N
+}
+\cs_set_protected_nopar:Npn \chk_if_exist_cs:N #1 {
\cs_if_exist:NF #1
{
\msg_kernel_bug:x {Command~ `\token_to_str:N #1'~
not~ yet~ defined!}
}
}
-\cs_set_nopar:Npn \chk_if_exist_cs:c {\exp_args:Nc \chk_if_exist_cs:N }
+\cs_set_protected_nopar:Npn \chk_if_exist_cs:c {
+ \exp_args:Nc \chk_if_exist_cs:N
+}
\prg_set_conditional:Npnn \str_if_eq:nn #1#2{p}{
\str_if_eq_p_aux:w #1\scan_stop:\\#2\scan_stop:\\
}
@@ -518,29 +529,37 @@
\cs_set_nopar:cpn{use_9_parameter:}{
{##1}{##2}{##3}{##4}{##5}{##6}{##7}{##8}{##9}}
\cs_set_protected:Npn \cs_set_eq:NN #1 { \cs_set_eq:NwN #1=~ }
-\cs_set_nopar:Npn \cs_set_eq:cN { \exp_args:Nc \cs_set_eq:NN }
-\cs_set_nopar:Npn \cs_set_eq:Nc { \exp_args:NNc \cs_set_eq:NN }
-\cs_set_nopar:Npn \cs_set_eq:cc { \exp_args:Ncc \cs_set_eq:NN }
+\cs_set_protected_nopar:Npn \cs_set_eq:cN { \exp_args:Nc \cs_set_eq:NN }
+\cs_set_protected_nopar:Npn \cs_set_eq:Nc { \exp_args:NNc \cs_set_eq:NN }
+\cs_set_protected_nopar:Npn \cs_set_eq:cc { \exp_args:Ncc \cs_set_eq:NN }
\cs_new_protected:Npn \cs_new_eq:NN #1 {
\chk_if_free_cs:N #1
\cs_set_eq:NN #1
}
-\cs_new_nopar:Npn \cs_new_eq:cN { \exp_args:Nc \cs_new_eq:NN }
-\cs_new_nopar:Npn \cs_new_eq:Nc { \exp_args:NNc \cs_new_eq:NN }
-\cs_new_nopar:Npn \cs_new_eq:cc { \exp_args:Ncc \cs_new_eq:NN }
+\cs_new_protected_nopar:Npn \cs_new_eq:cN { \exp_args:Nc \cs_new_eq:NN }
+\cs_new_protected_nopar:Npn \cs_new_eq:Nc { \exp_args:NNc \cs_new_eq:NN }
+\cs_new_protected_nopar:Npn \cs_new_eq:cc { \exp_args:Ncc \cs_new_eq:NN }
\cs_new_protected:Npn \cs_gset_eq:NN { \pref_global:D \cs_set_eq:NN }
-\cs_new_nopar:Npn \cs_gset_eq:Nc { \exp_args:NNc \cs_gset_eq:NN }
-\cs_new_nopar:Npn \cs_gset_eq:cN { \exp_args:Nc \cs_gset_eq:NN }
-\cs_new_nopar:Npn \cs_gset_eq:cc { \exp_args:Ncc \cs_gset_eq:NN }
+\cs_new_protected_nopar:Npn \cs_gset_eq:Nc { \exp_args:NNc \cs_gset_eq:NN }
+\cs_new_protected_nopar:Npn \cs_gset_eq:cN { \exp_args:Nc \cs_gset_eq:NN }
+\cs_new_protected_nopar:Npn \cs_gset_eq:cc { \exp_args:Ncc \cs_gset_eq:NN }
\cs_new_protected:Npn \cs_gnew_eq:NN #1 {
\chk_if_free_cs:N #1
\pref_global:D \cs_set_eq:NN #1
}
-\cs_new_nopar:Npn \cs_gnew_eq:cN { \exp_args:Nc \cs_gnew_eq:NN }
-\cs_new_nopar:Npn \cs_gnew_eq:Nc { \exp_args:NNc \cs_gnew_eq:NN }
-\cs_new_nopar:Npn \cs_gnew_eq:cc { \exp_args:Ncc \cs_gnew_eq:NN }
-\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_new_protected_nopar:Npn \cs_gnew_eq:cN { \exp_args:Nc \cs_gnew_eq:NN }
+\cs_new_protected_nopar:Npn \cs_gnew_eq:Nc { \exp_args:NNc \cs_gnew_eq:NN }
+\cs_new_protected_nopar:Npn \cs_gnew_eq:cc { \exp_args:Ncc \cs_gnew_eq:NN }
+\cs_new_protected_nopar:Npn \cs_undefine:N #1 {
+ \cs_set_eq:NN #1 \c_undefined:D
+}
+\cs_new_protected_nopar:Npn \cs_undefine:c #1 {
+ \cs_set_eq:cN {#1} \c_undefined:D
+}
+\cs_new_protected_nopar:Npn \cs_gundefine:N #1 {
+ \cs_gset_eq:NN #1 \c_undefined:D
+}
+\cs_new_protected_nopar:Npn \cs_gundefine:c #1 {
\cs_gset_eq:cN {#1} \c_undefined:D
}
\if_cs_exist:N \xetex_version:D
diff --git a/Master/texmf-dist/tex/latex/expl3/l3box.sty b/Master/texmf-dist/tex/latex/expl3/l3box.sty
index 7f790646251..bada61a0001 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3box.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3box.sty
@@ -15,7 +15,7 @@
%% Do not distribute a modified version of this file.
%%
%%
-%% File: l3box.dtx Copyright (C) 2005-2009 LaTeX3 project
+%% File: l3box.dtx Copyright (C) 2005-2010 LaTeX3 project
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -48,16 +48,24 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3box.dtx 1375 2009-06-01 12:28:52Z joseph $
+\GetIdInfo$Id: l3box.dtx 1867 2010-03-23 13:03:12Z will $
{L3 Experimental Box module}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
\package_check_loaded_expl:
-\cs_new:Npn \box_new:N #1 {
+\cs_new_protected:Npn \box_new:N #1 {
\chk_if_free_cs:N #1
\newbox #1
}
+\cs_new_protected:Npn \box_new_local:N #1 {
+ \chk_if_free_cs:N #1
+ \int_compare:nNnTF
+ \tex_currentgrouplevel:D = 0
+ \newbox \locbox
+ #1
+}
\cs_generate_variant:Nn \box_new:N {c}
+\cs_generate_variant:Nn \box_new_local:N {c}
\cs_new_eq:NN \if_hbox:N \tex_ifhbox:D
\cs_new_eq:NN \if_vbox:N \tex_ifvbox:D
\cs_new_eq:NN \if_box_empty:N \tex_ifvoid:D
@@ -82,22 +90,22 @@
\cs_generate_variant:Nn \box_if_empty:NTF {c}
\cs_generate_variant:Nn \box_if_empty:NT {c}
\cs_generate_variant:Nn \box_if_empty:NF {c}
-\cs_new_nopar:Npn \box_set_eq:NN #1#2 {\tex_setbox:D #1 \tex_box:D #2}
+\cs_new_protected_nopar:Npn \box_set_eq:NN #1#2 {\tex_setbox:D #1 \tex_box:D #2}
\cs_generate_variant:Nn \box_set_eq:NN {cN,Nc,cc}
-\cs_new_nopar:Npn \box_gset_eq:NN {\pref_global:D\box_set_eq:NN}
+\cs_new_protected_nopar:Npn \box_gset_eq:NN {\pref_global:D\box_set_eq:NN}
\cs_generate_variant:Nn \box_gset_eq:NN {cN,Nc,cc}
\cs_new_eq:NN \l_last_box \tex_lastbox:D
-\cs_new_nopar:Npn \box_set_to_last:N #1{\tex_setbox:D#1\l_last_box}
+\cs_new_protected_nopar:Npn \box_set_to_last:N #1{\tex_setbox:D#1\l_last_box}
\cs_generate_variant:Nn \box_set_to_last:N {c}
-\cs_new_nopar:Npn \box_gset_to_last:N {\pref_global:D \box_set_to_last:N}
+\cs_new_protected_nopar:Npn \box_gset_to_last:N {\pref_global:D \box_set_to_last:N}
\cs_generate_variant:Nn \box_gset_to_last:N {c}
\cs_new:Npn \box_move_left:nn #1#2{\tex_moveleft:D\dim_eval:n{#1}{#2}}
\cs_new:Npn \box_move_right:nn #1#2{\tex_moveright:D\dim_eval:n{#1}{#2}}
\cs_new:Npn \box_move_up:nn #1#2{\tex_raise:D\dim_eval:n{#1}{#2}}
\cs_new:Npn \box_move_down:nn #1#2{\tex_lower:D\dim_eval:n{#1}{#2}}
-\cs_new_nopar:Npn \box_clear:N #1{\box_set_eq:NN #1 \c_empty_box }
+\cs_new_protected_nopar:Npn \box_clear:N #1{\box_set_eq:NN #1 \c_empty_box }
\cs_generate_variant:Nn \box_clear:N {c}
-\cs_new_nopar:Npn \box_gclear:N {\pref_global:D\box_clear:N}
+\cs_new_protected_nopar:Npn \box_gclear:N {\pref_global:D\box_clear:N}
\cs_generate_variant:Nn \box_gclear:N {c}
\cs_new_eq:NN \box_ht:N \tex_ht:D
\cs_new_eq:NN \box_dp:N \tex_dp:D
@@ -114,55 +122,57 @@
\cs_set_eq:NN \c_empty_box \voidb@x
\cs_new_eq:NN \l_tmpa_box \@tempboxa
\box_new:N \l_tmpb_box
-\cs_new_nopar:Npn \vbox:n {\tex_vbox:D \scan_stop:}
-\cs_new:Npn \vbox_set:Nn #1#2 {\tex_setbox:D #1 \tex_vbox:D {#2}}
+\cs_new_protected_nopar:Npn \vbox:n {\tex_vbox:D \scan_stop:}
+\cs_new_protected:Npn \vbox_set:Nn #1#2 {\tex_setbox:D #1 \tex_vbox:D {#2}}
\cs_generate_variant:Nn \vbox_set:Nn {cn}
-\cs_new_nopar:Npn \vbox_gset:Nn {\pref_global:D \vbox_set:Nn}
+\cs_new_protected_nopar:Npn \vbox_gset:Nn {\pref_global:D \vbox_set:Nn}
\cs_generate_variant:Nn \vbox_gset:Nn {cn}
-\cs_new:Npn \vbox_set_to_ht:Nnn #1#2#3 {
+\cs_new_protected:Npn \vbox_set_to_ht:Nnn #1#2#3 {
\tex_setbox:D #1 \tex_vbox:D to #2 {#3}
}
\cs_generate_variant:Nn \vbox_set_to_ht:Nnn {cnn}
-\cs_new_nopar:Npn \vbox_gset_to_ht:Nnn { \pref_global:D \vbox_set_to_ht:Nnn }
+\cs_new_protected_nopar:Npn \vbox_gset_to_ht:Nnn { \pref_global:D \vbox_set_to_ht:Nnn }
\cs_generate_variant:Nn \vbox_gset_to_ht:Nnn {cnn,ccn}
-\cs_new_nopar:Npn \vbox_set_inline_begin:N #1 {
+\cs_new_protected_nopar:Npn \vbox_set_inline_begin:N #1 {
\tex_setbox:D #1 \tex_vbox:D \c_group_begin_token }
\cs_new_eq:NN \vbox_set_inline_end: \c_group_end_token
-\cs_new_nopar:Npn \vbox_gset_inline_begin:N {
+\cs_new_protected_nopar:Npn \vbox_gset_inline_begin:N {
\pref_global:D \vbox_set_inline_begin:N }
\cs_new_eq:NN \vbox_gset_inline_end: \c_group_end_token
-\cs_new:Npn \vbox_to_ht:nn #1#2{\tex_vbox:D to \dim_eval:n{#1}{#2}}
-\cs_new:Npn \vbox_to_zero:n #1 {\tex_vbox:D to \c_zero_dim {#1}}
-\cs_new_nopar:Npn \vbox_set_split_to_ht:NNn #1#2#3{
+\cs_new_protected:Npn \vbox_to_ht:nn #1#2{\tex_vbox:D to \dim_eval:n{#1}{#2}}
+\cs_new_protected:Npn \vbox_to_zero:n #1 {\tex_vbox:D to \c_zero_dim {#1}}
+\cs_new_protected_nopar:Npn \vbox_set_split_to_ht:NNn #1#2#3{
\tex_setbox:D #1 \tex_vsplit:D #2 to #3
}
\cs_new_eq:NN \vbox_unpack:N \tex_unvcopy:D
\cs_generate_variant:Nn \vbox_unpack:N {c}
\cs_new_eq:NN \vbox_unpack_clear:N \tex_unvbox:D
\cs_generate_variant:Nn \vbox_unpack_clear:N {c}
-\cs_new_nopar:Npn \hbox:n {\tex_hbox:D \scan_stop:}
-\cs_new:Npn \hbox_set:Nn #1#2 {\tex_setbox:D #1 \tex_hbox:D {#2}}
+\cs_new_protected_nopar:Npn \hbox:n {\tex_hbox:D \scan_stop:}
+\cs_new_protected:Npn \hbox_set:Nn #1#2 {\tex_setbox:D #1 \tex_hbox:D {#2}}
\cs_generate_variant:Nn \hbox_set:Nn {cn}
-\cs_new_nopar:Npn \hbox_gset:Nn {\pref_global:D \hbox_set:Nn}
+\cs_new_protected_nopar:Npn \hbox_gset:Nn {\pref_global:D \hbox_set:Nn}
\cs_generate_variant:Nn \hbox_gset:Nn {cn}
-\cs_new:Npn \hbox_set_to_wd:Nnn #1#2#3 {
+\cs_new_protected:Npn \hbox_set_to_wd:Nnn #1#2#3 {
\tex_setbox:D #1 \tex_hbox:D to \dim_eval:n{#2} {#3}
}
\cs_generate_variant:Nn \hbox_set_to_wd:Nnn {cnn}
-\cs_new_nopar:Npn \hbox_gset_to_wd:Nnn {\pref_global:D \hbox_set_to_wd:Nnn }
+\cs_new_protected_nopar:Npn \hbox_gset_to_wd:Nnn {\pref_global:D \hbox_set_to_wd:Nnn }
\cs_generate_variant:Nn \hbox_gset_to_wd:Nnn {cnn}
-\cs_new_nopar:Npn \hbox_set_inline_begin:N #1 {
+\cs_new_protected_nopar:Npn \hbox_set_inline_begin:N #1 {
\tex_setbox:D #1 \tex_hbox:D \c_group_begin_token
}
\cs_generate_variant:Nn \hbox_set_inline_begin:N {c}
\cs_new_eq:NN \hbox_set_inline_end: \c_group_end_token
-\cs_new_nopar:Npn \hbox_gset_inline_begin:N {
+\cs_new_protected_nopar:Npn \hbox_gset_inline_begin:N {
\pref_global:D \hbox_set_inline_begin:N
}
\cs_generate_variant:Nn \hbox_gset_inline_begin:N {c}
\cs_new_eq:NN \hbox_gset_inline_end: \c_group_end_token
-\cs_new:Npn \hbox_to_wd:nn #1#2 {\tex_hbox:D to #1 {#2}}
-\cs_new:Npn \hbox_to_zero:n #1 {\tex_hbox:D to \c_zero_skip {#1}}
+\cs_new_protected:Npn \hbox_to_wd:nn #1#2 {\tex_hbox:D to #1 {#2}}
+\cs_new_protected:Npn \hbox_to_zero:n #1 {\tex_hbox:D to \c_zero_skip {#1}}
+\cs_new_protected:Npn \hbox_overlap_left:n #1 {\hbox_to_zero:n {\tex_hss:D #1}}
+\cs_new_protected:Npn \hbox_overlap_right:n #1 {\hbox_to_zero:n {#1 \tex_hss:D}}
\cs_new_eq:NN \hbox_unpack:N \tex_unhcopy:D
\cs_generate_variant:Nn \hbox_unpack:N {c}
\cs_new_eq:NN \hbox_unpack_clear:N \tex_unhbox:D
diff --git a/Master/texmf-dist/tex/latex/expl3/l3calc.sty b/Master/texmf-dist/tex/latex/expl3/l3calc.sty
index 6bdfdcef00c..e77f86aca93 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3calc.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3calc.sty
@@ -48,12 +48,12 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3calc.dtx 1362 2009-05-28 20:19:21Z joseph $
+\GetIdInfo$Id: l3calc.dtx 1776 2010-02-07 21:51:23Z joseph $
{L3 Experimental calc module}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
\package_check_loaded_expl:
-\tl_new:Nn\l_calc_expression_tl{}
+\tl_new:N \l_calc_expression_tl
\cs_new_nopar:Npn \g_calc_A_register{}
\cs_new_nopar:Npn \l_calc_B_register{}
\int_new:N \l_calc_current_type_int
diff --git a/Master/texmf-dist/tex/latex/expl3/l3clist.sty b/Master/texmf-dist/tex/latex/expl3/l3clist.sty
index 1af37298751..17f8ff5f80f 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3clist.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3clist.sty
@@ -15,7 +15,7 @@
%% Do not distribute a modified version of this file.
%%
%%
-%% File: l3clist.dtx Copyright (C) 2005-2008 Frank Mittelbach, LaTeX3 project
+%% File: l3clist.dtx Copyright (C) 2005-2010 Frank Mittelbach, LaTeX3 project
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -48,7 +48,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3clist.dtx 1713 2009-11-06 07:02:42Z will $
+\GetIdInfo$Id: l3clist.dtx 1878 2010-03-29 07:15:02Z joseph $
{L3 Experimental comma separated lists}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
@@ -63,19 +63,19 @@
\cs_generate_variant:Nn \clist_clear_new:N {c}
\cs_new_eq:NN \clist_gclear_new:N \tl_gclear_new:N
\cs_generate_variant:Nn \clist_gclear_new:N {c}
-\cs_new_eq:NN \clist_set_eq:NN \cs_set_eq:NN
-\cs_new_eq:NN \clist_set_eq:cN \cs_set_eq:cN
-\cs_new_eq:NN \clist_set_eq:Nc \cs_set_eq:Nc
-\cs_new_eq:NN \clist_set_eq:cc \cs_set_eq:cc
-\cs_new_eq:NN \clist_gset_eq:NN \cs_gset_eq:NN
-\cs_new_eq:NN \clist_gset_eq:cN \cs_gset_eq:cN
-\cs_new_eq:NN \clist_gset_eq:Nc \cs_gset_eq:Nc
-\cs_new_eq:NN \clist_gset_eq:cc \cs_gset_eq:cc
+\cs_new_eq:NN \clist_set_eq:NN \tl_set_eq:NN
+\cs_new_eq:NN \clist_set_eq:cN \tl_set_eq:cN
+\cs_new_eq:NN \clist_set_eq:Nc \tl_set_eq:Nc
+\cs_new_eq:NN \clist_set_eq:cc \tl_set_eq:cc
+\cs_new_eq:NN \clist_gset_eq:NN \tl_gset_eq:NN
+\cs_new_eq:NN \clist_gset_eq:cN \tl_gset_eq:cN
+\cs_new_eq:NN \clist_gset_eq:Nc \tl_gset_eq:Nc
+\cs_new_eq:NN \clist_gset_eq:cc \tl_gset_eq:cc
\prg_new_eq_conditional:NNn \clist_if_empty:N \tl_if_empty:N {p,TF,T,F}
\prg_new_eq_conditional:NNn \clist_if_empty:c \tl_if_empty:c {p,TF,T,F}
-\cs_new_nopar:Npn \clist_if_empty_err:N #1 {
+\cs_new_protected_nopar:Npn \clist_if_empty_err:N #1 {
\if_meaning:w #1 \c_empty_tl
- \tl_clear:N \l_testa_tl % catch prefixes
+ \tl_clear:N \l_kernel_testa_tl % catch prefixes
\msg_kernel_bug:x {Empty~comma-list~`\token_to_str:N #1'}
\fi:
}
@@ -83,7 +83,7 @@
\prg_new_eq_conditional:NNn \clist_if_eq:cN \tl_if_eq:cN {p,TF,T,F}
\prg_new_eq_conditional:NNn \clist_if_eq:Nc \tl_if_eq:Nc {p,TF,T,F}
\prg_new_eq_conditional:NNn \clist_if_eq:cc \tl_if_eq:cc {p,TF,T,F}
-\prg_new_conditional:Nnn \clist_if_in:Nn {TF,T,F} {
+\prg_new_protected_conditional:Nnn \clist_if_in:Nn {TF,T,F} {
\cs_set:Npn \clist_tmp:w ##1,#2,##2##3 \q_stop {
\if_meaning:w \q_no_value ##2
\prg_return_false: \else: \prg_return_true: \fi:
@@ -102,17 +102,17 @@
\fi:
}
\cs_generate_variant:Nn \clist_use:N {c}
-\cs_new_nopar:Npn \clist_get:NN #1 {
+\cs_new_protected_nopar:Npn \clist_get:NN #1 {
\clist_if_empty_err:N #1
\exp_after:wN \clist_get_aux:w #1,\q_stop
}
-\cs_new:Npn \clist_get_aux:w #1,#2\q_stop #3 { \tl_set:Nn #3{#1} }
+\cs_new_protected:Npn \clist_get_aux:w #1,#2\q_stop #3 { \tl_set:Nn #3{#1} }
\cs_generate_variant:Nn \clist_get:NN {cN}
-\cs_new:Npn \clist_pop_aux:nnNN #1#2#3 {
+\cs_new_protected:Npn \clist_pop_aux:nnNN #1#2#3 {
\clist_if_empty_err:N #3
\exp_after:wN \clist_pop_aux:w #3,\q_nil\q_stop #1#2#3
}
-\cs_new:Npn \clist_pop_aux:w #1,#2\q_stop #3#4#5#6 {
+\cs_new_protected:Npn \clist_pop_aux:w #1,#2\q_stop #3#4#5#6 {
#4 #6 {#1}
#3 #5 {#2}
\quark_if_nil:NTF #5 { #3 #5 {} }{ \clist_pop_auxi:w #2 #3#5 }
@@ -120,7 +120,7 @@
\cs_new:Npn \clist_pop_auxi:w #1,\q_nil #2#3 { #2#3{#1} }
\cs_new_eq:NN \clist_show:N \tl_show:N
\cs_new_eq:NN \clist_show:c \tl_show:c
-\cs_new_nopar:Npn \clist_display:N #1 {
+\cs_new_protected_nopar:Npn \clist_display:N #1 {
\iow_term:x { Comma-list~\token_to_str:N #1~contains~
the~elements~(without~outer~braces): }
\toks_clear:N \l_tmpa_toks
@@ -129,30 +129,30 @@
\toks_put_right:Nx \l_tmpa_toks {^^J>~}
}
\toks_put_right:Nx \l_tmpa_toks {
- \iow_space: \iow_char:N \{ \exp_not:n {##1} \iow_char:N \}
+ \c_space_tl \iow_char:N \{ \exp_not:n {##1} \iow_char:N \}
}
}
\toks_show:N \l_tmpa_toks
}
\cs_generate_variant:Nn \clist_display:N {c}
-\cs_new:Npn \clist_put_aux:NNnnNn #1#2#3#4#5#6 {
+\cs_new_protected:Npn \clist_put_aux:NNnnNn #1#2#3#4#5#6 {
\clist_if_empty:NTF #5 { #1 #5 {#6} } {
\tl_if_empty:nF {#6} { #2 #5{#3#6#4} }
}
}
-\cs_new_nopar:Npn \clist_put_left:Nn {
+\cs_new_protected_nopar:Npn \clist_put_left:Nn {
\clist_put_aux:NNnnNn \tl_set:Nn \tl_put_left:Nn {} ,
}
\cs_generate_variant:Nn \clist_put_left:Nn {NV,No,Nx,cn,cV,co}
-\cs_new_nopar:Npn \clist_gput_left:Nn {
+\cs_new_protected_nopar:Npn \clist_gput_left:Nn {
\clist_put_aux:NNnnNn \tl_gset:Nn \tl_gput_left:Nn {} ,
}
\cs_generate_variant:Nn \clist_gput_left:Nn {NV,No,Nx,cn,cV,co}
-\cs_new_nopar:Npn \clist_put_right:Nn {
+\cs_new_protected_nopar:Npn \clist_put_right:Nn {
\clist_put_aux:NNnnNn \tl_set:Nn \tl_put_right:Nn , {}
}
\cs_generate_variant:Nn \clist_put_right:Nn {NV,No,Nx,cn,cV,co}
-\cs_new_nopar:Npn \clist_gput_right:Nn {
+\cs_new_protected_nopar:Npn \clist_gput_right:Nn {
\clist_put_aux:NNnnNn \tl_gset:Nn \tl_gput_right:Nn , {}
}
\cs_generate_variant:Nn \clist_gput_right:Nn {NV,No,Nx,cn,cV,co}
@@ -175,7 +175,7 @@
}
\cs_new_eq:NN \clist_map_break: \use_none_delimit_by_q_recursion_stop:w
\int_new:N \g_clist_inline_level_int
-\cs_new:Npn \clist_map_inline:Nn #1#2 {
+\cs_new_protected:Npn \clist_map_inline:Nn #1#2 {
\clist_if_empty:NF #1 {
\int_gincr:N \g_clist_inline_level_int
\cs_gset:cpn {clist_map_inline_ \int_use:N \g_clist_inline_level_int :n}
@@ -187,7 +187,7 @@
}
}
\cs_generate_variant:Nn \clist_map_inline:Nn {c}
-\cs_new:Npn \clist_map_inline:nn #1#2 {
+\cs_new_protected:Npn \clist_map_inline:nn #1#2 {
\tl_if_empty:nF {#1} {
\int_gincr:N \g_clist_inline_level_int
\cs_gset:cpn {clist_map_inline_ \int_use:N \g_clist_inline_level_int :n}
@@ -198,56 +198,56 @@
\int_gdecr:N \g_clist_inline_level_int
}
}
-\cs_new:Npn \clist_map_variable:nNn #1#2#3 {
+\cs_new_protected:Npn \clist_map_variable:nNn #1#2#3 {
\tl_if_empty:nF {#1} {
\clist_map_variable_aux:Nnw #2 {#3} #1
, \q_recursion_tail , \q_recursion_stop
}
}
-\cs_new_nopar:Npn \clist_map_variable:NNn {\exp_args:No \clist_map_variable:nNn}
+\cs_new_protected_nopar:Npn \clist_map_variable:NNn {\exp_args:No \clist_map_variable:nNn}
\cs_generate_variant:Nn\clist_map_variable:NNn {cNn}
-\cs_new:Npn \clist_map_variable_aux:Nnw #1#2#3,{
+\cs_new_protected:Npn \clist_map_variable_aux:Nnw #1#2#3,{
\cs_set_nopar:Npn #1{#3}
\quark_if_recursion_tail_stop:N #1
#2 \clist_map_variable_aux:Nnw #1{#2}
}
-\cs_new_nopar:Npn \clist_concat_aux:NNNN #1#2#3#4 {
- \toks_set:No \l_tmpa_toks {#3}
- \toks_set:No \l_tmpb_toks {#4}
+\cs_new_protected_nopar:Npn \clist_concat_aux:NNNN #1#2#3#4 {
+ \tl_set:No \l_tmpa_tl {#3}
+ \tl_set:No \l_tmpb_tl {#4}
#1 #2 {
- \toks_use:N \l_tmpa_toks
- \toks_if_empty:NF \l_tmpa_toks { \toks_if_empty:NF \l_tmpb_toks , }
- \toks_use:N \l_tmpb_toks
+ \exp_not:V \l_tmpa_tl
+ \tl_if_empty:NF \l_tmpa_tl { \tl_if_empty:NF \l_tmpb_tl , }
+ \exp_not:V \l_tmpb_tl
}
}
-\cs_new_nopar:Npn \clist_concat:NNN { \clist_concat_aux:NNNN \tl_set:Nx }
-\cs_new_nopar:Npn \clist_gconcat:NNN { \clist_concat_aux:NNNN \tl_gset:Nx }
+\cs_new_protected_nopar:Npn \clist_concat:NNN { \clist_concat_aux:NNNN \tl_set:Nx }
+\cs_new_protected_nopar:Npn \clist_gconcat:NNN { \clist_concat_aux:NNNN \tl_gset:Nx }
\cs_generate_variant:Nn \clist_concat:NNN {ccc}
\cs_generate_variant:Nn \clist_gconcat:NNN {ccc}
\clist_new:N \l_clist_remove_clist
-\cs_new:Npn \clist_remove_duplicates_aux:NN #1#2 {
+\cs_new_protected:Npn \clist_remove_duplicates_aux:NN #1#2 {
\clist_clear:N \l_clist_remove_clist
\clist_map_function:NN #2 \clist_remove_duplicates_aux:n
#1 #2 \l_clist_remove_clist
}
-\cs_new:Npn \clist_remove_duplicates_aux:n #1 {
+\cs_new_protected:Npn \clist_remove_duplicates_aux:n #1 {
\clist_if_in:NnF \l_clist_remove_clist {#1} {
\clist_put_right:Nn \l_clist_remove_clist {#1}
}
}
-\cs_new_nopar:Npn \clist_remove_duplicates:N {
+\cs_new_protected_nopar:Npn \clist_remove_duplicates:N {
\clist_remove_duplicates_aux:NN \clist_set_eq:NN
}
-\cs_new_nopar:Npn \clist_gremove_duplicates:N {
+\cs_new_protected_nopar:Npn \clist_gremove_duplicates:N {
\clist_remove_duplicates_aux:NN \clist_gset_eq:NN
}
-\cs_new_nopar:Npn \clist_remove_element:Nn {
+\cs_new_protected_nopar:Npn \clist_remove_element:Nn {
\clist_remove_element_aux:NNn \clist_set_eq:NN
}
-\cs_new_nopar:Npn \clist_gremove_element:Nn {
+\cs_new_protected_nopar:Npn \clist_gremove_element:Nn {
\clist_remove_element_aux:NNn \clist_gset_eq:NN
}
-\cs_new:Npn \clist_remove_element_aux:NNn #1#2#3 {
+\cs_new_protected:Npn \clist_remove_element_aux:NNn #1#2#3 {
\clist_clear:N \l_clist_remove_clist
\cs_set:Npn \clist_remove_element_aux:n ##1 {
\tl_if_eq:nnF {#3} {##1} {
@@ -262,13 +262,13 @@
\cs_new_eq:NN \clist_push:NV \clist_put_left:NV
\cs_new_eq:NN \clist_push:No \clist_put_left:No
\cs_new_eq:NN \clist_push:cn \clist_put_left:cn
-\cs_new_nopar:Npn \clist_pop:NN {\clist_pop_aux:nnNN \tl_set:Nn \tl_set:Nn}
+\cs_new_protected_nopar:Npn \clist_pop:NN {\clist_pop_aux:nnNN \tl_set:Nn \tl_set:Nn}
\cs_generate_variant:Nn \clist_pop:NN {cN}
\cs_new_eq:NN \clist_gpush:Nn \clist_gput_left:Nn
\cs_new_eq:NN \clist_gpush:NV \clist_gput_left:NV
\cs_new_eq:NN \clist_gpush:No \clist_gput_left:No
\cs_generate_variant:Nn \clist_gpush:Nn {cn}
-\cs_new_nopar:Npn \clist_gpop:NN {\clist_pop_aux:nnNN \tl_gset:Nn \tl_set:Nn}
+\cs_new_protected_nopar:Npn \clist_gpop:NN {\clist_pop_aux:nnNN \tl_gset:Nn \tl_set:Nn}
\cs_generate_variant:Nn \clist_gpop:NN {cN}
\cs_new_eq:NN \clist_top:NN \clist_get:NN
\cs_new_eq:NN \clist_top:cN \clist_get:cN
diff --git a/Master/texmf-dist/tex/latex/expl3/l3doc.cls b/Master/texmf-dist/tex/latex/expl3/l3doc.cls
index f2d6d9a6919..0fff4893136 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 1762 2010-01-09 10:05:37Z joseph $
+\GetIdInfo$Id: l3doc.dtx 1786 2010-02-09 12:52:45Z joseph $
{L3 Experimental documentation class}
\ProvidesExplClass
{\filename}{\filedate}{\fileversion}{\filedescription}
@@ -613,7 +613,6 @@
}
\seq_new:N \g_doc_functions_seq
\seq_new:N \g_doc_macros_seq
-\iow_new:N \g_write_func_stream
\iow_open:Nn \g_write_func_stream { \jobname.cmds }
\cs_new_nopar:Npn \doc_show_functions_defined: {
\bool_if:nT { \g_doc_implementation_bool && \g_doc_checkfunc_bool } {
@@ -689,7 +688,8 @@
\g@addto@macro \PrintIndex { \AtEndDocument{ \typeout{^^J
========================================^^J
Generate~the~index~by~executing^^J
- \msg_four_spaces: makeindex~-s~l3doc.ist~-o~\jobname.ind~\jobname.idx^^J
+ \c_space_tl \c_space_tl \c_space_tl \c_space_tl
+ makeindex~-s~l3doc.ist~-o~\jobname.ind~\jobname.idx^^J
========================================^^J
}}
}
@@ -702,7 +702,8 @@
\g@addto@macro \PrintChanges { \AtEndDocument{ \typeout{^^J
========================================^^J
Generate~the~change~list~by~executing^^J
- \msg_four_spaces: makeindex~-s~gglo.ist~~-o~\jobname.gls~\jobname.glo^^J
+ \c_space_tl \c_space_tl \c_space_tl \c_space_tl
+ makeindex~-s~gglo.ist~~-o~\jobname.gls~\jobname.glo^^J
========================================^^J
}}
}
diff --git a/Master/texmf-dist/tex/latex/expl3/l3expan.sty b/Master/texmf-dist/tex/latex/expl3/l3expan.sty
index 6ee4c4d805f..cbe31dd98b5 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 1673 2009-11-02 05:40:42Z will $
+\GetIdInfo$Id: l3expan.dtx 1873 2010-03-24 08:32:54Z joseph $
{L3 Experimental Argument Expansion module}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
@@ -79,19 +79,10 @@
{#1}{#2}
}
\cs_new_nopar:Npn \exp_stop_f: {~}
-%%\cs_new_eq:NN \exp_arg:x \expanded % Move eventually.
-%%\cs_if_free:NTF\exp_arg:x{
- \cs_new:Npn \::x #1 \::: #2#3 {
+ \cs_new_protected:Npn \::x #1 \::: #2#3 {
\cs_set_nopar:Npx \l_exp_tl {{#3}}
\exp_after:wN \exp_arg_next:nnn \l_exp_tl {#1}{#2}
}
-%%}
-%%{
-%% \cs_new:Npn\::x#1\:::#2#3{
-%% \exp_after:wN\exp_arg_next:nnn
-%% \exp_after:wN{\exp_arg:x{#3}}{#1}{#2}
-%% }
-%%}
\cs_new:Npn \::V#1\:::#2#3{
\exp_after:wN\exp_arg_next:nnn
\exp_after:wN{
@@ -146,54 +137,51 @@
\cs_set_nopar:Npn \exp_args:Nf {\::f\:::}
\cs_set_nopar:Npn \exp_args:Nv {\::v\:::}
\cs_set_nopar:Npn \exp_args:NV {\::V\:::}
-\cs_set_nopar:Npn \exp_args:Nx {\::x\:::}
+\cs_set_protected_nopar:Npn \exp_args:Nx {\::x\:::}
\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\:::}
-\cs_set_nopar:Npn \exp_args:NNx {\::N\::x\:::}
+\cs_set_protected_nopar:Npn \exp_args:NNx {\::N\::x\:::}
-\cs_set_nopar:Npn \exp_args:Ncx {\::c\::x\:::}
+\cs_set_protected_nopar:Npn \exp_args:Ncx {\::c\::x\:::}
\cs_set_nopar:Npn \exp_args:Nfo {\::f\::o\:::}
\cs_set_nopar:Npn \exp_args:Nff {\::f\::f\:::}
\cs_set_nopar:Npn \exp_args:Ncf {\::c\::f\:::}
\cs_set_nopar:Npn \exp_args:Nnf {\::n\::f\:::}
\cs_set_nopar:Npn \exp_args:Nno {\::n\::o\:::}
\cs_set_nopar:Npn \exp_args:NnV {\::n\::V\:::}
-\cs_set_nopar:Npn \exp_args:Nnx {\::n\::x\:::}
+\cs_set_protected_nopar:Npn \exp_args:Nnx {\::n\::x\:::}
\cs_set_nopar:Npn \exp_args:Noc {\::o\::c\:::}
\cs_set_nopar:Npn \exp_args:Noo {\::o\::o\:::}
-\cs_set_nopar:Npn \exp_args:Nox {\::o\::x\:::}
+\cs_set_protected_nopar:Npn \exp_args:Nox {\::o\::x\:::}
\cs_set_nopar:Npn \exp_args:NVV {\::V\::V\:::}
-\cs_set_nopar:Npn \exp_args:Nxo {\::x\::o\:::}
-\cs_set_nopar:Npn \exp_args:Nxx {\::x\::x\:::}
+\cs_set_protected_nopar:Npn \exp_args:Nxo {\::x\::o\:::}
+\cs_set_protected_nopar:Npn \exp_args:Nxx {\::x\::x\:::}
\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_protected_nopar:Npn \exp_args:NNnx {\::N\::n\::x\:::}
\cs_set_nopar:Npn \exp_args:NNoo {\::N\::o\::o\:::}
-\cs_set_nopar:Npn \exp_args:NNox {\::N\::o\::x\:::}
+\cs_set_protected_nopar:Npn \exp_args:NNox {\::N\::o\::x\:::}
\cs_set_nopar:Npn \exp_args:Nnnc {\::n\::n\::c\:::}
\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:Nnox {\::n\::o\::x\:::}
+\cs_set_protected_nopar:Npn \exp_args:Nnnx {\::n\::n\::x\:::}
+\cs_set_protected_nopar:Npn \exp_args:Nnox {\::n\::o\::x\:::}
\cs_set_nopar:Npn \exp_args:NcNc {\::c\::N\::c\:::}
\cs_set_nopar:Npn \exp_args:NcNo {\::c\::N\::o\:::}
\cs_set_nopar:Npn \exp_args:Ncco {\::c\::c\::o\:::}
\cs_set_nopar:Npn \exp_args:Ncco {\::c\::c\::o\:::}
-\cs_set_nopar:Npn \exp_args:Nccx {\::c\::c\::x\:::}
-\cs_set_nopar:Npn \exp_args:Ncnx {\::c\::n\::x\:::}
+\cs_set_protected_nopar:Npn \exp_args:Nccx {\::c\::c\::x\:::}
+\cs_set_protected_nopar:Npn \exp_args:Ncnx {\::c\::n\::x\:::}
-\cs_set_nopar:Npn \exp_args:Noox {\::o\::o\::x\:::}
+\cs_set_protected_nopar:Npn \exp_args:Noox {\::o\::o\::x\:::}
\cs_set_nopar:Npn \exp_args:Nooo {\::o\::o\::o\:::}
\cs_new:Npn\exp_not:o#1{\exp_not:n\exp_after:wN{#1}}
-\cs_new:Npn\exp_not:d#1{
- \exp_not:n\exp_after:wN\exp_after:wN\exp_after:wN{#1}
-}
\cs_new:Npn\exp_not:f#1{
\exp_not:n\exp_after:wN{\tex_romannumeral:D -`0 #1}
}
@@ -204,7 +192,7 @@
\exp_not:n\exp_after:wN{\tex_romannumeral:D -`0 \exp_eval_register:N #1}
}
\cs_new:Npn\exp_not:c#1{\exp_after:wN\exp_not:N\cs:w#1\cs_end:}
-\cs_new:Npn \cs_generate_variant:Nn #1 {
+\cs_new_protected:Npn \cs_generate_variant:Nn #1 {
\chk_if_exist_cs:N #1
\cs_split_function:NN #1 \cs_generate_variant_aux:nnNn
}
@@ -219,7 +207,8 @@
#1:#3\use:c {use_none:\cs_generate_variant_aux:N #3 ?}#2
}
{
- \cs_new_nopar:cpx {
+ \_cs_generate_variant_aux:ccpx { #1 : #2 }
+ {
#1:#3 \use:c{use_none:\cs_generate_variant_aux:N #3 ?}#2
}
{
@@ -240,7 +229,37 @@
\cs_set:Npn \cs_generate_variant_aux:N #1{
\if:w ?#1 \exp_after:wN\use_none:nn \fi: n \cs_generate_variant_aux:N
}
-\cs_new:Npn \cs_generate_internal_variant:n #1 {
+\group_begin:
+ \tex_lccode:D `\Z = `\d \scan_stop:
+ \tex_lccode:D `\? =`\\ \scan_stop:
+ \tex_catcode:D `\P = 12 \scan_stop:
+ \tex_catcode:D `\R = 12 \scan_stop:
+ \tex_catcode:D `\O = 12 \scan_stop:
+ \tex_catcode:D `\T = 12 \scan_stop:
+ \tex_catcode:D `\E = 12 \scan_stop:
+ \tex_catcode:D `\C = 12 \scan_stop:
+ \tex_catcode:D `\Z = 12 \scan_stop:
+\tex_lowercase:D {
+ \group_end:
+ \cs_new_nopar:Npn \_cs_generate_variant_aux:Ncpx #1
+ {
+ \exp_after:wN \_cs_generate_variant_aux:w
+ \tex_meaning:D #1 ? PROTECTEZ \q_nil
+ }
+ \cs_new_nopar:Npn \_cs_generate_variant_aux:ccpx
+ { \exp_args:Nc \_cs_generate_variant_aux:Ncpx}
+ \cs_new:Npn \_cs_generate_variant_aux:w
+ #1 ? PROTECTEZ #2 \q_nil
+ {
+ \exp_after:wN \tex_ifx:D \exp_after:wN
+ \q_nil \etex_detokenize:D {#1} \q_nil
+ \exp_after:wN \cs_new_protected_nopar:cpx
+ \tex_else:D
+ \exp_after:wN \cs_new_nopar:cpx
+ \tex_fi:D
+ }
+}
+\cs_new_protected:Npn \cs_generate_internal_variant:n #1 {
\cs_if_free:cT { exp_args:N #1 }{
\cs_new:cpx { exp_args:N #1 }
{ \cs_generate_internal_variant_aux:n #1 : }
diff --git a/Master/texmf-dist/tex/latex/expl3/l3file.sty b/Master/texmf-dist/tex/latex/expl3/l3file.sty
index 5a1df4c8349..b120352243b 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3file.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3file.sty
@@ -15,7 +15,7 @@
%% Do not distribute a modified version of this file.
%%
%%
-%% File: l3file.dtx Copyright (C) 2009 LaTeX3 project
+%% File: l3file.dtx Copyright (C) 2009-2010 LaTeX3 project
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -49,112 +49,87 @@
%% -----------------------------------------------------------------------
%%
\RequirePackage{l3names}
-\GetIdInfo$Id: l3file.dtx 1676 2009-11-02 08:18:16Z will $
+\GetIdInfo$Id: l3file.dtx 1853 2010-03-21 09:11:08Z joseph $
{L3 Experimental file loading}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
\package_check_loaded_expl:
-\clist_new:N \g_file_record_clist
-\clist_new:N \g_file_record_full_clist
-\clist_new:N \l_file_search_path_clist
-\ior_new:N \l_file_test_read_stream
-\bool_new:N \l_file_tmp_bool
-\tl_new:N \l_file_tmp_tl
-\prg_new_conditional:Nnn \file_if_exist:n {p,TF,T,F} {
- \ior_open:Nn \l_file_test_read_stream {#1}
- \ior_if_eof:NTF \l_file_test_read_stream {
- \file_if_exist_path:n {#1}
- }{
- \ior_close:N \l_file_test_read_stream
- \prg_return_true:
- }
-}
-\cs_new_nopar:Npn \file_if_exist_path:n #1 {
- \bool_set_false:N \l_file_tmp_bool
- \cs_set_nopar:Npn \file_if_exist_aux:n ##1 {
- \ior_open:Nn \l_file_test_read_stream { #1 ##1 }
- \ior_if_eof:NF \l_file_test_read_stream {
- \bool_set_true:N \l_file_tmp_bool
- \clist_map_break:
+\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_record_seq
+\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_if_exist:NT \input@path {
- \cs_set_eq:NN \l_file_search_path_clist \input@path
- }
- \clist_map_function:NN \l_file_search_path_clist \file_if_exist_aux:n
- \ior_close:N \l_file_test_read_stream
- \bool_if:NTF \l_file_tmp_bool {
- \prg_return_true:
- }{
- \prg_return_false:
- }
-}
-\cs_new_nopar:Npn \file_if_exist_aux:n #1 { }
-\cs_new_nopar:Npn \file_add_path:nN #1#2 {
- \tl_clear:N #2
- \ior_open:Nn \l_file_test_read_stream {#1}
- \ior_if_eof:NTF \l_file_test_read_stream {
- \file_add_path_search:nN {#1} #2
- }{
- \tl_set:Nn #2 {#1}
- }
- \ior_close:N \l_file_test_read_stream
}
-\cs_new_nopar:Npn \file_add_path_search:nN #1#2 {
- \cs_set_nopar:Npn \file_add_path_aux:n ##1 {
- \ior_open:Nn \l_file_test_read_stream { ##1 #1 }
- \ior_if_eof:NF \l_file_test_read_stream {
- \tl_set:Nn #2 { ##1 #1 }
- \clist_map_break:
+\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} }
}
- }
- \cs_if_exist:NT \input@path {
- \cs_set_eq:NN \l_file_search_path_clist \input@path
- }
- \clist_map_function:NN \l_file_search_path_clist \file_add_path_aux:n
-}
-\cs_new_nopar:Npn \file_add_path_aux:n #1 { }
-\cs_new:Npn \file_input:n #1 {
- \file_add_path:nN {#1} \l_file_tmp_tl
- \tl_if_empty:NF \l_file_tmp_tl {
- \file_input_no_check:n \l_file_tmp_tl
- }
-}
-\cs_new:Npn \file_input_no_record:n #1 {
- \file_add_path:nN {#1} \l_file_tmp_tl
- \tl_if_empty:NF \l_file_tmp_tl {
- \file_input_no_check_no_record:n \l_file_tmp_tl
- }
-}
-\cs_new_nopar:Npn \file_input_no_check:n #1 {
- \clist_gput_right:Nx \g_file_record_clist {#1}
- \wlog{ADDING: #1}
- \@addtofilelist {#1}
- \clist_gput_right:Nx \g_file_record_full_clist {#1}
- \tex_input:D #1 ~
-}
-\cs_new_nopar:Npn \file_input_no_check_no_record:n #1 {
- \clist_gput_right:Nx \g_file_record_full_clist {#1}
- \tex_input:D #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_new_nopar:Npn \file_list: {
- \file_list:N \g_file_record_clist
+\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_new_nopar:Npn \file_list_full: {
- \file_list:N \g_file_record_full_clist
+\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_nopar:Npn \file_list:N #1 {
- \clist_remove_duplicates:N #1
- \iow_log:x { *~File~List~* }
- \clist_map_function:NN #1 \file_list_aux:n
- \iow_log:x { ************* }
+\cs_new_protected_nopar:Npn \file_path_remove:n #1 {
+ \seq_remove_element:Nn \l_file_search_path_seq {#1}
}
-\cs_new_nopar:Npn \file_list_aux:n #1 {
- \iow_log:x { #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_put_right:NV \g_file_record_clist \@filelist
- \clist_put_right:NV \g_file_record_full_clist \@filelist
+ \clist_map_inline:Nn \@filelist
+ { \seq_put_right:Nn \g_file_record_seq {#1} }
}
%%
%%
diff --git a/Master/texmf-dist/tex/latex/expl3/l3int.sty b/Master/texmf-dist/tex/latex/expl3/l3int.sty
index 533f2d80289..0e9c2df8859 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 1621 2009-10-25 06:36:19Z will $
+\GetIdInfo$Id: l3int.dtx 1867 2010-03-23 13:03:12Z will $
{L3 Experimental Integer module}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
@@ -56,50 +56,58 @@
\cs_new_eq:NN \int_to_roman:w \tex_romannumeral:D
\cs_new_eq:NN \int_to_number:w \tex_number:D
\cs_new_eq:NN \int_advance:w \tex_advance:D
-\cs_new_nopar:Npn \int_new:N #1 {
+\cs_new_protected_nopar:Npn \int_new:N #1 {
\chk_if_free_cs:N #1
\newcount #1
}
+\cs_new_protected_nopar:Npn \int_new_local:N #1 {
+ \chk_if_free_cs:N #1
+ \int_compare:nNnTF
+ \tex_currentgrouplevel:D = 0
+ \newcount \loccount
+ #1
+}
\cs_generate_variant:Nn \int_new:N {c}
-\cs_new_nopar:Npn \int_set:Nn #1#2{#1 \intexpr_eval:w #2\intexpr_eval_end:
+\cs_generate_variant:Nn \int_new_local:N {c}
+\cs_new_protected_nopar:Npn \int_set:Nn #1#2{#1 \intexpr_eval:w #2\intexpr_eval_end:
}
-\cs_new_nopar:Npn \int_gset:Nn {
+\cs_new_protected_nopar:Npn \int_gset:Nn {
\pref_global:D
\int_set:Nn }
\cs_generate_variant:Nn\int_set:Nn {cn}
\cs_generate_variant:Nn\int_gset:Nn {cn}
-\cs_new_nopar:Npn \int_incr:N #1{\int_advance:w#1\c_one
+\cs_new_protected_nopar:Npn \int_incr:N #1{\int_advance:w#1\c_one
}
-\cs_new_nopar:Npn \int_decr:N #1{\int_advance:w#1\c_minus_one
+\cs_new_protected_nopar:Npn \int_decr:N #1{\int_advance:w#1\c_minus_one
}
-\cs_new_nopar:Npn \int_gincr:N {
+\cs_new_protected_nopar:Npn \int_gincr:N {
\pref_global:D
\int_incr:N}
-\cs_new_nopar:Npn \int_gdecr:N {
+\cs_new_protected_nopar:Npn \int_gdecr:N {
\pref_global:D
\int_decr:N}
-\cs_set_nopar:Npn \int_incr:N #1{\int_add:Nn#1\c_one}
-\cs_set_nopar:Npn \int_decr:N #1{\int_add:Nn#1\c_minus_one}
-\cs_set_nopar:Npn \int_gincr:N #1{\int_gadd:Nn#1\c_one}
-\cs_set_nopar:Npn \int_gdecr:N #1{\int_gadd:Nn#1\c_minus_one}
+\cs_set_protected_nopar:Npn \int_incr:N #1{\int_add:Nn#1\c_one}
+\cs_set_protected_nopar:Npn \int_decr:N #1{\int_add:Nn#1\c_minus_one}
+\cs_set_protected_nopar:Npn \int_gincr:N #1{\int_gadd:Nn#1\c_one}
+\cs_set_protected_nopar:Npn \int_gdecr:N #1{\int_gadd:Nn#1\c_minus_one}
\cs_generate_variant:Nn \int_incr:N {c}
\cs_generate_variant:Nn \int_decr:N {c}
\cs_generate_variant:Nn \int_gincr:N {c}
\cs_generate_variant:Nn \int_gdecr:N {c}
-\cs_new_nopar:Npn \int_zero:N #1 {#1=\c_zero}
+\cs_new_protected_nopar:Npn \int_zero:N #1 {#1=\c_zero}
\cs_generate_variant:Nn \int_zero:N {c}
-\cs_new_nopar:Npn \int_gzero:N #1 {\pref_global:D #1=\c_zero}
+\cs_new_protected_nopar:Npn \int_gzero:N #1 {\pref_global:D #1=\c_zero}
\cs_generate_variant:Nn \int_gzero:N {c}
-\cs_new_nopar:Npn \int_add:Nn #1#2{
+\cs_new_protected_nopar:Npn \int_add:Nn #1#2{
\int_advance:w #1 by \intexpr_eval:w #2\intexpr_eval_end:
}
\cs_new_nopar:Npn \int_sub:Nn #1#2{
\int_advance:w #1-\intexpr_eval:w #2\intexpr_eval_end:
}
-\cs_new_nopar:Npn \int_gadd:Nn {
+\cs_new_protected_nopar:Npn \int_gadd:Nn {
\pref_global:D
\int_add:Nn }
-\cs_new_nopar:Npn \int_gsub:Nn {
+\cs_new_protected_nopar:Npn \int_gsub:Nn {
\pref_global:D
\int_sub:Nn }
\cs_generate_variant:Nn \int_add:Nn {cn}
@@ -111,7 +119,7 @@
\cs_new_eq:NN \int_show:N \tex_showthe:D
\cs_new_nopar:Npn \int_show:c {\exp_args:Nc \int_show:N }
\cs_new_nopar:Npn \int_to_arabic:n #1{ \intexpr_eval:n{#1}}
-\cs_new_nopar:Npn \int_roman_lcuc_mapping:Nnn #1#2#3{
+\cs_new_protected_nopar:Npn \int_roman_lcuc_mapping:Nnn #1#2#3{
\cs_set_nopar:cpn {int_to_lc_roman_#1:}{#2}
\cs_set_nopar:cpn {int_to_uc_roman_#1:}{#3}
}
@@ -218,16 +226,23 @@
\cs_set_nopar:Npn \int_pre_eval_two_args:Nnn #1#2#3{
\exp_args:Nff#1{\intexpr_eval:n{#2}}{\intexpr_eval:n{#3}}
}
-\cs_new_nopar:Npn \int_const:Nn #1#2 {
- \intexpr_compare:nNnTF {#2} > \c_minus_one {
- \intexpr_compare:nNnTF {#2} > \c_max_register_num {
- \int_new:N #1 \int_set:Nn #1{#2}
- } {
- \chk_if_free_cs:N #1 \tex_mathchardef:D #1 = \intexpr_eval:n{#2}
+\cs_new_protected_nopar:Npn \int_const:Nn #1#2 {
+ \intexpr_compare:nTF { #2 > \c_minus_one }
+ {
+ \intexpr_compare:nTF { #2 > \c_max_register_int }
+ {
+ \int_new:N #1
+ \int_gset:Nn #1 {#2}
+ }
+ {
+ \chk_if_free_cs:N #1
+ \tex_global:D \tex_mathchardef:D #1 = \intexpr_eval:n {#2}
+ }
+ }
+ {
+ \int_new:N #1
+ \int_gset:Nn #1 {#2}
}
- } {
- \int_new:N #1 \int_set:Nn #1{#2}
- }
}
%% \tex_countdef:D \c_minus_one = 10 \scan_stop:
%% \c_minus_one = -1 \scan_stop: %% in l3basics
diff --git a/Master/texmf-dist/tex/latex/expl3/l3intexpr.sty b/Master/texmf-dist/tex/latex/expl3/l3intexpr.sty
index 311fdc6dddc..ab4271cc46e 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3intexpr.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3intexpr.sty
@@ -53,6 +53,8 @@
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
\package_check_loaded_expl:
+\cs_new_eq:NN \if_num:w \tex_ifnum:D
+\cs_new_eq:NN \if_case:w \tex_ifcase:D
\cs_set_eq:NN \intexpr_value:w \tex_number:D
\cs_set_eq:NN \intexpr_eval:w \etex_numexpr:D
\cs_set_protected:Npn \intexpr_eval_end: {\tex_relax:D}
@@ -199,6 +201,7 @@
\cs_set:Npn \intexpr_do_until:nNnn #1#2#3#4{
#4 \intexpr_compare:nNnF {#1}#2{#3}{\intexpr_do_until:nNnn {#1}#2{#3}{#4}}
}
+\tex_mathchardef:D \c_max_register_int = 32767 \scan_stop:
%%
%%
%% End of file `l3intexpr.sty'.
diff --git a/Master/texmf-dist/tex/latex/expl3/l3io.sty b/Master/texmf-dist/tex/latex/expl3/l3io.sty
index 30212f76420..1bd8c0d627f 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3io.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3io.sty
@@ -15,7 +15,7 @@
%% Do not distribute a modified version of this file.
%%
%%
-%% File: l3io.dtx Copyright (C) 1990-2009 LaTeX3 project
+%% File: l3io.dtx Copyright (C) 1990-2010 LaTeX3 project
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -48,72 +48,241 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3io.dtx 1668 2009-11-01 22:13:36Z will $
+\GetIdInfo$Id: l3io.dtx 1853 2010-03-21 09:11:08Z joseph $
{L3 Experimental i/o module}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
\package_check_loaded_expl:
-\cs_set_eq:NN \iow_new:N \newwrite
-\cs_generate_variant:Nn \iow_new:N {c}
-\cs_new_nopar:Npn \iow_open:Nn #1#2 {
- \iow_close:N #1
- \tex_immediate:D \tex_openout:D #1#2 \scan_stop:
-}
-\cs_generate_variant:Nn \iow_open:Nn {c}
-\cs_new_nopar:Npn \iow_close:N { \tex_immediate:D \tex_closeout:D }
\cs_new_eq:NN \c_iow_term_stream \c_sixteen
\cs_new_eq:NN \c_ior_term_stream \c_sixteen
-\cs_new_eq:NN \c_iow_log_stream \c_minus_one
-\cs_new_eq:NN \c_ior_log_stream \c_minus_one
-\cs_new_nopar:Npn \iow_now:Nx { \tex_immediate:D \iow_shipout_x:Nn }
-\cs_new_nopar:Npn \iow_now:Nn #1#2 {
+\cs_new_eq:NN \c_iow_log_stream \c_minus_one
+\cs_new_eq:NN \c_ior_log_stream \c_minus_one
+\tl_const:Nn \c_iow_streams_tl
+ {
+ \c_zero
+ \c_one
+ \c_two
+ \c_three
+ \c_four
+ \c_five
+ \c_six
+ \c_seven
+ \c_eight
+ \c_nine
+ \c_ten
+ \c_eleven
+ \c_twelve
+ \c_thirteen
+ \c_fourteen
+ \c_fifteen
+ }
+\cs_new_eq:NN \c_ior_streams_tl \c_iow_streams_tl
+\prop_new:N \g_iow_streams_prop
+\prop_new:N \g_ior_streams_prop
+\prop_put:Nnn \g_iow_streams_prop { 0 } { LaTeX2e~reserved }
+\prop_put:Nnn \g_iow_streams_prop { 1 } { LaTeX2e~reserved }
+\prop_put:Nnn \g_iow_streams_prop { 2 } { LaTeX2e~reserved }
+\prop_put:Nnn \g_ior_streams_prop { 0 } { LaTeX2e~reserved }
+\int_new:N \l_iow_stream_int
+\cs_new_eq:NN \l_ior_stream_int \l_iow_stream_int
+\cs_set_eq:NN \iow_raw_new:N \newwrite
+\cs_set_eq:NN \ior_raw_new:N \newread
+\cs_generate_variant:Nn \iow_raw_new:N { c }
+\cs_generate_variant:Nn \ior_raw_new:N { c }
+\cs_new_protected_nopar:Npn \iow_new:N #1 {
+ \cs_gnew_eq:NN #1 \c_iow_log_stream
+}
+\cs_generate_variant:Nn \iow_new:N { c }
+\cs_new_protected_nopar:Npn \ior_new:N #1 {
+ \cs_gnew_eq:NN #1 \c_ior_log_stream
+}
+\cs_generate_variant:Nn \ior_new:N { c }
+\cs_new_protected_nopar:Npn \iow_open:Nn #1#2 {
+ \iow_close:N #1
+ \int_set:Nn \l_iow_stream_int { \c_sixteen }
+ \tl_map_function:NN \c_iow_streams_tl \iow_alloc_write:n
+ \intexpr_compare:nTF { \l_iow_stream_int = \c_sixteen }
+ { \msg_kernel_error:nn { iow } { streams-exhausted } }
+ {
+ \iow_stream_alloc:N #1
+ \prop_gput:NVn \g_iow_streams_prop \l_iow_stream_int {#2}
+ \tex_immediate:D \tex_openout:D #1#2 \scan_stop:
+ }
+}
+\cs_generate_variant:Nn \iow_open:Nn { c }
+\cs_new_protected_nopar:Npn \ior_open:Nn #1#2 {
+ \ior_close:N #1
+ \int_set:Nn \l_ior_stream_int { \c_sixteen }
+ \tl_map_function:NN \c_ior_streams_tl \ior_alloc_read:n
+ \intexpr_compare:nTF { \l_ior_stream_int = \c_sixteen }
+ { \msg_kernel_error:nn { ior } { streams-exhausted } }
+ {
+ \ior_stream_alloc:N #1
+ \prop_gput:NVn \g_ior_streams_prop \l_ior_stream_int {#2}
+ \tex_openin:D #1#2 \scan_stop:
+ }
+}
+\cs_generate_variant:Nn \ior_open:Nn { c }
+\cs_new_protected_nopar:Npn \iow_alloc_write:n #1 {
+ \prop_if_in:NnF \g_iow_streams_prop {#1}
+ {
+ \int_set:Nn \l_iow_stream_int {#1}
+ \tl_map_break:
+ }
+}
+\cs_new_protected_nopar:Npn \ior_alloc_read:n #1 {
+ \prop_if_in:NnF \g_iow_streams_prop {#1}
+ {
+ \int_set:Nn \l_ior_stream_int {#1}
+ \tl_map_break:
+ }
+}
+\cs_new_protected_nopar:Npn \iow_stream_alloc:N #1 {
+ \cs_if_exist:cTF { g_iow_ \int_use:N \l_iow_stream_int _stream }
+ { \cs_gset_eq:Nc #1 { g_iow_ \int_use:N \l_iow_stream_int _stream } }
+ {
+ \iow_stream_alloc_aux:
+ \intexpr_compare:nT { \l_iow_stream_int = \c_sixteen }
+ {
+ \iow_raw_new:N \g_iow_tmp_stream
+ \int_set:Nn \l_iow_stream_int { \g_iow_tmp_stream }
+ \cs_gset_eq:cN
+ { g_iow_ \int_use:N \l_iow_stream_int _stream }
+ \g_iow_tmp_stream
+ }
+ \cs_gset_eq:Nc #1 { g_iow_ \int_use:N \l_iow_stream_int _stream }
+ }
+}
+\cs_new_protected_nopar:Npn \iow_stream_alloc_aux: {
+ \int_incr:N \l_iow_stream_int
+ \intexpr_compare:nT
+ { \l_iow_stream_int < \c_sixteen }
+ {
+ \cs_if_exist:cTF { g_iow_ \int_use:N \l_iow_stream_int _stream }
+ {
+ \prop_if_in:NVT \g_iow_streams_prop \l_iow_stream_int
+ { \iow_stream_alloc_aux: }
+ }
+ { \iow_stream_alloc_aux: }
+ }
+}
+\cs_new_protected_nopar:Npn \ior_stream_alloc:N #1 {
+ \cs_if_exist:cTF { g_ior_ \int_use:N \l_ior_stream_int _stream }
+ { \cs_gset_eq:Nc #1 { g_ior_ \int_use:N \l_ior_stream_int _stream } }
+ {
+ \ior_stream_alloc_aux:
+ \intexpr_compare:nT { \l_ior_stream_int = \c_sixteen }
+ {
+ \ior_raw_new:N \g_ior_tmp_stream
+ \int_set:Nn \l_ior_stream_int { \g_ior_tmp_stream }
+ \cs_gset_eq:cN
+ { g_ior_ \int_use:N \l_iow_stream_int _stream }
+ \g_ior_tmp_stream
+ }
+ \cs_gset_eq:Nc #1 { g_ior_ \int_use:N \l_ior_stream_int _stream }
+ }
+}
+\cs_new_protected_nopar:Npn \ior_stream_alloc_aux: {
+ \int_incr:N \l_ior_stream_int
+ \intexpr_compare:nT
+ { \l_ior_stream_int < \c_sixteen }
+ {
+ \cs_if_exist:cTF { g_ior_ \int_use:N \l_ior_stream_int _stream }
+ {
+ \prop_if_in:NVT \g_ior_streams_prop \l_ior_stream_int
+ { \ior_stream_alloc_aux: }
+ }
+ { \ior_stream_alloc_aux: }
+ }
+}
+\cs_new_protected_nopar:Npn \iow_close:N #1 {
+ \cs_if_exist:NT #1
+ {
+ \intexpr_compare:nF { #1 = \c_minus_one }
+ {
+ \tex_immediate:D \tex_closeout:D #1
+ \prop_gdel:NV \g_iow_streams_prop #1
+ \cs_gundefine:N #1
+ }
+ }
+}
+\cs_generate_variant:Nn \iow_close:N { c }
+\cs_new_protected_nopar:Npn \ior_close:N #1 {
+ \cs_if_exist:NT #1
+ {
+ \intexpr_compare:nF { #1 = \c_minus_one }
+ {
+ \tex_closeout:D #1
+ \prop_gdel:NV \g_ior_streams_prop #1
+ \cs_gundefine:N #1
+ }
+ }
+}
+\cs_generate_variant:Nn \ior_close:N { c }
+\cs_new_protected_nopar:Npn \iow_open_streams: {
+ \prop_display:N \g_iow_streams_prop
+}
+\cs_new_protected_nopar:Npn \ior_open_streams: {
+ \prop_display:N \g_ior_streams_prop
+}
+\msg_kernel_new:nnnn { iow } { streams-exhausted }
+ {Output streams exhausted}
+ {%
+ TeX can only open up to 16 output streams at one time.\\%
+ All 16 are currently in use, and something wanted to open
+ another one.%
+ }
+\msg_kernel_new:nnnn { ior } { streams-exhausted }
+ {Input streams exhausted}
+ {%
+ TeX can only open up to 16 input streams at one time.\\%
+ All 16 are currently in use, and something wanted to open
+ another one.%
+ }
+\cs_new_protected_nopar:Npn \iow_now:Nx { \tex_immediate:D \iow_shipout_x:Nn }
+\cs_new_protected_nopar:Npn \iow_now:Nn #1#2 {
\iow_now:Nx #1 { \exp_not:n {#2} }
}
-\cs_set_nopar:Npn \iow_log:x { \iow_now:Nx \c_iow_log_stream }
-\cs_new_nopar:Npn \iow_log:n { \iow_now:Nn \c_iow_log_stream }
-\cs_set_nopar:Npn \iow_term:x { \iow_now:Nx \c_iow_term_stream }
-\cs_new_nopar:Npn \iow_term:n { \iow_now:Nn \c_iow_term_stream }
-\cs_new_nopar:Npn \iow_now_when_avail:Nn #1 {
- \cs_if_free:NTF #1 {\use_none:n} {\iow_now:Nn #1}
+\cs_set_protected_nopar:Npn \iow_log:x { \iow_now:Nx \c_iow_log_stream }
+\cs_new_protected_nopar:Npn \iow_log:n { \iow_now:Nn \c_iow_log_stream }
+\cs_set_protected_nopar:Npn \iow_term:x { \iow_now:Nx \c_iow_term_stream }
+\cs_new_protected_nopar:Npn \iow_term:n { \iow_now:Nn \c_iow_term_stream }
+\cs_new_protected_nopar:Npn \iow_now_when_avail:Nn #1 {
+ \cs_if_free:NTF #1 { \use_none:n } { \iow_now:Nn #1 }
}
-\cs_generate_variant:Nn \iow_now_when_avail:Nn {c}
-\cs_new_nopar:Npn \iow_now_buffer_safe_aux:w #1#2#3 {
- \group_begin: \tex_newlinechar:D`\ #1#2{#3} \group_end:
+\cs_generate_variant:Nn \iow_now_when_avail:Nn { c }
+\cs_new_protected_nopar:Npn \iow_now_when_avail:Nx #1 {
+ \cs_if_free:NTF #1 { \use_none:n } { \iow_now:Nx #1 }
}
-\cs_new_nopar:Npn \iow_now_buffer_safe:Nx {
+\cs_generate_variant:Nn \iow_now_when_avail:Nx { c }
+\cs_new_protected_nopar:Npn \iow_now_buffer_safe:Nn {
\iow_now_buffer_safe_aux:w \iow_now:Nx
}
-\cs_new_nopar:Npn \iow_now_buffer_safe:Nn {
+\cs_new_protected_nopar:Npn \iow_now_buffer_safe:Nx {
\iow_now_buffer_safe_aux:w \iow_now:Nn
}
+\cs_new_protected_nopar:Npn \iow_now_buffer_safe_aux:w #1#2#3 {
+ \group_begin: \tex_newlinechar:D`\ #1#2 {#3} \group_end:
+}
\cs_set_eq:NN \iow_shipout_x:Nn \tex_write:D
-\cs_generate_variant:Nn \iow_shipout_x:Nn {Nx}
-\cs_new_nopar:Npn \iow_shipout:Nn #1#2{
+\cs_generate_variant:Nn \iow_shipout_x:Nn {Nx }
+\cs_new_protected_nopar:Npn \iow_shipout:Nn #1#2 {
\iow_shipout_x:Nn #1 { \exp_not:n {#2} }
}
-\cs_generate_variant:Nn \iow_shipout:Nn {Nx}
-\cs_new_nopar:Npn \iow_newline: {^^J}
-\cs_new_nopar:Npn \iow_space: {~}
+\cs_generate_variant:Nn \iow_shipout:Nn { Nx }
+\cs_new_nopar:Npn \iow_newline: { ^^J }
\cs_new:Npn \iow_char:N #1 { \cs_to_str:N #1 }
-\tl_new:Nx \c_iow_comment_char {\cs_to_str:N\%}
-\tl_new:Nx \c_iow_lbrace_char{\cs_to_str:N\{}
-\tl_new:Nx \c_iow_rbrace_char{\cs_to_str:N\}}
-\cs_set_eq:NN \ior_new:N \newread
-\cs_set_eq:NN \ior_close:N \tex_closein:D
-\cs_new_nopar:Npn \ior_open:Nn #1#2 {
- \ior_close:N #1 \scan_stop:
- \tex_openin:D #1#2 \scan_stop:
-}
\cs_new_eq:NN \if_eof:w \tex_ifeof:D
-\prg_new_conditional:Nnn \ior_if_eof:N {p,TF,T,F} {
- \tex_ifeof:D #1 \prg_return_true: \else: \prg_return_false: \fi:
+\prg_new_conditional:Nnn \ior_if_eof:N { p , TF , T , F } {
+ \cs_if_exist:NTF #1
+ { \tex_ifeof:D #1 \prg_return_true: \else: \prg_return_false: \fi: }
+ { \prg_return_true: }
}
-\cs_new_nopar:Npn \ior_to:NN #1#2 {
+\cs_new_protected_nopar:Npn \ior_to:NN #1#2 {
\tex_read:D #1 to #2
}
-\cs_new_nopar:Npn \ior_gto:NN {
- \pref_global:D
- \ior_to:NN
+\cs_new_protected_nopar:Npn \ior_gto:NN {
+ \pref_global:D \ior_to:NN
}
%%
%%
diff --git a/Master/texmf-dist/tex/latex/expl3/l3keys.sty b/Master/texmf-dist/tex/latex/expl3/l3keys.sty
index 03090e32afe..d05909724cb 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3keys.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3keys.sty
@@ -15,7 +15,7 @@
%% Do not distribute a modified version of this file.
%%
%%
-%% File: l3keys.dtx Copyright (C) 2009 LaTeX3 project
+%% File: l3keys.dtx Copyright (C) 2009-2010 LaTeX3 project
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -48,15 +48,15 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3keys.dtx 1766 2010-01-12 08:59:24Z joseph $
+\GetIdInfo$Id: l3keys.dtx 1863 2010-03-22 20:15:06Z joseph $
{L3 Experimental key-value support}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
\package_check_loaded_expl:
-\tl_new:Nn \c_keys_root_tl { keys~>~ }
-\tl_new:Nn \c_keys_properties_root_tl { keys_properties }
-\tl_new:Nn \c_keys_value_forbidden_tl { forbidden }
-\tl_new:Nn \c_keys_value_required_tl { required }
+\tl_const:Nn \c_keys_root_tl { keys~>~ }
+\tl_const:Nn \c_keys_properties_root_tl { keys_properties }
+\tl_const:Nn \c_keys_value_forbidden_tl { forbidden }
+\tl_const:Nn \c_keys_value_required_tl { required }
\int_new:N \l_keys_choice_int
\tl_new:N \l_keys_choice_tl
\tl_new:N \l_keys_choice_code_tl
@@ -64,11 +64,9 @@
\tl_new:N \l_keys_path_tl
\tl_new:N \l_keys_property_tl
\tl_new:N \l_keys_module_tl
-\seq_new:N \l_keys_nesting_seq
-\tl_new:Nn \l_keys_nesting_tl { none }
\bool_new:N \l_keys_no_value_bool
-\toks_new:N \l_keys_value_toks
-\cs_new_nopar:Npn \keys_bool_set:NN #1#2 {
+\tl_new:N \l_keys_value_tl
+\cs_new_protected_nopar:Npn \keys_bool_set:NN #1#2 {
\keys_cmd_set:nx { \l_keys_path_tl / true } {
\exp_not:c { bool_ #2 set_true:N }
\exp_not:N #1
@@ -84,15 +82,15 @@
}
\keys_default_set:n { true }
}
-\cs_new:Npn \keys_choice_code_store:x #1 {
+\cs_new_protected:Npn \keys_choice_code_store:x #1 {
\tl_set:cx { \c_keys_root_tl \l_keys_path_tl .choice_code_tl } {#1}
}
-\cs_new_nopar:Npn \keys_choice_find:n #1 {
+\cs_new_protected_nopar:Npn \keys_choice_find:n #1 {
\keys_execute_aux:nn { \l_keys_path_tl / #1 } {
\keys_execute_aux:nn { \l_keys_path_tl / unknown } { }
}
}
-\cs_new_nopar:Npn \keys_choice_make: {
+\cs_new_protected_nopar:Npn \keys_choice_make: {
\keys_cmd_set:nn { \l_keys_path_tl } {
\keys_choice_find:n {##1}
}
@@ -101,7 +99,7 @@
{ \l_keys_path_tl } {##1}
}
}
-\cs_new:Npn \keys_choices_generate:n #1 {
+\cs_new_protected:Npn \keys_choices_generate:n #1 {
\keys_choice_make:
\int_zero:N \l_keys_choice_int
\cs_if_exist:cTF {
@@ -116,7 +114,7 @@
}
\clist_map_function:nN {#1} \keys_choices_generate_aux:n
}
-\cs_new_nopar:Npn \keys_choices_generate_aux:n #1 {
+\cs_new_protected_nopar:Npn \keys_choices_generate_aux:n #1 {
\keys_cmd_set:nx { \l_keys_path_tl / #1 } {
\exp_not:n { \tl_set:Nn \l_keys_choice_tl } {#1}
\exp_not:n { \int_set:Nn \l_keys_choice_int }
@@ -125,46 +123,42 @@
}
\int_incr:N \l_keys_choice_int
}
-\cs_new:Npn \keys_cmd_set:nn #1#2 {
+\cs_new_protected:Npn \keys_cmd_set:nn #1#2 {
\keys_cmd_set_aux:n {#1}
\cs_generate_from_arg_count:cNnn { \c_keys_root_tl #1 .cmd:n }
\cs_set:Npn 1 {#2}
}
-\cs_new:Npn \keys_cmd_set:nx #1#2 {
+\cs_new_protected:Npn \keys_cmd_set:nx #1#2 {
\keys_cmd_set_aux:n {#1}
\cs_generate_from_arg_count:cNnn { \c_keys_root_tl #1 .cmd:n }
\cs_set:Npx 1 {#2}
}
-\cs_new_nopar:Npn \keys_cmd_set_aux:n #1 {
+\cs_new_protected_nopar:Npn \keys_cmd_set_aux:n #1 {
\keys_property_undefine:n { #1 .default_tl }
- \tl_set:cn { \c_keys_root_tl #1 .req_tl } { }
+ \cs_if_free:cT { \c_keys_root_tl #1 .req_tl }
+ { \tl_new:c { \c_keys_root_tl #1 .req_tl } }
+ \tl_clear:c { \c_keys_root_tl #1 .req_tl }
}
-\cs_new:Npn \keys_default_set:n #1 {
+\cs_new_protected:Npn \keys_default_set:n #1 {
+ \cs_if_free:cT { \c_keys_root_tl \l_keys_path_tl .default_tl }
+ { \tl_new:c { \c_keys_root_tl \l_keys_path_tl .default_tl } }
\tl_set:cn { \c_keys_root_tl \l_keys_path_tl .default_tl } {#1}
}
\cs_generate_variant:Nn \keys_default_set:n { V }
-\cs_new:Npn \keys_define:nn #1#2 {
+\cs_new_protected:Npn \keys_define:nn #1#2 {
\tl_set:Nn \l_keys_module_tl {#1}
- \cs_set_eq:NN \KV_key_no_value_elt:n \keys_define_elt:n
- \cs_set_eq:NN \KV_key_value_elt:nn \keys_define_elt:nn
- \seq_push:NV \l_keys_nesting_seq \l_keys_nesting_tl
- \tl_set:Nn \l_keys_nesting_tl { define }
- \KV_parse_no_space_removal_no_sanitize:n {#2}
- \seq_pop:NN \l_keys_nesting_seq \l_keys_nesting_tl
- \cs_set_eq:Nc \KV_key_no_value_elt:n
- { keys_ \l_keys_nesting_tl _elt:n }
- \cs_set_eq:Nc \KV_key_value_elt:nn
- { keys_ \l_keys_nesting_tl _elt:nn }
-}
-\cs_new_nopar:Npn \keys_define_elt:n #1 {
+ \KV_process_no_space_removal_no_sanitize:NNn
+ \keys_define_elt:n \keys_define_elt:nn {#2}
+}
+\cs_new_protected_nopar:Npn \keys_define_elt:n #1 {
\bool_set_true:N \l_keys_no_value_bool
\keys_define_elt_aux:nn {#1} { }
}
-\cs_new:Npn \keys_define_elt:nn #1#2 {
+\cs_new_protected:Npn \keys_define_elt:nn #1#2 {
\bool_set_false:N \l_keys_no_value_bool
\keys_define_elt_aux:nn {#1} {#2}
}
-\cs_new:Npn \keys_define_elt_aux:nn #1#2 {
+\cs_new_protected:Npn \keys_define_elt_aux:nn #1#2 {
\keys_property_find:n {#1}
\cs_set_eq:Nc \keys_tmp:w
{ \c_keys_properties_root_tl \l_keys_property_tl }
@@ -175,7 +169,7 @@
{ \l_keys_property_tl } { \l_keys_path_tl }
}
}
-\cs_new:Npn \keys_define_key:n #1 {
+\cs_new_protected:Npn \keys_define_key:n #1 {
\bool_if:NTF \l_keys_no_value_bool {
\intexpr_compare:nTF {
\exp_args:Nc \cs_get_arg_count_from_signature:N
@@ -190,21 +184,21 @@
\keys_tmp:w {#1}
}
}
-\cs_new_nopar:Npn \keys_execute: {
+\cs_new_protected_nopar:Npn \keys_execute: {
\keys_execute_aux:nn { \l_keys_path_tl } {
\keys_execute_unknown:
}
}
-\cs_new_nopar:Npn \keys_execute_unknown: {
+\cs_new_protected_nopar:Npn \keys_execute_unknown: {
\keys_execute_aux:nn { \l_keys_module_tl / unknown } {
\msg_kernel_error:nnxx { keys } { key-unknown } { \l_keys_path_tl }
{ \l_keys_module_tl }
}
}
-\cs_new_nopar:Npn \keys_execute_aux:nn #1#2 {
+\cs_new_protected_nopar:Npn \keys_execute_aux:nn #1#2 {
\cs_set_eq:Nc \keys_tmp:w { \c_keys_root_tl #1 .cmd:n }
\cs_if_exist:NTF \keys_tmp:w {
- \exp_args:NV \keys_tmp:w \l_keys_value_toks
+ \exp_args:NV \keys_tmp:w \l_keys_value_tl
}{
#2
}
@@ -221,16 +215,16 @@
\c_keys_root_tl \l_keys_path_tl .req_tl
}
}
-\cs_new_nopar:Npn \keys_meta_make:n #1 {
+\cs_new_protected_nopar:Npn \keys_meta_make:n #1 {
\exp_last_unbraced:NNo \keys_cmd_set:nn \l_keys_path_tl
\exp_after:wN { \exp_after:wN \keys_set:nn \exp_after:wN { \l_keys_module_tl } {#1} }
}
-\cs_new_nopar:Npn \keys_meta_make:x #1 {
+\cs_new_protected_nopar:Npn \keys_meta_make:x #1 {
\keys_cmd_set:nx { \l_keys_path_tl } {
\exp_not:N \keys_set:nn { \l_keys_module_tl } {#1}
}
}
-\cs_new_nopar:Npn \keys_property_find:n #1 {
+\cs_new_protected_nopar:Npn \keys_property_find:n #1 {
\tl_set:Nx \l_keys_path_tl { \l_keys_module_tl / }
\tl_if_in:nnTF {#1} {.} {
\keys_property_find_aux:n {#1}
@@ -238,10 +232,10 @@
\msg_kernel_error:nnx { keys } { key-no-property } {#1}
}
}
-\cs_new_nopar:Npn \keys_property_find_aux:n #1 {
+\cs_new_protected_nopar:Npn \keys_property_find_aux:n #1 {
\keys_property_find_aux:w #1 \q_stop
}
-\cs_new_nopar:Npn \keys_property_find_aux:w #1 . #2 \q_stop {
+\cs_new_protected_nopar:Npn \keys_property_find_aux:w #1 . #2 \q_stop {
\tl_if_in:nnTF {#2} { . } {
\tl_set:Nx \l_keys_path_tl {
\l_keys_path_tl \tl_to_str:n {#1} .
@@ -255,35 +249,27 @@
\cs_new_nopar:Npn \keys_property_new:nn #1#2 {
\cs_new:cpn { \c_keys_properties_root_tl #1 } {#2}
}
-\cs_new_nopar:Npn \keys_property_new_arg:nn #1#2 {
+\cs_new_protected_nopar:Npn \keys_property_new_arg:nn #1#2 {
\cs_new:cpn { \c_keys_properties_root_tl #1 } ##1 {#2}
}
-\cs_new_nopar:Npn \keys_property_undefine:n #1 {
+\cs_new_protected_nopar:Npn \keys_property_undefine:n #1 {
\cs_set_eq:cN { \c_keys_root_tl #1 } \c_undefined
}
-\cs_new:Npn \keys_set:nn #1#2 {
+\cs_new_protected:Npn \keys_set:nn #1#2 {
\tl_set:Nn \l_keys_module_tl {#1}
- \cs_set_eq:NN \KV_key_no_value_elt:n \keys_set_elt:n
- \cs_set_eq:NN \KV_key_value_elt:nn \keys_set_elt:nn
- \seq_push:NV \l_keys_nesting_seq \l_keys_nesting_tl
- \tl_set:Nn \l_keys_nesting_tl { set }
- \KV_parse_space_removal_sanitize:n {#2}
- \seq_pop:NN \l_keys_nesting_seq \l_keys_nesting_tl
- \cs_set_eq:Nc \KV_key_no_value_elt:n
- { keys_ \l_keys_nesting_tl _elt:n }
- \cs_set_eq:Nc \KV_key_value_elt:nn
- { keys_ \l_keys_nesting_tl _elt:nn }
+ \KV_process_space_removal_sanitize:NNn
+ \keys_set_elt:n \keys_set_elt:nn {#2}
}
\cs_generate_variant:Nn \keys_set:nn { nV, nv }
-\cs_new_nopar:Npn \keys_set_elt:n #1 {
+\cs_new_protected_nopar:Npn \keys_set_elt:n #1 {
\bool_set_true:N \l_keys_no_value_bool
\keys_set_elt_aux:nn {#1} { }
}
-\cs_new:Npn \keys_set_elt:nn #1#2 {
+\cs_new_protected:Npn \keys_set_elt:nn #1#2 {
\bool_set_false:N \l_keys_no_value_bool
\keys_set_elt_aux:nn {#1} {#2}
}
-\cs_new:Npn \keys_set_elt_aux:nn #1#2 {
+\cs_new_protected:Npn \keys_set_elt_aux:nn #1#2 {
\tl_set:Nx \l_keys_key_tl { \tl_to_str:n {#1} }
\tl_set:Nx \l_keys_path_tl { \l_keys_module_tl / \l_keys_key_tl }
\keys_value_or_default:n {#2}
@@ -298,13 +284,13 @@
\keys_set_elt_aux:
}
}
-\cs_new_nopar:Npn \keys_set_elt_aux: {
+\cs_new_protected_nopar:Npn \keys_set_elt_aux: {
\keys_if_value_requirement:nTF { forbidden } {
\bool_if:NTF \l_keys_no_value_bool {
\keys_execute:
}{
\msg_kernel_error:nnxx { keys } { value-forbidden }
- { \l_keys_path_tl } { \toks_use:N \l_keys_value_toks }
+ { \l_keys_path_tl } { \tl_use:N \l_keys_value_tl }
}
}{
\keys_execute:
@@ -314,21 +300,21 @@
\cs_show:c { \c_keys_root_tl #1 / \tl_to_str:n {#2} .cmd:n }
}
\cs_new:Npn \keys_tmp:w {}
-\cs_new:Npn \keys_value_or_default:n #1 {
- \toks_set:Nn \l_keys_value_toks {#1}
+\cs_new_protected:Npn \keys_value_or_default:n #1 {
+ \tl_set:Nn \l_keys_value_tl {#1}
\bool_if:NT \l_keys_no_value_bool {
\cs_if_exist:cT { \c_keys_root_tl \l_keys_path_tl .default_tl } {
- \toks_set:Nv \l_keys_value_toks {
+ \tl_set:Nv \l_keys_value_tl {
\c_keys_root_tl \l_keys_path_tl .default_tl
}
}
}
}
-\cs_new_nopar:Npn \keys_value_requirement:n #1 {
+\cs_new_protected_nopar:Npn \keys_value_requirement:n #1 {
\tl_set_eq:cc { \c_keys_root_tl \l_keys_path_tl .req_tl }
{ c_keys_value_ #1 _tl }
}
-\cs_new_nopar:Npn \keys_variable_set:NnNN #1#2#3#4 {
+\cs_new_protected_nopar:Npn \keys_variable_set:NnNN #1#2#3#4 {
\cs_if_exist:NF #1 {
\use:c { #2 _new:N } #1
}
@@ -440,67 +426,58 @@
\keys_value_requirement:n { required }
}
\msg_kernel_new:nnnn { keys } { choice-unknown }
- {%
- Choice `#2' unknown for key `#1':\\%
- the key is being ignored.%
- }
- {%
- The key `#1' takes a limited number of values.\\%
- The input you gave, `#2', was not on the list accepted.\\%
- Perhaps this is a typing error?%
+ { Choice~'#2'~unknown~for~key~'#1'. }
+ {
+ The~key~'#1'~takes~a~limited~number~of~values.\\
+ The~input~given,~'#2',~is~not~on~the~list~accepted.
}
\msg_kernel_new:nnnn { keys } { generate-choices-before-code }
- {%
- Cannot create choices for key `#1':\\%
- no code has been defined.%
- }
- {%
- Code for use by .generate_choices:n should first be defined\\%
- using .choice_code:n or .choice_code:x.%
+ { No~code~available~to~generate~choices~for~key~'#1'. }
+ {
+ \l_msg_coding_error_text_tl
+ Before~using~.generate_choices:n~the~code~should~be~defined\\%
+ with~.choice_code:n~or~.choice_code:x.
}
\msg_kernel_new:nnnn { keys } { key-no-property }
- {No property given in definition of key `#1'.}
- {%
- Inside \token_to_str:N \keys_define:nn \msg_space: each key name
- needs a property:\\%
- \msg_two_spaces: #1 .<property>:\\%
- I did not find a ``.'' to indicate the start of a property.%
+ { No~property~given~in~definition~of~key~'#1'. }
+ {
+ \c_msg_coding_error_text_tl
+ Inside~\token_to_str:N \keys_define:nn \c_space_tl each~key~name
+ needs~a~property: \\
+ ~ ~ #1 .<property> \\
+ LaTeX~did~not~find~a~'.'~to~indicate~the~start~of~a~property.
}
\msg_kernel_new:nnnn { keys } { key-unknown }
- {The key `#1' is unknown and is being ignored.}
- {%
- The module `#2' does not seem to implement a key called `#1'.\\%
- I also checked for code to handle a unknown key, and did not
- find any.%
- Check that you have spelled the key name correctly.%
- }
-\msg_kernel_new:nnnn { keys } { property-unknown }
- {The key property `#1' is unknown.}
- {%
- You have asked for key `#2' to have the property `#1'.\\%
- However, I don't know the property `#1': this line will be ignored.%
+ { The~key~'#1'~is~unknown~and~is~being~ignored. }
+ {
+ The~module~'#2'~does~not~have~a~key~called~#1'.\\
+ Check~that~you~have~spelled~the~key~name~correctly.
}
\msg_kernel_new:nnnn { keys } { property-requires-value }
- {The property `#1' requires a value.}
- {%
- You have tried to set the property `#2' for key `#1'.\\%
- However, you did not give a value for this property, and one is
- needed.\\%
- The entire line will be ignored.%
+ { The property '#1' requires a value. }
+ {
+ \l_msg_coding_error_text_tl
+ LaTeX~was~asked~to~set~property~'#2'~for~key~'#1'.\\
+ No~value~was~given~for~the~property,~and~one~is~required.
+ }
+\msg_kernel_new:nnnn { keys } { property-unknown }
+ { The key property '#1' is unknown. }
+ {
+ \l_msg_coding_error_text_tl
+ LaTeX~has~been~asked~to~set~the~property~'#1'~for~key~'#2':\\
+ this~property~is~not~defined.
}
\msg_kernel_new:nnnn { keys } { value-forbidden }
- {The key `#1' does not taken a value.}
- {%
- The key `#1' should be given without a value.\\%
- You gave `#1 = #2'; I will ignore `#2' and carry out whatever\\%
- key `#1' is supposed to do.%
+ { The~key~'#1'~does~not~taken~a~value. }
+ {
+ The~key~'#1'~should~be~given~without~a~value.\\
+ LaTeX~will~ignore~the~given~value~'#2'.
}
\msg_kernel_new:nnnn { keys } { value-required }
- {The key `#1' requires a value.}
- {%
- The key `#1' should be given with a value.\\%
- You gave `#1', but should have given `#1 = <value>'.\\%
- I will ignore the key entirely.\\%
+ { The~key~'#1'~requires~a~value. }
+ {
+ The~key~'#1'~must~have~a~value.\\
+ No~value~was~present:~the~key~will~be~ignored.
}
%%
%%
diff --git a/Master/texmf-dist/tex/latex/expl3/l3keyval.sty b/Master/texmf-dist/tex/latex/expl3/l3keyval.sty
index f67bfb16daf..782b899dd87 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3keyval.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3keyval.sty
@@ -48,26 +48,53 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3keyval.dtx 1424 2009-07-13 06:05:25Z joseph $
+\GetIdInfo$Id: l3keyval.dtx 1872 2010-03-24 07:53:45Z mittelba $
{L3 Experimental keyval processing}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
\package_check_loaded_expl:
\tl_new:N \l_KV_tmpa_tl
\tl_new:N \l_KV_tmpb_tl
-\tl_new:Nn \c_KV_single_equal_sign_tl{=}
-\toks_new:N \l_KV_parse_toks
-\toks_new:N \l_KV_currkey_toks
-\toks_new:N \l_KV_currval_toks
+\tl_const:Nn \c_KV_single_equal_sign_tl { = }
+\tl_new:N \l_KV_parse_tl
+\tl_new:N \l_KV_currkey_tl
+\tl_new:N \l_KV_currval_tl
+\int_new:N \l_KV_level_int
\bool_new:N \l_KV_remove_one_level_of_braces_bool
\bool_set_true:N \l_KV_remove_one_level_of_braces_bool
+\cs_new_protected_nopar:Npn \KV_process_space_removal_sanitize:NNn {
+ \KV_process_aux:NNNn \KV_parse_space_removal_sanitize:n
+}
+\cs_new_protected_nopar:Npn \KV_process_space_removal_no_sanitize:NNn {
+ \KV_process_aux:NNNn \KV_parse_space_removal_no_sanitize:n
+}
+\cs_new_protected_nopar:Npn \KV_process_no_space_removal_no_sanitize:NNn {
+ \KV_process_aux:NNNn \KV_parse_no_space_removal_no_sanitize:n
+}
+\cs_new_protected:Npn \KV_process_aux:NNNn #1#2#3#4 {
+ \cs_set_eq:cN
+ { KV_key_no_value_elt_ \int_use:N \l_KV_level_int :n }
+ \KV_key_no_value_elt:n
+ \cs_set_eq:cN
+ { KV_key_value_elt_ \int_use:N \l_KV_level_int :nn }
+ \KV_key_value_elt:nn
+ \cs_set_eq:NN \KV_key_no_value_elt:n #2
+ \cs_set_eq:NN \KV_key_value_elt:nn #3
+ \int_incr:N \l_KV_level_int
+ #1 {#4}
+ \int_decr:N \l_KV_level_int
+ \cs_set_eq:Nc \KV_key_no_value_elt:n
+ { KV_key_no_value_elt_ \int_use:N \l_KV_level_int :n }
+ \cs_set_eq:Nc \KV_key_value_elt:nn
+ { KV_key_value_elt_ \int_use:N \l_KV_level_int :nn }
+}
\group_begin:
\char_set_catcode:nn{`\=}{13}
\char_set_catcode:nn{`\,}{13}
\char_set_lccode:nn{`\8}{`\=}
\char_set_lccode:nn{`\9}{`\,}
\tl_to_lowercase:n{\group_end:
-\cs_new_nopar:Npn \KV_sanitize_outerlevel_active_equals:N #1{
+\cs_new_protected_nopar:Npn \KV_sanitize_outerlevel_active_equals:N #1{
\tl_replace_all_in:Nnn #1 = 8
}
\cs_new_nopar:Npn \KV_sanitize_outerlevel_active_commas:N #1{
@@ -83,47 +110,46 @@
\KV_remove_surrounding_spaces_auxii:w #1 Q
}
\cs_gnew:Npn\KV_remove_surrounding_spaces_auxii:w#1Q#2{#1}
-\cs_gnew:Npn\KV_add_value_element:w\q_stop#1\q_nil{
- \toks_set:Nf\l_KV_currval_toks {
+\cs_gnew_protected:Npn\KV_add_value_element:w\q_stop#1\q_nil{
+ \tl_set:Nf\l_KV_currval_tl {
\KV_remove_surrounding_spaces_auxi:w \exp_not:N#1Q~Q
}
- \toks_put_right:No\l_KV_parse_toks{
- \exp_after:wN {\toks_use:N \l_KV_currval_toks}
+ \tl_put_right:No\l_KV_parse_tl{
+ \exp_after:wN { \l_KV_currval_tl }
}
}
-\cs_gnew:Npn\KV_set_key_element:w#1\q_nil{
- \toks_set:Nf\l_KV_currkey_toks
+\cs_gnew_protected:Npn\KV_set_key_element:w#1\q_nil{
+ \tl_set:Nf\l_KV_currkey_tl
{
\exp_last_unbraced:NNo \KV_remove_surrounding_spaces_auxi:w
\exp_not:N \use_none:n #1Q~Q
}
\bool_if:NT \l_KV_remove_one_level_of_braces_bool
{
- \exp_args:NNo \toks_set:No \l_KV_currkey_toks {
- \exp_after:wN \KV_add_element_aux:w
- \toks_use:N \l_KV_currkey_toks \q_nil
+ \exp_args:NNo \tl_set:No \l_KV_currkey_tl {
+ \exp_after:wN \KV_add_element_aux:w \l_KV_currkey_tl \q_nil
}
}
}
\group_end:
\cs_new:Npn \KV_add_element_aux:w#1\q_nil{#1}
-\cs_new:Npn \KV_parse_sanitize_aux:n #1 {
+\cs_new_protected:Npn \KV_parse_sanitize_aux:n #1 {
\group_begin:
- \toks_clear:N \l_KV_parse_toks
- \tl_set:Nx \l_KV_tmpa_tl { \exp_not:n {#1} }
+ \tl_clear:N \l_KV_parse_tl
+ \tl_set:Nn \l_KV_tmpa_tl {#1}
\KV_sanitize_outerlevel_active_equals:N \l_KV_tmpa_tl
\KV_sanitize_outerlevel_active_commas:N \l_KV_tmpa_tl
\exp_last_unbraced:NNV \KV_parse_elt:w \q_no_value
\l_KV_tmpa_tl , \q_nil ,
- \exp_last_unbraced:NV \group_end:
- \l_KV_parse_toks
+ \exp_after:wN \group_end:
+ \l_KV_parse_tl
}
-\cs_new:Npn \KV_parse_no_sanitize_aux:n #1{
+\cs_new_protected:Npn \KV_parse_no_sanitize_aux:n #1{
\group_begin:
- \toks_clear:N \l_KV_parse_toks
+ \tl_clear:N \l_KV_parse_tl
\KV_parse_elt:w \q_no_value #1 , \q_nil ,
- \exp_last_unbraced:NV \group_end:
- \l_KV_parse_toks
+ \exp_after:wN \group_end:
+ \l_KV_parse_tl
}
\cs_set:Npn \KV_parse_elt:w #1,{
\tl_if_blank:oTF{\use_none:n #1}
@@ -137,46 +163,46 @@
}
}
\cs_new:Npn \KV_split_key_value_current:w {\ERROR}
-\cs_new:Npn \KV_split_key_value_space_removal:w #1 = #2\q_nil{
+\cs_new_protected:Npn \KV_split_key_value_space_removal:w #1 = #2\q_nil{
\KV_set_key_element:w#1\q_nil
- \tl_set:Nx\l_KV_tmpa_tl{\exp_not:n{#2}}
+ \tl_set:Nn\l_KV_tmpa_tl{#2}
\tl_if_eq:NNTF\l_KV_tmpa_tl\c_KV_single_equal_sign_tl
{
- \toks_put_right:No\l_KV_parse_toks{
+ \tl_put_right:No\l_KV_parse_tl{
\exp_after:wN \KV_key_no_value_elt:n
- \exp_after:wN {\toks_use:N\l_KV_currkey_toks}
+ \exp_after:wN {\l_KV_currkey_tl}
}
}
{
\KV_split_key_value_space_removal_detect_error:wTF#2\q_no_value\q_nil
{\KV_split_key_value_space_removal_aux:w \q_stop #2}
- {\ERROR}
+ { \msg_kernel_error:nn { keyval } { misplaced-equals-sign } }
}
}
-\cs_new:Npn
+\cs_new_protected:Npn
\KV_split_key_value_space_removal_detect_error:wTF#1=#2#3\q_nil{
\tl_if_head_eq_meaning:nNTF{#3}\q_no_value
}
\cs_new:Npn \KV_val_preserve_braces:NnN #1#2#3{{#2}}
-\cs_new:Npn\KV_split_key_value_space_removal_aux:w #1=={
+\cs_new_protected:Npn\KV_split_key_value_space_removal_aux:w #1=={
\tl_set:Nx\l_KV_tmpa_tl{\exp_not:o{\use_none:nnn#1\q_nil\q_nil}}
- \toks_put_right:No\l_KV_parse_toks{
+ \tl_put_right:No\l_KV_parse_tl{
\exp_after:wN \KV_key_value_elt:nn
- \exp_after:wN {\toks_use:N\l_KV_currkey_toks}
+ \exp_after:wN {\l_KV_currkey_tl}
}
\tl_if_empty:NTF\l_KV_tmpa_tl
- { \toks_put_right:Nn\l_KV_parse_toks{{}} }
+ { \tl_put_right:Nn\l_KV_parse_tl{{}} }
{
\quark_if_nil:NTF\l_KV_tmpa_tl
{
\bool_if:NTF \l_KV_remove_one_level_of_braces_bool
{
- \toks_put_right:No\l_KV_parse_toks{
+ \tl_put_right:No\l_KV_parse_tl{
\exp_after:wN{\use_ii:nnn #1\q_nil}
}
}
{
- \toks_put_right:No\l_KV_parse_toks{
+ \tl_put_right:No\l_KV_parse_tl{
\exp_after:wN{\KV_val_preserve_braces:NnN #1\q_nil}
}
}
@@ -184,34 +210,41 @@
{ \KV_add_value_element:w #1\q_nil }
}
}
-\cs_new:Npn \KV_split_key_value_no_space_removal:w #1#2=#3=#4\q_nil{
+\cs_new_protected:Npn \KV_split_key_value_no_space_removal:w #1#2=#3=#4\q_nil{
\tl_set:Nn\l_KV_tmpa_tl{#4}
\tl_if_empty:NTF \l_KV_tmpa_tl
{
- \toks_put_right:Nn\l_KV_parse_toks{\KV_key_no_value_elt:n{#2}}
+ \tl_put_right:Nn\l_KV_parse_tl{\KV_key_no_value_elt:n{#2}}
}
{
\tl_if_eq:NNTF\c_KV_single_equal_sign_tl\l_KV_tmpa_tl
{
- \toks_put_right:Nn\l_KV_parse_toks{\KV_key_value_elt:nn{#2}{#3}}
+ \tl_put_right:Nn\l_KV_parse_tl{\KV_key_value_elt:nn{#2}{#3}}
}
- {\ERROR}
+ { \msg_kernel_error:nn { keyval } { misplaced-equals-sign } }
}
}
\cs_new:Npn \KV_key_no_value_elt:n #1{\ERROR}
\cs_new:Npn \KV_key_value_elt:nn #1#2{\ERROR}
-\cs_new_nopar:Npn \KV_parse_no_space_removal_no_sanitize:n {
+\cs_new_protected_nopar:Npn \KV_parse_no_space_removal_no_sanitize:n {
\cs_set_eq:NN \KV_split_key_value_current:w \KV_split_key_value_no_space_removal:w
\KV_parse_no_sanitize_aux:n
}
-\cs_new_nopar:Npn \KV_parse_space_removal_sanitize:n {
+\cs_new_protected_nopar:Npn \KV_parse_space_removal_sanitize:n {
\cs_set_eq:NN \KV_split_key_value_current:w \KV_split_key_value_space_removal:w
\KV_parse_sanitize_aux:n
}
-\cs_new_nopar:Npn \KV_parse_space_removal_no_sanitize:n {
+\cs_new_protected_nopar:Npn \KV_parse_space_removal_no_sanitize:n {
\cs_set_eq:NN \KV_split_key_value_current:w \KV_split_key_value_space_removal:w
\KV_parse_no_sanitize_aux:n
}
+\msg_kernel_new:nnnn { keyval } { misplaced-equals-sign }
+ {Misplaced~equals~sign~in~key--value~input~\msg_line_context:}
+ {
+ I~am~trying~to~read~some~key--value~input~but~found~two~equals~
+ signs\\%
+ without~a~comma~between~them.
+ }
%%
%%
%% End of file `l3keyval.sty'.
diff --git a/Master/texmf-dist/tex/latex/expl3/l3msg.sty b/Master/texmf-dist/tex/latex/expl3/l3msg.sty
index 04d32519912..6ed3dad14c1 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3msg.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3msg.sty
@@ -49,36 +49,40 @@
%% -----------------------------------------------------------------------
%%
\RequirePackage{l3names}
-\GetIdInfo$Id: l3msg.dtx 1722 2009-11-06 13:22:12Z joseph $
+\GetIdInfo$Id: l3msg.dtx 1866 2010-03-23 08:29:27Z joseph $
{L3 Experimental LaTeX Messages module}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
\package_check_loaded_expl:
\int_set:Nn \tex_errorcontextlines:D { \c_minus_one }
-\tl_new:Nn \c_msg_fatal_tl { Fatal~Error }
-\tl_new:Nn \c_msg_error_tl { Error }
-\tl_new:Nn \c_msg_warning_tl { Warning }
-\tl_new:Nn \c_msg_info_tl { Info }
-\tl_new:Nn \c_msg_fatal_text_tl {
+\tl_const:Nn \c_msg_fatal_tl { Fatal~Error }
+\tl_const:Nn \c_msg_error_tl { Error }
+\tl_const:Nn \c_msg_warning_tl { Warning }
+\tl_const:Nn \c_msg_info_tl { Info }
+\tl_const:Nn \c_msg_coding_error_text_tl {
+ This~is~a~coding~error.
+ \msg_two_newlines:
+}
+\tl_const:Nn \c_msg_fatal_text_tl {
This~is~a~fatal~error:~LaTeX~will~abort
}
-\tl_new:Nn \c_msg_help_text_tl {
+\tl_const:Nn \c_msg_help_text_tl {
For~immediate~help~type~H~<return>
}
-\tl_new:Nn \c_msg_kernel_bug_text_tl {
+\tl_const:Nn \c_msg_kernel_bug_text_tl {
This~is~a~LaTeX~bug:~check~coding!
}
-\tl_new:Nn \c_msg_kernel_bug_more_text_tl {
+\tl_const:Nn \c_msg_kernel_bug_more_text_tl {
There~is~a~coding~bug~somewhere~around~here.
\msg_newline:
This~probably~needs~examining~by~an~expert.
\c_msg_return_text_tl
}
-\tl_new:Nn \c_msg_no_info_text_tl {
+\tl_const:Nn \c_msg_no_info_text_tl {
LaTeX~does~not~know~anything~more~about~this~error,~sorry.
\c_msg_return_text_tl
}
-\tl_new:Nn \c_msg_return_text_tl {
+\tl_const:Nn \c_msg_return_text_tl {
\msg_two_newlines:
Try~typing~<return>~to~proceed.
\msg_newline:
@@ -88,67 +92,54 @@
\char_make_letter:N\ %
\tl_to_lowercase:n{%
\group_end:%
-\tl_new:Nn%
+\tl_const:Nn%
\c_msg_hide_tl %
{}%
}%
-\tl_new:Nn \c_msg_on_line_tl { on~line }
-\tl_new:Nn \c_msg_text_prefix_tl { msg_text ~>~ }
-\tl_new:Nn \c_msg_more_text_prefix_tl { msg_text_more ~>~ }
+\tl_const:Nn \c_msg_on_line_tl { on~line }
+\tl_const:Nn \c_msg_text_prefix_tl { msg_text ~>~ }
+\tl_const:Nn \c_msg_more_text_prefix_tl { msg_text_more ~>~ }
\tl_new:N \l_msg_class_tl
\tl_new:N \l_msg_current_class_tl
+\tl_new:N \l_msg_current_module_tl
\clist_new:N \l_msg_names_clist
\prop_new:N \l_msg_redirect_classes_prop
\prop_new:N \l_msg_redirect_names_prop
\clist_new:N \l_msg_redirect_classes_clist
+\tl_new:N \l_msg_tmp_tl
\cs_new_nopar:Npn \msg_line_number: {
\toks_use:N \tex_inputlineno:D
}
\cs_new_nopar:Npn \msg_line_context: {
\c_msg_on_line_tl
- \msg_space:
+ \c_space_tl
\msg_line_number:
}
\cs_new_nopar:Npn \msg_newline: { ^^J }
\cs_new_nopar:Npn \msg_two_newlines: { ^^J ^^J }
-\cs_new_nopar:Npn \msg_space: { ~ }
-\cs_new_nopar:Npn \msg_two_spaces: { \msg_space: \msg_space: }
-\cs_new_nopar:Npn \msg_four_spaces: {
- \msg_two_spaces: \msg_two_spaces:
-}
-\cs_new_nopar:Npn \msg_generic_new:nnn #1 {
+\cs_new_protected_nopar:Npn \msg_generic_new:nnn #1 {
\chk_if_free_cs:c { \c_msg_text_prefix_tl #1 :xxxx }
\msg_generic_set:nnn {#1}
}
-\cs_new_nopar:Npn \msg_generic_new:nn #1 {
+\cs_new_protected_nopar:Npn \msg_generic_new:nn #1 {
\chk_if_free_cs:c { \c_msg_text_prefix_tl #1 :xxxx }
\msg_generic_set:nn {#1}
}
-\cs_new_nopar:Npn \msg_generic_set:nnn #1 {
+\cs_new_protected_nopar:Npn \msg_generic_set:nnn #1#2#3 {
\msg_generic_set_clist:n {#1}
- \char_make_space:N \
- \msg_generic_set_more_text:nnn {#1}
+ \cs_set:cpn { \c_msg_text_prefix_tl #1 :xxxx } ##1##2##3##4 {#2}
+ \cs_set:cpn { \c_msg_more_text_prefix_tl #1 :xxxx } ##1##2##3##4 {#3}
}
-\cs_new_nopar:Npn \msg_generic_set:nn #1 {
+\cs_new_protected_nopar:Npn \msg_generic_set:nn #1#2 {
\msg_generic_set_clist:n {#1}
- \char_make_space:N \
- \msg_generic_set_text:nn {#1}
+ \cs_set:cpn { \c_msg_text_prefix_tl #1 :xxxx } ##1##2##3##4 {#2}
+ \cs_set_eq:cN { \c_msg_more_text_prefix_tl #1 :xxxx } \c_undefined
}
-\cs_new_nopar:Npn \msg_generic_set_clist:n #1 {
+\cs_new_protected_nopar:Npn \msg_generic_set_clist:n #1 {
\clist_if_in:NnF \l_msg_names_clist { // #1 / } {
\clist_put_right:Nn \l_msg_names_clist { // #1 / }
}
}
-\cs_new:Npn \msg_generic_set_text:nn #1#2 {
- \cs_set:cpn { \c_msg_text_prefix_tl #1 :xxxx } ##1##2##3##4 {#2}
- \cs_set_eq:cN { \c_msg_more_text_prefix_tl #1 :xxxx } \c_undefined
- \char_make_ignore:N \
-}
-\cs_new:Npn \msg_generic_set_more_text:nnn #1#2#3 {
- \cs_set:cpn { \c_msg_text_prefix_tl #1 :xxxx } ##1##2##3##4 {#2}
- \cs_set:cpn { \c_msg_more_text_prefix_tl #1 :xxxx } ##1##2##3##4 {#3}
- \char_make_ignore:N \
-}
\group_begin:
\char_set_lccode:nn {`\&} {`\ } % {
\char_set_lccode:w `\} = `\ \scan_stop:
@@ -159,7 +150,7 @@
\cs_new_protected:Npn\msg_direct_interrupt:xxxx#1#2#3#4{%
\group_begin:%
\cs_set_eq:NN\\\msg_newline:%
-\cs_set_eq:NN\ \msg_space:%
+\cs_set_eq:NN\ \c_space_tl%
\msg_direct_interrupt_aux:n{#4}%
\cs_set_nopar:Npn\\{\msg_newline:#3}%
\tex_errhelp:D\l_msg_tmp_tl%
@@ -175,7 +166,7 @@
\group_end:%
}%
}%
-\cs_new:Npn \msg_direct_interrupt_aux:n #1 {
+\cs_new_protected:Npn \msg_direct_interrupt_aux:n #1 {
\tl_if_empty:nTF {#1} {
\tl_set:Nx \l_msg_tmp_tl { { \c_msg_no_info_text_tl } }
}{
@@ -185,35 +176,35 @@
\cs_new_protected:Npn \msg_direct_log:xx #1#2 {
\group_begin:
\cs_set:Npn \\ { \msg_newline: #2 }
- \cs_set_eq:NN \ \msg_space:
+ \cs_set_eq:NN \ \c_space_tl
\iow_log:x { #1 \msg_newline: }
\group_end:
}
\cs_new_protected:Npn \msg_direct_term:xx #1#2 {
\group_begin:
\cs_set:Npn \\ { \msg_newline: #2 }
- \cs_set_eq:NN \ \msg_space:
+ \cs_set_eq:NN \ \c_space_tl
\iow_term:x { #1 \msg_newline: }
\group_end:
}
-\cs_new_nopar:Npn \msg_new:nnnn #1#2 {
+\cs_new_protected_nopar:Npn \msg_new:nnnn #1#2 {
\msg_generic_new:nnn { #1 / #2 }
}
-\cs_new_nopar:Npn \msg_new:nnn #1#2 {
+\cs_new_protected_nopar:Npn \msg_new:nnn #1#2 {
\msg_generic_new:nn { #1 / #2 }
}
-\cs_new_nopar:Npn \msg_set:nnnn #1#2 {
+\cs_new_protected_nopar:Npn \msg_set:nnnn #1#2 {
\msg_generic_set:nnn { #1 / #2 }
}
-\cs_new_nopar:Npn \msg_set:nnn #1#2 {
+\cs_new_protected_nopar:Npn \msg_set:nnn #1#2 {
\msg_generic_set:nn { #1 / #2 }
}
-\cs_new_nopar:Npn \msg_class_new:nn #1 {
+\cs_new_protected_nopar:Npn \msg_class_new:nn #1 {
\chk_if_free_cs:c { msg_ #1 :nnxxxx }
\prop_new:c { l_msg_redirect_ #1 _prop }
\msg_class_set:nn {#1}
}
-\cs_new_nopar:Npn \msg_class_set:nn #1#2 {
+\cs_new_protected_nopar:Npn \msg_class_set:nn #1#2 {
\prop_clear:c { l_msg_redirect_ #1 _prop }
\cs_set_protected:cpn { msg_ #1 :nnxxxx } ##1##2##3##4##5##6 {
\msg_use:nnnnxxxx {#1} {#2} {##1} {##2} {##3} {##4} {##5} {##6}
@@ -231,7 +222,7 @@
\exp_not:c { msg_ #1 :nnxxxx } {##1} {##2} { } { } { } { }
}
}
-\cs_new:Npn \msg_use:nnnnxxxx #1#2#3#4#5#6#7#8 {
+\cs_new_protected:Npn \msg_use:nnnnxxxx #1#2#3#4#5#6#7#8 {
\cs_set_nopar:Npn \msg_use_code: {
\clist_clear:N \l_msg_redirect_classes_clist
#2
@@ -256,7 +247,7 @@
}
\cs_new_nopar:Npn \msg_use_code: { }
\cs_new:Npn \msg_use_loop:n #1 { }
-\cs_new_nopar:Npn \msg_use_aux:nnn #1#2#3 {
+\cs_new_protected_nopar:Npn \msg_use_aux:nnn #1#2#3 {
\tl_set:Nn \l_msg_current_class_tl {#1}
\tl_set:Nn \l_msg_current_module_tl {#2}
\prop_if_in:NnTF \l_msg_redirect_names_prop { // #2 / #3 / } {
@@ -265,7 +256,7 @@
\msg_use_aux:nn {#1} {#2}
}
}
-\cs_new_nopar:Npn \msg_use_aux:nn #1#2 {
+\cs_new_protected_nopar:Npn \msg_use_aux:nn #1#2 {
\prop_if_in:cnTF { l_msg_redirect_ #1 _prop } {#2} {
\msg_use_loop_check:nn {#1} {#2}
}{
@@ -276,7 +267,7 @@
}
}
}
-\cs_new:Npn \msg_use_loop_check:nn #1#2 {
+\cs_new_protected:Npn \msg_use_loop_check:nn #1#2 {
\prop_get:cnN { l_msg_redirect_ #1 _prop } {#2} \l_msg_class_tl
\tl_if_eq:NNTF \l_msg_current_class_tl \l_msg_class_tl {
\msg_use_code:
@@ -288,10 +279,10 @@
\msg_direct_interrupt:xxxx
{ \c_msg_fatal_tl \msg_two_newlines: }
{
- ( \c_msg_fatal_tl ) \msg_space:
+ ( \c_msg_fatal_tl ) \c_space_tl
\use:c { \c_msg_text_prefix_tl #1 / #2 :xxxx } {#3} {#4} {#5} {#6}
}
- { ( \c_msg_fatal_tl ) \msg_space: }
+ { ( \c_msg_fatal_tl ) \c_space_tl }
{ \c_msg_fatal_text_tl }
\tex_end:D
}
@@ -299,10 +290,10 @@
\msg_direct_interrupt:xxxx
{ #1~\c_msg_error_tl \msg_newline: }
{
- ( #1 ) \msg_space:
+ ( #1 ) \c_space_tl
\use:c { \c_msg_text_prefix_tl #1 / #2 :xxxx } {#3} {#4} {#5} {#6}
}
- { ( #1 ) \msg_space: }
+ { ( #1 ) \c_space_tl }
{
\cs_if_exist:cTF { \c_msg_more_text_prefix_tl #1 / #2 :xxxx }
{
@@ -314,17 +305,17 @@
}
\msg_class_new:nn { warning } {
\msg_direct_term:xx {
- \msg_space: #1 ~ \c_msg_warning_tl :~
+ \c_space_tl #1 ~ \c_msg_warning_tl :~
\use:c { \c_msg_text_prefix_tl #1 / #2 :xxxx } {#3} {#4} {#5} {#6}
}
- { ( #1 ) \msg_two_spaces: }
+ { ( #1 ) \c_space_tl \c_space_tl }
}
\msg_class_new:nn { info } {
\msg_direct_log:xx {
- \msg_space: #1~\c_msg_info_tl :~
+ \c_space_tl #1~\c_msg_info_tl :~
\use:c { \c_msg_text_prefix_tl #1 / #2 :xxxx } {#3} {#4} {#5} {#6}
}
- { ( #1 ) \msg_two_spaces: }
+ { ( #1 ) \c_space_tl \c_space_tl }
}
\msg_class_new:nn { log } {
\msg_direct_log:xx {
@@ -339,28 +330,28 @@
{ }
}
\msg_class_new:nn { none } { }
-\cs_new_nopar:Npn \msg_redirect_class:nn #1#2 {
+\cs_new_protected_nopar:Npn \msg_redirect_class:nn #1#2 {
\prop_put:cnn { l_msg_redirect_ #1 _prop } { * } {#2}
}
-\cs_new_nopar:Npn \msg_redirect_module:nnn #1#2#3 {
+\cs_new_protected_nopar:Npn \msg_redirect_module:nnn #1#2#3 {
\prop_put:cnn { l_msg_redirect_ #2 _prop } {#1} {#3}
}
-\cs_new_nopar:Npn \msg_redirect_name:nnn #1#2#3 {
+\cs_new_protected_nopar:Npn \msg_redirect_name:nnn #1#2#3 {
\prop_put:Nnn \l_msg_redirect_names_prop { // #1 / #2 / } {#3}
}
-\cs_new_nopar:Npn \msg_kernel_new:nnnn #1#2 {
+\cs_new_protected_nopar:Npn \msg_kernel_new:nnnn #1#2 {
\msg_new:nnnn { LaTeX } { #1 / #2 }
}
-\cs_new_nopar:Npn \msg_kernel_new:nnn #1#2 {
+\cs_new_protected_nopar:Npn \msg_kernel_new:nnn #1#2 {
\msg_new:nnn { LaTeX } { #1 / #2 }
}
-\cs_new_nopar:Npn \msg_kernel_set:nnnn #1#2 {
+\cs_new_protected_nopar:Npn \msg_kernel_set:nnnn #1#2 {
\msg_set:nnnn { LaTeX } { #1 / #2 }
}
-\cs_new_nopar:Npn \msg_kernel_set:nnn #1#2 {
+\cs_new_protected_nopar:Npn \msg_kernel_set:nnn #1#2 {
\msg_set:nnn { LaTeX } { #1 / #2 }
}
-\cs_new_nopar:Npn \msg_kernel_classes_new:n #1 {
+\cs_new_protected_nopar:Npn \msg_kernel_classes_new:n #1 {
\cs_new_protected:cpx { msg_kernel_ #1 :nnxxx } ##1##2##3##4##5
{
\exp_not:c { msg_kernel_ #1 :nnxxxx }
@@ -384,11 +375,11 @@
\msg_direct_interrupt:xxxx
{ \c_msg_fatal_tl \msg_two_newlines: }
{
- ( LaTeX ) \msg_space:
+ ( LaTeX ) \c_space_tl
\use:c { \c_msg_text_prefix_tl LaTeX / #1 / #2 :xxxx }
{#3} {#4} {#5} {#6}
}
- { ( LaTeX ) \msg_space: }
+ { ( LaTeX ) \c_space_tl}
{ \c_msg_fatal_text_tl }
\tex_end:D
}
@@ -397,11 +388,11 @@
\msg_direct_interrupt:xxxx
{ LaTeX~\c_msg_error_tl \msg_newline: }
{
- ( LaTeX ) \msg_space:
+ ( LaTeX ) \c_space_tl
\use:c { \c_msg_text_prefix_tl LaTeX / #1 / #2 :xxxx }
{#3} {#4} {#5} {#6}
}
- { ( LaTeX ) \msg_space: }
+ { ( LaTeX ) \c_space_tl }
{
\cs_if_exist:cTF
{ \c_msg_more_text_prefix_tl LaTeX / #1 / #2 :xxxx }
@@ -422,27 +413,26 @@
}
\msg_kernel_classes_new:n { info }
\msg_kernel_new:nnnn { msg } { message-unknown }
- {Unknown message `#2' for module `#1'.}
- {%
- LaTeX was asked to display a message by the `#1' module.\\%
- The message was supposed to be called `#2', but I can't\\%
- find a message with that name.%
+ { Unknown~message~'#2'~for~module~'#1'.}
+ {
+ \c_msg_coding_error_text_tl
+ LaTeX~was~asked~to~display~a~message~called~'#2'\\
+ by~the~module~'#1'~module:~this~message~does~not~exist.
\c_msg_return_text_tl
}
\msg_kernel_new:nnnn { msg } { message-class-unknown }
- {Unknown message class `#1'.}
- {%
- You have asked for a message to be redirected to class `#1'.\\%
- The message class `#1' has not been set up:\\%
- perhaps this is a typing error.%
+ { Unknown~message~class~'#1'. }
+ {
+ LaTeX~has~been~asked~to~redirect~messages~to~a~class~'#1':\\
+ this~was~never~defined.
+
\c_msg_return_text_tl
}
\msg_kernel_new:nnnn { msg } { redirect-loop }
- {Message redirection loop for message class `#1'.}
- {%
- You have asked for a message to be redirected,\\%
- but the redirection instructions form a loop:\\%
- you've lost the message.%
+ { Message~redirection~loop~for~message~class~'#1'. }
+ {
+ LaTeX~has~been~asked~to~redirect~messages~in~an~infinite~loop.\\
+ The~original~message~here~has~been~lost.
\c_msg_return_text_tl
}
\cs_set_protected:Npn \msg_kernel_bug:x #1 {
diff --git a/Master/texmf-dist/tex/latex/expl3/l3names.sty b/Master/texmf-dist/tex/latex/expl3/l3names.sty
index 9c6fd97f716..0c475563656 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3names.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3names.sty
@@ -48,7 +48,7 @@
%%
%% -----------------------------------------------------------------------
\begingroup
-\def\GetIdInfo$#1${%
+\protected\def\GetIdInfo$#1${%
\begingroup
\def\GetIdInfoString{#1}%
\def\IdInfoStringUnexp{Id}%
@@ -59,35 +59,35 @@
\fi
\next
}
-\def\GetIdInfoFull$#1 #2.#3 #4 #5 #6 #7${%
+\protected\def\GetIdInfoFull$#1 #2.#3 #4 #5 #6 #7${%
\GetIdInfoAux #5\relax{#2}#5\relax{#4}%
}
-\def\GetIdInfoAux #1#2#3#4#5#6\relax{%
+\protected\def\GetIdInfoAux #1#2#3#4#5#6\relax{%
\ifx#5/%
\expandafter\GetIdInfoAuxCVS
\else
\expandafter\GetIdInfoAuxSVN
\fi
}
-\def\GetIdInfoAuxCVS #1#2\relax#3#4{%
+\protected\def\GetIdInfoAuxCVS #1#2\relax#3#4{%
\gdef\fileversion{#3}%
\gdef\filedate{#2}%
\gdef\filedescription{#4}%
\ProvidesPackage{#1}[#2 v#3 #4]%
}
-\def\GetIdInfoAuxSVN #1#2-#3-#4\relax#5#6{%
+\protected\def\GetIdInfoAuxSVN #1#2-#3-#4\relax#5#6{%
\gdef\fileversion{#5}%
\gdef\filedate{#2/#3/#4}%
\gdef\filedescription{#6}%
\ProvidesPackage{#1}[#2/#3/#4 v#5 #6]
}
-\def\GetIdInfoMissing#1{%
+\protected\def\GetIdInfoMissing#1{%
\gdef\fileversion{000}%
\gdef\filedate{0000/00/00}%
\gdef\filedescription{#1}%
\ProvidesPackage{[unknown package]}[0000/00/00 v0.0 #1]
}
-\GetIdInfo$Id: l3names.dtx 1751 2009-11-26 08:36:12Z joseph $
+\GetIdInfo$Id: l3names.dtx 1853 2010-03-21 09:11:08Z joseph $
{L3 Experimental Naming Scheme for TeX Primitives}
\endgroup
\begingroup
@@ -106,7 +106,7 @@
\endgroup
\endinput
}
-\edef\ExplSyntaxOff{
+\protected\edef\ExplSyntaxOff{
\unexpanded{\ifodd \ExplSyntaxStatus\relax
\def\ExplSyntaxStatus{0}
}
@@ -635,10 +635,10 @@
\name_primitive:NN \strcmp \pdf_strcmp:D
\tex_fi:D
\tex_fi:D
-\tex_def:D \ExplSyntaxOn {
+\etex_protected:D \tex_def:D \ExplSyntaxOn {
\tex_ifodd:D \ExplSyntaxStatus \tex_relax:D
\tex_else:D
- \tex_edef:D \ExplSyntaxOff {
+ \etex_protected:D \tex_edef:D \ExplSyntaxOff {
\etex_unexpanded:D{
\tex_ifodd:D \ExplSyntaxStatus \tex_relax:D
\tex_def:D \ExplSyntaxStatus{0}
@@ -661,24 +661,24 @@
\tex_fi:D
}
\tex_def:D \ExplSyntaxStatus { 1 }
-\tex_def:D \ExplSyntaxNamesOn {
+\etex_protected:D \tex_def:D \ExplSyntaxNamesOn {
\tex_catcode:D `\_=11\tex_relax:D
\tex_catcode:D `\:=11\tex_relax:D
}
-\tex_def:D \ExplSyntaxNamesOff {
+\etex_protected:D \tex_def:D \ExplSyntaxNamesOff {
\tex_catcode:D `\_=8\tex_relax:D
\tex_catcode:D `\:=12\tex_relax:D
}
-\tex_def:D \GetIdInfo {
+\etex_protected:D \tex_def:D \GetIdInfo {
\tex_begingroup:D
\tex_catcode:D 32=10 \tex_relax:D % needed? Probably for now.
\GetIdInfoMaybeMissing:w
}
-\tex_def:D\GetIdInfoMaybeMissing:w$#1$#2{
- \tex_def:D \l_tmpa_tl {#1}
- \tex_def:D \l_tmpb_tl {Id}
- \tex_ifx:D \l_tmpa_tl \l_tmpb_tl
- \tex_def:D \l_tmpa_tl {
+\etex_protected:D \tex_def:D\GetIdInfoMaybeMissing:w$#1$#2{
+ \tex_def:D \l_kernel_tmpa_tl {#1}
+ \tex_def:D \l_kernel_tmpb_tl {Id}
+ \tex_ifx:D \l_kernel_tmpa_tl \l_kernel_tmpb_tl
+ \tex_def:D \l_kernel_tmpa_tl {
\tex_endgroup:D
\tex_def:D\filedescription{#2}
\tex_def:D\filename {[unknown~name]}
@@ -689,11 +689,11 @@
\tex_def:D\filetimestamp {[unknown~timestamp]}
}
\tex_else:D
- \tex_def:D \l_tmpa_tl {\GetIdInfoAuxi:w$#1${#2}}
+ \tex_def:D \l_kernel_tmpa_tl {\GetIdInfoAuxi:w$#1${#2}}
\tex_fi:D
- \l_tmpa_tl
+ \l_kernel_tmpa_tl
}
-\tex_def:D\GetIdInfoAuxi:w$#1~#2.#3~#4~#5~#6~#7~#8$#9{
+\etex_protected:D \tex_def:D\GetIdInfoAuxi:w$#1~#2.#3~#4~#5~#6~#7~#8$#9{
\tex_endgroup:D
\tex_def:D\filename{#2}
\tex_def:D\fileversion{#4}
@@ -702,34 +702,34 @@
\GetIdInfoAuxii:w #5\tex_relax:D
#3\tex_relax:D#5\tex_relax:D#6\tex_relax:D
}
-\tex_def:D\GetIdInfoAuxii:w #1#2#3#4#5#6\tex_relax:D{
+\etex_protected:D \tex_def:D\GetIdInfoAuxii:w #1#2#3#4#5#6\tex_relax:D{
\tex_ifx:D#5/
\tex_expandafter:D\GetIdInfoAuxCVS:w
\tex_else:D
\tex_expandafter:D\GetIdInfoAuxSVN:w
\tex_fi:D
}
-\tex_def:D\GetIdInfoAuxCVS:w #1,v\tex_relax:D
+\etex_protected:D \tex_def:D\GetIdInfoAuxCVS:w #1,v\tex_relax:D
#2\tex_relax:D#3\tex_relax:D{
\tex_def:D\filedate{#2}
\tex_def:D\filenameext{#1}
\tex_def:D\filetimestamp{#3}
}
-\tex_def:D\GetIdInfoAuxSVN:w #1\tex_relax:D#2-#3-#4
+\etex_protected:D \tex_def:D\GetIdInfoAuxSVN:w #1\tex_relax:D#2-#3-#4
\tex_relax:D#5Z\tex_relax:D{
\tex_def:D\filenameext{#1}
\tex_def:D\filedate{#2/#3/#4}
\tex_def:D\filetimestamp{#5}
}
-\tex_def:D \ProvidesExplPackage#1#2#3#4{
+\etex_protected:D \tex_def:D \ProvidesExplPackage#1#2#3#4{
\ProvidesPackage{#1}[#2~v#3~#4]
\ExplSyntaxOn
}
-\tex_def:D \ProvidesExplClass#1#2#3#4{
+\etex_protected:D \tex_def:D \ProvidesExplClass#1#2#3#4{
\ProvidesClass{#1}[#2~v#3~#4]
\ExplSyntaxOn
}
-\tex_def:D \ProvidesExplFile#1#2#3#4{
+\etex_protected:D \tex_def:D \ProvidesExplFile#1#2#3#4{
\ProvidesFile{#1}[#2~v#3~#4]
\ExplSyntaxOn
}
@@ -749,7 +749,7 @@
\tex_fi:D
}
}
-\tex_def:D\ExplSyntaxPopStack#1#2\q_nil{
+\etex_protected:D\tex_def:D\ExplSyntaxPopStack#1#2\q_nil{
\tex_def:D\ExplSyntaxStack{#2}
\tex_ifodd:D#1\tex_relax:D
\ExplSyntaxOn
@@ -798,7 +798,7 @@
\tex_fi:D}
\tex_fi:D
\tex_futurelet:D\name_tmp:\name_pop_stack:w
-\tex_def:D \package_check_loaded_expl: {
+\etex_protected:D\tex_def:D \package_check_loaded_expl: {
\@ifpackageloaded{expl3}{}{
\PackageError{expl3}{Cannot~load~the~expl3~modules~separately}{
The~expl3~modules~cannot~be~loaded~separately;\MessageBreak
diff --git a/Master/texmf-dist/tex/latex/expl3/l3num.sty b/Master/texmf-dist/tex/latex/expl3/l3num.sty
index 884658dc5c1..e75489bfc88 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3num.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3num.sty
@@ -15,7 +15,7 @@
%% Do not distribute a modified version of this file.
%%
%%
-%% File: l3num.dtx Copyright (C) 2005-2009 Frank Mittelbach, LaTeX3 project
+%% File: l3num.dtx Copyright (C) 2005-2010 Frank Mittelbach, LaTeX3 project
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -48,40 +48,40 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3num.dtx 1451 2009-08-08 06:33:34Z joseph $
+\GetIdInfo$Id$
{L3 Experimental token numbers}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
\package_check_loaded_expl:
-\cs_new_eq:NN \if_num:w \tex_ifnum:D
-\cs_new_eq:NN \if_case:w \tex_ifcase:D
-\cs_set_nopar:Npn \num_incr:N #1{\num_add:Nn#1 1}
-\cs_set_nopar:Npn \num_decr:N #1{\num_add:Nn#1 \c_minus_one}
-\cs_set_nopar:Npn \num_gincr:N #1{\num_gadd:Nn#1 1}
-\cs_set_nopar:Npn \num_gdecr:N #1{\num_gadd:Nn#1 \c_minus_one}
+\cs_set_eq:NN \if_num:w \tex_ifnum:D
+\cs_set_eq:NN \if_case:w \tex_ifcase:D
+\cs_set_protected_nopar:Npn \num_incr:N #1{\num_add:Nn#1 1}
+\cs_set_protected_nopar:Npn \num_decr:N #1{\num_add:Nn#1 \c_minus_one}
+\cs_set_protected_nopar:Npn \num_gincr:N #1{\num_gadd:Nn#1 1}
+\cs_set_protected_nopar:Npn \num_gdecr:N #1{\num_gadd:Nn#1 \c_minus_one}
\cs_generate_variant:Nn \num_incr:N {c}
\cs_generate_variant:Nn \num_decr:N {c}
\cs_generate_variant:Nn \num_gincr:N {c}
\cs_generate_variant:Nn \num_gdecr:N {c}
-\cs_new_nopar:Npn \num_zero:N #1 {\num_set:Nn #1 0}
-\cs_new_nopar:Npn \num_gzero:N #1 {\num_gset:Nn #1 0}
+\cs_new_protected_nopar:Npn \num_zero:N #1 {\num_set:Nn #1 0}
+\cs_new_protected_nopar:Npn \num_gzero:N #1 {\num_gset:Nn #1 0}
\cs_generate_variant:Nn \num_zero:N {c}
\cs_generate_variant:Nn \num_gzero:N {c}
-\cs_new_nopar:Npn \num_new:N #1{\tl_new:Nn #1{0}}
+\cs_new_protected_nopar:Npn \num_new:N #1{\tl_new:Nn #1{0}}
\cs_generate_variant:Nn \num_new:N {c}
-\cs_new_nopar:Npn \num_set:Nn #1#2{
+\cs_new_protected_nopar:Npn \num_set:Nn #1#2{
\tl_set:No #1{ \tex_number:D \intexpr_eval:n {#2} }
}
\cs_generate_variant:Nn\num_set:Nn {c}
-\cs_new_nopar:Npn \num_gset:Nn {\pref_global:D \num_set:Nn}
+\cs_new_protected_nopar:Npn \num_gset:Nn {\pref_global:D \num_set:Nn}
\cs_generate_variant:Nn\num_gset:Nn {c}
\cs_new_eq:NN \num_set_eq:NN \tl_set_eq:NN
\cs_generate_variant:Nn\num_set_eq:NN {c,Nc,cc}
\cs_new_eq:NN \num_gset_eq:NN \tl_gset_eq:NN
\cs_generate_variant:Nn\num_gset_eq:NN {c,Nc,cc}
-\cs_new_nopar:Npn \num_add:Nn #1#2 {\num_set:Nn #1{#1+#2}}
+\cs_new_protected_nopar:Npn \num_add:Nn #1#2 {\num_set:Nn #1{#1+#2}}
\cs_generate_variant:Nn\num_add:Nn {c}
-\cs_new_nopar:Npn \num_gadd:Nn {\pref_global:D \num_add:Nn}
+\cs_new_protected_nopar:Npn \num_gadd:Nn {\pref_global:D \num_add:Nn}
\cs_generate_variant:Nn\num_gadd:Nn {c}
\cs_new_eq:NN\num_use:N \use:n
\cs_new_eq:NN\num_use:c \use:c
diff --git a/Master/texmf-dist/tex/latex/expl3/l3precom.sty b/Master/texmf-dist/tex/latex/expl3/l3precom.sty
index 7beb5d43c72..61cfe7c2a07 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3precom.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3precom.sty
@@ -48,16 +48,12 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3precom.dtx 1453 2009-08-08 14:38:49Z joseph $
+\GetIdInfo$Id: l3precom.dtx 1793 2010-02-09 20:36:19Z joseph $
{L3 Experimental precompilation module}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
-\RequirePackage{l3num}
-\RequirePackage{l3io}
-\RequirePackage{l3seq}
-\RequirePackage{l3int}
-\iow_new:N\c_cs_dump_stream
-\tl_new:Nn\g_cs_dump_name_tl{}
+\package_check_loaded_expl:
+\tl_new:N \g_cs_dump_name_tl
\seq_new:N\g_cs_dump_seq
\cs_new_nopar:Npn\cs_record_name:N#1{
\seq_gput_left:Nn
@@ -67,8 +63,8 @@
\cs_generate_variant:Nn \cs_record_name:N {c}
\cs_new_nopar:Npn\cs_dump:{
\iow_term:x{Precompiling~style~into~(\g_cs_dump_name_tl)}
-\iow_open:Nn\c_cs_dump_stream{\g_cs_dump_name_tl}
-\iow_now:Nx\c_cs_dump_stream
+\iow_open:Nn\g_cs_dump_stream{\g_cs_dump_name_tl}
+\iow_now:Nx\g_cs_dump_stream
{\group_begin:
\tex_catcode:D`\token_to_str:N\*=11\scan_stop:
\token_to_str:N\ExplSyntaxOn
@@ -76,19 +72,19 @@
\seq_map_inline:Nn
\g_cs_dump_seq
{\tex_message:D{.}
-\iow_now:Nx\c_cs_dump_stream
+\iow_now:Nx\g_cs_dump_stream
{\exp_not:n{\cs_gset_nopar:Npn ##1}
{\tl_to_str:N##1}}
}
-\iow_now:Nx \c_cs_dump_stream {\exp_not:n{\num_gset:Nn
- \g_gen_sym_num}
- {\num_use:N\g_gen_sym_num}^^J
-\exp_not:n{\num_gset:Nn \g_ggen_sym_num}
- {\num_use:N\g_ggen_sym_num}}
+\iow_now:Nx \g_cs_dump_stream {\exp_not:n{\int_gset:Nn
+ \g_gen_sym_int}
+ {\int_use:N\g_gen_sym_int}^^J
+\exp_not:n{\int_gset:Nn \g_ggen_sym_int}
+ {\int_use:N\g_ggen_sym_int}}
\iow_now:Nx
-\c_cs_dump_stream
+\g_cs_dump_stream
{\group_end:}
-\iow_close:N\c_cs_dump_stream
+\iow_close:N\g_cs_dump_stream
\tex_message:D{~finished}
}
\cs_new_nopar:Npn \cs_load_dump:n #1 {
@@ -100,16 +96,16 @@
\tl_gset:Nn \g_cs_dump_name_tl { #1 .cmp }
}
}
-\num_new:N\g_gen_sym_num \num_gset:Nn\g_gen_sym_num{0}
-\num_new:N\g_ggen_sym_num \num_gset:Nn\g_ggen_sym_num{0}
+\int_new:N\g_gen_sym_int \int_gset:Nn\g_gen_sym_int{0}
+\int_new:N\g_ggen_sym_int \int_gset:Nn\g_ggen_sym_int{0}
\cs_new_nopar:Npn\cs_gen_sym:N#1{
-\num_gincr:N\g_gen_sym_num
-\tl_set:Nc#1{l*\tex_romannumeral:D\num_use:N\g_gen_sym_num}
+\int_gincr:N\g_gen_sym_num
+\tl_set:Nc#1{l*\tex_romannumeral:D\int_use:N\g_gen_sym_int}
\exp_after:wN\cs_record_name:N#1
\exp_after:wN\tl_clear_new:N#1}
\cs_new_nopar:Npn\cs_ggen_sym:N#1{
-\num_gincr:N\g_ggen_sym_num
-\tl_set:Nc#1{g*\tex_romannumeral:D\num_use:N\g_ggen_sym_num}
+\int_gincr:N\g_ggen_sym_int
+\tl_set:Nc#1{g*\tex_romannumeral:D\int_use:N\g_ggen_sym_int}
\exp_after:wN\cs_record_name:N#1
\exp_after:wN\tl_clear_new:N#1}
\seq_new:N\g_cs_trace_seq
@@ -122,11 +118,11 @@
\g_register_trace_seq#1}
\cs_new_nopar:Npn\dumpLaTeXstate#1{
\iow_term:x{Dumping~commands~into~(#1.dmp)}
- \iow_open:Nn\c_cs_dump_stream{#1.dmp}
+ \iow_open:Nn\g_cs_dump_stream{#1.dmp}
\seq_map_inline:Nn
\g_cs_trace_seq
{\tex_message:D{.}
- \iow_now:Nx\c_cs_dump_stream
+ \iow_now:Nx\g_cs_dump_stream
{\token_to_str:N##1~
\token_to_meaning:N##1}
}
@@ -134,10 +130,11 @@
\seq_map_inline:Nn
\g_register_trace_seq
{\tex_message:D{.}
- \iow_now:Nx\c_cs_dump_stream
+ \iow_now:Nx\g_cs_dump_stream
{\token_to_str:N##1
\toks_use:N##1}
}
+ \iow_clos:Nn \g_cs_dump_stream
\tex_message:D{~finished}
}
%%
diff --git a/Master/texmf-dist/tex/latex/expl3/l3prg.sty b/Master/texmf-dist/tex/latex/expl3/l3prg.sty
index 63354678065..5476a648597 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 1677 2009-11-02 08:24:04Z joseph $
+\GetIdInfo$Id: l3prg.dtx 1853 2010-03-21 09:11:08Z joseph $
{L3 Experimental control structures}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
@@ -112,6 +112,7 @@
\cs_end:{#1#1#1#1#1#1#1#1#1#1}#1#1#1#1#1#1#1#1}
\cs_new:cpn {prg_replicate_9:n}#1{
\cs_end:{#1#1#1#1#1#1#1#1#1#1}#1#1#1#1#1#1#1#1#1}
+\cs_new:cpn {prg_replicate_first_-:n}#1{\cs_end: \ERROR }
\cs_new:cpn {prg_replicate_first_0:n}#1{\cs_end: }
\cs_new:cpn {prg_replicate_first_1:n}#1{\cs_end: #1}
\cs_new:cpn {prg_replicate_first_2:n}#1{\cs_end: #1#1}
@@ -147,7 +148,7 @@
}
}
\int_new:N\g_prg_inline_level_int
-\cs_new:Npn\prg_stepwise_inline:nnnn #1#2#3#4{
+\cs_new_protected:Npn\prg_stepwise_inline:nnnn #1#2#3#4{
\int_gincr:N \g_prg_inline_level_int
\cs_gset_nopar:cpn{prg_stepwise_inline_\int_use:N\g_prg_inline_level_int :n}##1{#4}
\intexpr_compare:nNnTF {#2}<\c_zero
@@ -173,13 +174,13 @@
{\intexpr_eval:n{#2 + #3}} {#3}{#4}
}
}
-\cs_new:Npn \prg_stepwise_variable:nnnNn #1#2 {
+\cs_new_protected:Npn \prg_stepwise_variable:nnnNn #1#2 {
\intexpr_compare:nNnTF {#2}<\c_zero
{\exp_args:Nf\prg_stepwise_variable_decr:nnnNn}
{\exp_args:Nf\prg_stepwise_variable_incr:nnnNn}
{\intexpr_eval:n{#1}}{#2}
}
-\cs_new:Npn \prg_stepwise_variable_incr:nnnNn #1#2#3#4#5 {
+\cs_new_protected:Npn \prg_stepwise_variable_incr:nnnNn #1#2#3#4#5 {
\intexpr_compare:nNnF {#1}>{#3}
{
\cs_set_nopar:Npn #4{#1} #5
@@ -187,7 +188,7 @@
{\intexpr_eval:n{#1 + #2}}{#2}{#3}#4{#5}
}
}
-\cs_new:Npn \prg_stepwise_variable_decr:nnnNn #1#2#3#4#5 {
+\cs_new_protected:Npn \prg_stepwise_variable_decr:nnnNn #1#2#3#4#5 {
\intexpr_compare:nNnF {#1}<{#3}
{
\cs_set_nopar:Npn #4{#1} #5
@@ -195,16 +196,16 @@
{\intexpr_eval:n{#1 + #2}}{#2}{#3}#4{#5}
}
}
-\cs_new_nopar:Npn \bool_new:N #1 { \cs_new_eq:NN #1 \c_false_bool }
-\cs_new_nopar:Npn \bool_new:c #1 { \cs_new_eq:cN {#1} \c_false_bool }
-\cs_new_nopar:Npn \bool_set_true:N #1 { \cs_set_eq:NN #1 \c_true_bool }
-\cs_new_nopar:Npn \bool_set_true:c #1 { \cs_set_eq:cN {#1} \c_true_bool }
-\cs_new_nopar:Npn \bool_set_false:N #1 { \cs_set_eq:NN #1 \c_false_bool }
-\cs_new_nopar:Npn \bool_set_false:c #1 { \cs_set_eq:cN {#1} \c_false_bool }
-\cs_new_nopar:Npn \bool_gset_true:N #1 { \cs_gset_eq:NN #1 \c_true_bool }
-\cs_new_nopar:Npn \bool_gset_true:c #1 { \cs_gset_eq:cN {#1} \c_true_bool }
-\cs_new_nopar:Npn \bool_gset_false:N #1 { \cs_gset_eq:NN #1 \c_false_bool }
-\cs_new_nopar:Npn \bool_gset_false:c #1 { \cs_gset_eq:cN {#1} \c_false_bool }
+\cs_new_protected_nopar:Npn \bool_new:N #1 { \cs_new_eq:NN #1 \c_false_bool }
+\cs_new_protected_nopar:Npn \bool_new:c #1 { \cs_new_eq:cN {#1} \c_false_bool }
+\cs_new_protected_nopar:Npn \bool_set_true:N #1 { \cs_set_eq:NN #1 \c_true_bool }
+\cs_new_protected_nopar:Npn \bool_set_true:c #1 { \cs_set_eq:cN {#1} \c_true_bool }
+\cs_new_protected_nopar:Npn \bool_set_false:N #1 { \cs_set_eq:NN #1 \c_false_bool }
+\cs_new_protected_nopar:Npn \bool_set_false:c #1 { \cs_set_eq:cN {#1} \c_false_bool }
+\cs_new_protected_nopar:Npn \bool_gset_true:N #1 { \cs_gset_eq:NN #1 \c_true_bool }
+\cs_new_protected_nopar:Npn \bool_gset_true:c #1 { \cs_gset_eq:cN {#1} \c_true_bool }
+\cs_new_protected_nopar:Npn \bool_gset_false:N #1 { \cs_gset_eq:NN #1 \c_false_bool }
+\cs_new_protected_nopar:Npn \bool_gset_false:c #1 { \cs_gset_eq:cN {#1} \c_false_bool }
\cs_new_eq:NN \bool_set_eq:NN \cs_set_eq:NN
\cs_new_eq:NN \bool_set_eq:Nc \cs_set_eq:Nc
\cs_new_eq:NN \bool_set_eq:cN \cs_set_eq:cN
@@ -249,8 +250,28 @@
:w
} #1
}
-\cs_set:cpn {bool_!:w}#1{
- \exp_after:wN \intexpr_if_even_p:n \tex_number:D \bool_get_next:N
+\cs_set:cpn { bool_!:w } #1#2 {
+ \if_meaning:w ( #2
+ \exp_after:wN \bool_Not:w
+ \else:
+ \if_meaning:w ! #2
+ \exp_after:wN \exp_after:wN \exp_after:wN \use_none:n
+ \else:
+ \exp_after:wN \exp_after:wN \exp_after:wN \bool_Not:N
+ \fi:
+ \fi:
+ #2
+}
+\cs_new:Npn \bool_Not:w {
+ \exp_after:wN \intexpr_if_even_p:n \tex_number:D \bool_get_next:N
+}
+\cs_new:Npn \bool_Not:N #1 {
+ \exp_after:wN \bool_p:w
+ \if_meaning:w #1 \c_true_bool
+ \c_false_bool
+ \else:
+ \c_true_bool
+ \fi:
}
\cs_set:cpn {bool_(:w}#1{
\exp_after:wN \bool_cleanup:N \tex_number:D \bool_get_next:N
@@ -349,7 +370,7 @@
}
\cs_new:Npn \prg_end_case:nw #1#2\q_recursion_stop#3{#1}
-\cs_new_nopar:Npn \prg_define_quicksort:nnn #1#2#3 {
+\cs_new_protected_nopar:Npn \prg_define_quicksort:nnn #1#2#3 {
\cs_set:cpx{#1_quicksort:n}##1{
\exp_not:c{#1_quicksort_start_partition:w} ##1
\exp_not:n{#2\q_nil#3\q_stop}
diff --git a/Master/texmf-dist/tex/latex/expl3/l3prop.sty b/Master/texmf-dist/tex/latex/expl3/l3prop.sty
index 14c542416e8..9d702a4004f 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 1622 2009-10-25 06:41:23Z will $
+\GetIdInfo$Id: l3prop.dtx 1857 2010-03-21 21:32:09Z joseph $
{L3 Experimental Property Lists}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
@@ -70,7 +70,7 @@
\cs_new_eq:NN \prop_gset_eq:cc \toks_gset_eq:cc
\cs_new_eq:NN \prop_show:N \toks_show:N
\cs_new_eq:NN \prop_show:c \toks_show:c
-\cs_new_nopar:Npn \prop_display:N #1 {
+\cs_new_protected_nopar:Npn \prop_display:N #1 {
\iow_term:x { Property-list~\token_to_str:N #1~contains~
the~pairs~(without~outer~braces): }
\toks_clear:N \l_tmpa_toks
@@ -79,50 +79,50 @@
\toks_put_right:Nx \l_tmpa_toks {^^J>~}
}
\toks_put_right:Nx \l_tmpa_toks {
- \iow_space: \iow_char:N \{ \exp_not:n {##1} \iow_char:N \} \iow_space:
- \iow_space: => \iow_space:
- \iow_space: \iow_char:N \{ \exp_not:n {##2} \iow_char:N \}
+ \c_space_tl \iow_char:N \{ \exp_not:n {##1} \iow_char:N \} \c_space_tl
+ \c_space_tl => \c_space_tl
+ \c_space_tl \iow_char:N \{ \exp_not:n {##2} \iow_char:N \}
}
}
\toks_show:N \l_tmpa_toks
}
\cs_generate_variant:Nn \prop_display:N {c}
-\cs_new:Npn \prop_split_aux:Nnn #1#2#3{
+\cs_new_protected:Npn \prop_split_aux:Nnn #1#2#3{
\cs_set:Npn \prop_tmp:w ##1 \q_prop #2 \q_prop ##2##3 \q_stop {
#3 {##1}{##2}{##3}
}
\exp_after:wN \prop_tmp:w \toks_use:N #1 \q_prop #2 \q_prop \q_no_value \q_stop
}
-\cs_new:Npn \prop_get:NnN #1#2 {
+\cs_new_protected:Npn \prop_get:NnN #1#2 {
\prop_split_aux:Nnn #1{#2}\prop_get_aux:w
}
-\cs_new:Npn \prop_get_aux:w #1#2#3#4 { \tl_set:Nx #4 {\exp_not:n{#2}} }
+\cs_new_protected:Npn \prop_get_aux:w #1#2#3#4 { \tl_set:Nn #4 {#2} }
\cs_generate_variant:Nn \prop_get:NnN { NVN, cnN, cVN }
-\cs_new:Npn \prop_gget:NnN #1#2{
+\cs_new_protected:Npn \prop_gget:NnN #1#2{
\prop_split_aux:Nnn #1{#2}\prop_gget_aux:w}
-\cs_new:Npn \prop_gget_aux:w #1#2#3#4{\tl_gset:Nx#4{\exp_not:n{#2}}}
+\cs_new_protected:Npn \prop_gget_aux:w #1#2#3#4{\tl_gset:Nx#4{\exp_not:n{#2}}}
\cs_generate_variant:Nn \prop_gget:NnN { NVN, cnN, cVN }
-\cs_new:Npn \prop_get_gdel:NnN #1#2#3{
+\cs_new_protected:Npn \prop_get_gdel:NnN #1#2#3{
\prop_split_aux:Nnn #1{#2}{\prop_get_del_aux:w #3{\toks_gset:Nn #1}{#2}}}
-\cs_new:Npn \prop_get_del_aux:w #1#2#3#4#5#6{
- \tl_set:Nx #1{\exp_not:n{#5}}
+\cs_new_protected:Npn \prop_get_del_aux:w #1#2#3#4#5#6{
+ \tl_set:Nn #1 {#5}
\quark_if_no_value:NF #1 {
\cs_set_nopar:Npn \prop_tmp:w ##1\q_prop#3\q_prop\q_no_value {#2{#4##1}}
\prop_tmp:w #6}
}
-\cs_new:Npn \prop_put:Nnn #1#2{
+\cs_new_protected:Npn \prop_put:Nnn #1#2{
\prop_split_aux:Nnn #1{#2}{
\prop_clear:N #1
\prop_put_aux:w {\toks_put_right:Nn #1}{#2}
}
}
-\cs_new:Npn \prop_gput:Nnn #1#2{
+\cs_new_protected:Npn \prop_gput:Nnn #1#2{
\prop_split_aux:Nnn #1{#2}{
\prop_gclear:N #1
\prop_put_aux:w {\toks_gput_right:Nn #1}{#2}
}
}
-\cs_new:Npn \prop_put_aux:w #1#2#3#4#5#6{
+\cs_new_protected:Npn \prop_put_aux:w #1#2#3#4#5#6{
#1{\q_prop#2\q_prop{#6}#3}
\tl_if_empty:nF{#5}
{
@@ -131,12 +131,12 @@
}
}
\cs_generate_variant:Nn \prop_put:Nnn { NnV, NVn, NVV, cnn }
-\cs_generate_variant:Nn \prop_gput:Nnn {NnV,Nno,Nnx,Nox,cnn,ccx}
-\cs_new:Npn \prop_del:Nn #1#2{
+\cs_generate_variant:Nn \prop_gput:Nnn {NVn,NnV,Nno,Nnx,Nox,cnn,ccx}
+\cs_new_protected:Npn \prop_del:Nn #1#2{
\prop_split_aux:Nnn #1{#2}{\prop_del_aux:w {\toks_set:Nn #1}{#2}}}
-\cs_new:Npn \prop_gdel:Nn #1#2{
+\cs_new_protected:Npn \prop_gdel:Nn #1#2{
\prop_split_aux:Nnn #1{#2}{\prop_del_aux:w {\toks_gset:Nn #1}{#2}}}
-\cs_new:Npn \prop_del_aux:w #1#2#3#4#5{
+\cs_new_protected:Npn \prop_del_aux:w #1#2#3#4#5{
\cs_set_nopar:Npn \prop_tmp:w {#4}
\quark_if_no_value:NF \prop_tmp:w {
\cs_set_nopar:Npn \prop_tmp:w ##1\q_prop#2\q_prop\q_no_value {#1{#3##1}}
@@ -145,9 +145,9 @@
}
\cs_generate_variant:Nn \prop_del:Nn { NV }
\cs_generate_variant:Nn \prop_gdel:Nn { NV }
-\cs_new:Npn \prop_gput_if_new:Nnn #1#2{
+\cs_new_protected:Npn \prop_gput_if_new:Nnn #1#2{
\prop_split_aux:Nnn #1{#2}{\prop_put_if_new_aux:w #1{#2}}}
-\cs_new:Npn \prop_put_if_new_aux:w #1#2#3#4#5#6{
+\cs_new_protected:Npn \prop_put_if_new_aux:w #1#2#3#4#5#6{
\tl_if_empty:nT {#5}{#1{\q_prop#2\q_prop{#6}#3}}}
\prg_new_eq_conditional:NNn \prop_if_empty:N \toks_if_empty:N {p,TF,T,F}
\prg_new_eq_conditional:NNn \prop_if_empty:c \toks_if_empty:c {p,TF,T,F}
@@ -155,7 +155,7 @@
\prg_new_eq_conditional:NNn \prop_if_eq:cN \toks_if_eq:cN {p,TF,T,F}
\prg_new_eq_conditional:NNn \prop_if_eq:Nc \toks_if_eq:Nc {p,TF,T,F}
\prg_new_eq_conditional:NNn \prop_if_eq:cc \toks_if_eq:cc {p,TF,T,F}
-\prg_new_conditional:Nnn \prop_if_in:Nn {TF,T,F} {
+\prg_new_protected_conditional:Nnn \prop_if_in:Nn {TF,T,F} {
\prop_split_aux:Nnn #1 {#2} {\prop_if_in_aux:w}
}
\cs_new_nopar:Npn \prop_if_in_aux:w #1#2#3 {
@@ -177,7 +177,7 @@
}
\cs_generate_variant:Nn \prop_map_function:NN {c,Nc,cc}
\int_new:N \g_prop_inline_level_int
-\cs_new_nopar:Npn \prop_map_inline:Nn #1#2 {
+\cs_new_protected_nopar:Npn \prop_map_inline:Nn #1#2 {
\int_gincr:N \g_prop_inline_level_int
\cs_gset:cpn {prop_map_inline_ \int_use:N \g_prop_inline_level_int :n}
##1##2{#2}
diff --git a/Master/texmf-dist/tex/latex/expl3/l3quark.sty b/Master/texmf-dist/tex/latex/expl3/l3quark.sty
index 8302f07306a..79e0f26f0b3 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3quark.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3quark.sty
@@ -48,12 +48,12 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3quark.dtx 1365 2009-05-31 17:26:17Z mittelba $
+\GetIdInfo$Id: l3quark.dtx 1853 2010-03-21 09:11:08Z joseph $
{L3 Experimental Quark Commands}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
\package_check_loaded_expl:
-\cs_new_nopar:Npn \quark_new:N #1{\tl_new:Nn #1{#1}}
+\cs_new_protected_nopar:Npn \quark_new:N #1 { \tl_const:Nn #1 {#1} }
\quark_new:N \q_stop
\quark_new:N \q_no_value
\quark_new:N \q_nil
@@ -110,7 +110,7 @@
\prg_new_conditional:Nnn \quark_if_no_value:n {p,TF,T,F} {
\exp_args:NNo
\if_predicate:w \str_if_eq_var_p:nf
- {\token_to_str:N\q_no_value\iow_space:}
+ {\token_to_str:N\q_no_value\c_space_tl}
{\tl_to_str:n{#1}}
\prg_return_true: \else: \prg_return_false:
\fi:
@@ -132,7 +132,7 @@
\prg_new_conditional:Nnn \quark_if_nil:n {p,TF,T,F} {
\exp_args:NNo
\if_predicate:w \str_if_eq_var_p:nf
- {\token_to_str:N\q_nil\iow_space:}
+ {\token_to_str:N\q_nil\c_space_tl}
{\tl_to_str:n{#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 a14df7ccef1..8f6b8c95e01 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3seq.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3seq.sty
@@ -15,7 +15,7 @@
%% Do not distribute a modified version of this file.
%%
%%
-%% File: l3seq.dtx Copyright (C) 1990-2009 LaTeX3 project
+%% File: l3seq.dtx Copyright (C) 1990-2010 LaTeX3 project
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -48,7 +48,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3seq.dtx 1692 2009-11-03 21:02:34Z joseph $
+\GetIdInfo$Id: l3seq.dtx 1857 2010-03-21 21:32:09Z joseph $
{L3 Experimental sequences and stacks}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
@@ -73,7 +73,7 @@
\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_nopar:Npn \seq_gconcat:NNN #1#2#3 {
+\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}
@@ -81,11 +81,11 @@
\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_testa_tl % catch prefixes
+ \tl_clear:N \l_kernel_testa_tl % catch prefixes
\msg_kernel_bug:x {Empty~sequence~`\token_to_str:N#1'}
\fi:
}
-\prg_new_conditional:Nnn \seq_if_in:Nn {TF,T,F} {
+\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:
@@ -95,26 +95,26 @@
\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_nopar:Npn \seq_get:NN #1 {
+\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:Npn \seq_get_aux:w \seq_elt:w #1 \seq_elt_end: #2 \q_stop #3 {
+\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:Npn \seq_pop_aux:nnNN #1#2#3 {
+\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:Npn \seq_pop_aux:w
+\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_nopar:Npn \seq_display:N #1 {
+\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
@@ -123,85 +123,84 @@
\toks_put_right:Nx \l_tmpa_toks {^^J>~}
}
\toks_put_right:Nx \l_tmpa_toks {
- \iow_space: \iow_char:N \{ \exp_not:n {##1} \iow_char:N \}
+ \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:Npn \seq_put_aux:Nnn #1 {
+\cs_new_protected:Npn \seq_put_aux:Nnn #1 {
\exp_after:wN \seq_put_aux:w #1 \q_stop #1
}
-\cs_new:Npn \seq_put_aux:w #1\q_stop #2#3#4 { \tl_set:Nn #2 {#3#1#4} }
-\cs_new:Npn \seq_put_left:Nn #1#2 {
+\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:Npn \seq_put_right:Nn #1#2{
+\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:Npn \seq_gput_left:Nn {
+\cs_new_protected:Npn \seq_gput_left:Nn {
\pref_global:D
\seq_put_left:Nn
}
-\cs_new:Npn \seq_gput_right: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_generate_variant:Nn \seq_gput_right:Nn {Nc}
-\cs_new:Npn \seq_map_variable_aux:Nnw #1#2 \seq_elt:w #3 \seq_elt_end: {
- \tl_set:Nx #1{\exp_not:n{#3}}
+\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:Npn \seq_map_variable:NNn #1#2#3 {
- \tl_set:Nx #2 {\exp_not:n{\seq_map_variable_aux:Nnw #2{#3}}}
+\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_nopar:Npn \seq_map_function:NN #1#2 {
+\cs_new_protected_nopar:Npn \seq_map_function:NN #1#2 {
\cs_set:Npn \seq_elt:w ##1 \seq_elt_end: {#2{##1}}
- #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_nopar:Npn \seq_map_inline:Nn #1#2 {
+\cs_new_protected_nopar:Npn \seq_map_inline: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_inline:Nn {c}
\seq_new:N \l_seq_remove_seq
-\cs_new:Npn \seq_remove_duplicates_aux:NN #1#2 {
+\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:Npn \seq_remove_duplicates_aux:n #1 {
+\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_nopar:Npn \seq_remove_duplicates:N {
+\cs_new_protected_nopar:Npn \seq_remove_duplicates:N {
\seq_remove_duplicates_aux:NN \seq_set_eq:NN
}
-\cs_new_nopar:Npn \seq_gremove_duplicates:N {
+\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_nopar:Npn \seq_pop:NN { \seq_pop_aux:nnNN \tl_set:Nn \tl_set:Nn }
+\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_nopar:Npn \seq_gpop:NN { \seq_pop_aux:nnNN \tl_gset:Nn \tl_set: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
diff --git a/Master/texmf-dist/tex/latex/expl3/l3skip.sty b/Master/texmf-dist/tex/latex/expl3/l3skip.sty
index 53462fcaea7..210d9e0c86b 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3skip.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3skip.sty
@@ -48,42 +48,50 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3skip.dtx 1362 2009-05-28 20:19:21Z joseph $
+\GetIdInfo$Id: l3skip.dtx 1867 2010-03-23 13:03:12Z will $
{L3 Experimental skip registers}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
\package_check_loaded_expl:
-\cs_new_nopar:Npn \skip_new:N #1 {
+\cs_new_protected_nopar:Npn \skip_new:N #1 {
\chk_if_free_cs:N #1
\newskip #1
}
+\cs_new_protected_nopar:Npn \skip_new_local:N #1 {
+ \chk_if_free_cs:N #1
+ \int_compare:nNnTF
+ \tex_currentgrouplevel:D = 0
+ \newskip \locskip
+ #1
+}
\cs_generate_variant:Nn \skip_new:N {c}
-\cs_new_nopar:Npn \skip_set:Nn #1#2 {
+\cs_generate_variant:Nn \skip_new_local:N {c}
+\cs_new_protected_nopar:Npn \skip_set:Nn #1#2 {
#1\skip_eval:n{#2}
}
-\cs_new_nopar:Npn \skip_gset:Nn {
+\cs_new_protected_nopar:Npn \skip_gset:Nn {
\pref_global:D
\skip_set:Nn
}
\cs_generate_variant:Nn \skip_set:Nn {cn}
\cs_generate_variant:Nn \skip_gset:Nn {cn}
-\cs_new_nopar:Npn \skip_zero:N #1{
+\cs_new_protected_nopar:Npn \skip_zero:N #1{
#1\c_zero_skip \scan_stop:
}
-\cs_new_nopar:Npn \skip_gzero:N {
+\cs_new_protected_nopar:Npn \skip_gzero:N {
\pref_global:D
\skip_zero:N
}
\cs_generate_variant:Nn \skip_zero:N {c}
\cs_generate_variant:Nn \skip_gzero:N {c}
-\cs_new_nopar:Npn \skip_add:Nn #1#2 {
+\cs_new_protected_nopar:Npn \skip_add:Nn #1#2 {
\tex_advance:D#1 by \skip_eval:n{#2}
}
\cs_generate_variant:Nn \skip_add:Nn {cn}
-\cs_new_nopar:Npn \skip_sub:Nn #1#2{
+\cs_new_protected_nopar:Npn \skip_sub:Nn #1#2{
\tex_advance:D#1-\skip_eval:n{#2}
}
-\cs_new_nopar:Npn \skip_gadd:Nn {
+\cs_new_protected_nopar:Npn \skip_gadd:Nn {
\pref_global:D
\skip_add:Nn
}
@@ -102,7 +110,7 @@
\cs_generate_variant:Nn \skip_use:N {c}
\cs_new_eq:NN \skip_show:N \tex_showthe:D
\cs_new_nopar:Npn \skip_show:c #1 { \skip_show:N \cs:w #1 \cs_end: }
-\cs_new_nopar:Npn \skip_eval:n #1 { \etex_glueexpr:D #1 \scan_stop: }
+\cs_new_protected_nopar:Npn \skip_eval:n #1 { \etex_glueexpr:D #1 \scan_stop: }
%%\chk_if_free_cs:N \l_tmpa_skip
%%\tex_skipdef:D\l_tmpa_skip 255 %currently taken up by \skip@
\skip_new:N \l_tmpa_skip
@@ -130,28 +138,36 @@
#4 = \etex_glueshrink:D #1 \scan_stop:
}
}
-\cs_new_nopar:Npn \dim_new:N #1 {
+\cs_new_protected_nopar:Npn \dim_new:N #1 {
\chk_if_free_cs:N #1
\newdimen #1
}
+\cs_new_protected_nopar:Npn \dim_new_local:N #1 {
+ \chk_if_free_cs:N #1
+ \int_compare:nNnTF
+ \tex_currentgrouplevel:D = 0
+ \newdimen \locdimen
+ #1
+}
\cs_generate_variant:Nn \dim_new:N {c}
-\cs_new_nopar:Npn \dim_set:Nn #1#2 { #1~ \dim_eval:n{#2} }
+\cs_generate_variant:Nn \dim_new_local:N {c}
+\cs_new_protected_nopar:Npn \dim_set:Nn #1#2 { #1~ \dim_eval:n{#2} }
\cs_generate_variant:Nn \dim_set:Nn {cn,Nc}
-\cs_new_nopar:Npn \dim_gset:Nn { \pref_global:D \dim_set:Nn }
+\cs_new_protected_nopar:Npn \dim_gset:Nn { \pref_global:D \dim_set:Nn }
\cs_generate_variant:Nn \dim_gset:Nn {cn,Nc,cc}
-\cs_new_nopar:Npn \dim_zero:N #1 { #1\c_zero_skip }
+\cs_new_protected_nopar:Npn \dim_zero:N #1 { #1\c_zero_skip }
\cs_generate_variant:Nn \dim_zero:N {c}
-\cs_new_nopar:Npn \dim_gzero:N { \pref_global:D \dim_zero:N }
+\cs_new_protected_nopar:Npn \dim_gzero:N { \pref_global:D \dim_zero:N }
\cs_generate_variant:Nn \dim_gzero:N {c}
-\cs_new_nopar:Npn \dim_add:Nn #1#2{
+\cs_new_protected_nopar:Npn \dim_add:Nn #1#2{
\tex_advance:D#1 by \dim_eval:n{#2}\scan_stop:
}
\cs_generate_variant:Nn \dim_add:Nn {cn,Nc}
-\cs_new_nopar:Npn \dim_gadd:Nn { \pref_global:D \dim_add:Nn }
+\cs_new_protected_nopar:Npn \dim_gadd:Nn { \pref_global:D \dim_add:Nn }
\cs_generate_variant:Nn \dim_gadd:Nn {cn}
-\cs_new_nopar:Npn \dim_sub:Nn #1#2 { \tex_advance:D#1-#2\scan_stop: }
+\cs_new_protected_nopar:Npn \dim_sub:Nn #1#2 { \tex_advance:D#1-#2\scan_stop: }
\cs_generate_variant:Nn \dim_sub:Nn {cn,Nc}
-\cs_new_nopar:Npn \dim_gsub:Nn { \pref_global:D \dim_sub:Nn }
+\cs_new_protected_nopar:Npn \dim_gsub:Nn { \pref_global:D \dim_sub:Nn }
\cs_generate_variant:Nn \dim_gsub:Nn {cn}
\cs_new_eq:NN \dim_use:N \tex_the:D
\cs_generate_variant:Nn \dim_use:N {c}
@@ -165,7 +181,7 @@
\dim_new:N \g_tmpb_dim
\cs_new_eq:NN \c_zero_dim \c_zero_skip
\cs_new_eq:NN \c_max_dim \c_max_skip
-\cs_new_nopar:Npn \dim_eval:n #1 { \etex_dimexpr:D #1 \scan_stop: }
+\cs_new_protected_nopar:Npn \dim_eval:n #1 { \etex_dimexpr:D #1 \scan_stop: }
\cs_new_eq:NN \if_dim:w \tex_ifdim:D
\prg_new_conditional:Nnn \dim_compare:nNn {p,TF,T,F} {
\if_dim:w \dim_eval:n {#1} #2 \dim_eval:n {#3}
@@ -183,16 +199,23 @@
\cs_new_nopar:Npn \dim_do_until:nNnn #1#2#3#4{
#4 \dim_compare:nNnF {#1}#2{#3}{\dim_do_until:nNnn {#1}#2{#3}{#4}}
}
-\cs_new_nopar:Npn \muskip_new:N #1 {
+\cs_new_protected_nopar:Npn \muskip_new:N #1 {
\chk_if_free_cs:N #1
\newmuskip #1
}
-\cs_new_nopar:Npn \muskip_set:Nn#1#2{#1\etex_muexpr:D#2\scan_stop:}
-\cs_new_nopar:Npn \muskip_gset:Nn{\pref_global:D\muskip_set:Nn}
-\cs_new_nopar:Npn \muskip_add:Nn#1#2{\tex_advance:D#1\etex_muexpr:D#2\scan_stop:}
-\cs_new_nopar:Npn \muskip_gadd:Nn{\pref_global:D\muskip_add:Nn}
-\cs_new_nopar:Npn \muskip_sub:Nn#1#2{\tex_advance:D#1-\etex_muexpr:D#2\scan_stop:}
-\cs_new_nopar:Npn \muskip_gsub:Nn{\pref_global:D\muskip_sub:Nn}
+\cs_new_protected_nopar:Npn \muskip_new_local:N #1 {
+ \chk_if_free_cs:N #1
+ \int_compare:nNnTF
+ \tex_currentgrouplevel:D = 0
+ \newmuskip \locmuskip
+ #1
+}
+\cs_new_protected_nopar:Npn \muskip_set:Nn#1#2{#1\etex_muexpr:D#2\scan_stop:}
+\cs_new_protected_nopar:Npn \muskip_gset:Nn{\pref_global:D\muskip_set:Nn}
+\cs_new_protected_nopar:Npn \muskip_add:Nn#1#2{\tex_advance:D#1\etex_muexpr:D#2\scan_stop:}
+\cs_new_protected_nopar:Npn \muskip_gadd:Nn{\pref_global:D\muskip_add:Nn}
+\cs_new_protected_nopar:Npn \muskip_sub:Nn#1#2{\tex_advance:D#1-\etex_muexpr:D#2\scan_stop:}
+\cs_new_protected_nopar:Npn \muskip_gsub:Nn{\pref_global:D\muskip_sub:Nn}
\cs_new_eq:NN \muskip_use:N \tex_the:D
%%
%%
diff --git a/Master/texmf-dist/tex/latex/expl3/l3tl.sty b/Master/texmf-dist/tex/latex/expl3/l3tl.sty
index 7ca05792d8e..00dcc85798c 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3tl.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3tl.sty
@@ -15,7 +15,7 @@
%% Do not distribute a modified version of this file.
%%
%%
-%% File: l3tl.dtx Copyright (C) 1990-2009 LaTeX3 project
+%% File: l3tl.dtx Copyright (C) 1990-2010 LaTeX3 project
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -48,22 +48,26 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3tl.dtx 1621 2009-10-25 06:36:19Z will $
+\GetIdInfo$Id: l3tl.dtx 1873 2010-03-24 08:32:54Z joseph $
{L3 Experimental Token Lists}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
\package_check_loaded_expl:
-\cs_new:Npn \tl_new:Nn #1#2{
+\cs_new_protected:Npn \tl_new:Nn #1#2{
\chk_if_free_cs:N #1
\cs_gset_nopar:Npn #1{#2}
}
\cs_generate_variant:Nn \tl_new:Nn {cn}
-\cs_new:Npn \tl_new:Nx #1#2{
+\cs_new_protected:Npn \tl_new:Nx #1#2{
\chk_if_free_cs:N #1
\cs_gset_nopar:Npx #1{#2}
}
-\cs_new_nopar:Npn \tl_new:N #1{\tl_new:Nn #1{}}
-\cs_new_nopar:Npn \tl_new:c #1{\tl_new:cn {#1}{}}
+\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}{}}
+\cs_new_protected:Npn \tl_const:Nn #1#2 {
+ \tl_new:N #1
+ \tl_gset:Nn #1 {#2}
+}
\cs_new_nopar:Npn \tl_use:N #1 {
\if_meaning:w #1 \tex_relax:D
\msg_kernel_bug:x {Token~list~variable~ `\token_to_str:N #1'~
@@ -76,100 +80,141 @@
\cs_new_nopar:Npn \tl_show:N #1 { \cs_show:N #1 }
\cs_generate_variant:Nn \tl_show:N {c}
\cs_set_eq:NN \tl_show:n \etex_showtokens:D
-\cs_new:Npn\tl_set:Nn#1#2{\cs_set_nopar:Npn#1{#2}}
-\cs_new:Npn\tl_set:Nx#1#2{\cs_set_nopar:Npx#1{#2}}
-\cs_new:Npn\tl_gset:Nn#1#2{\cs_gset_nopar:Npn#1{#2}}
-\cs_new:Npn\tl_gset:Nx#1#2{\cs_gset_nopar:Npx#1{#2}}
-\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}
+\cs_new_protected:Npn \tl_set:Nn #1#2 {
+ \cs_set_nopar:Npx #1 { \exp_not:n {#2} }
+}
+\cs_new_protected:Npn \tl_set:Nx #1#2 {
+ \cs_set_nopar:Npx #1 {#2}
+}
+\cs_new_protected:Npn \tl_gset:Nn #1#2 {
+ \cs_gset_nopar:Npx #1 { \exp_not:n {#2} }
+}
+\cs_new_protected:Npn \tl_gset:Nx #1#2 {
+ \cs_gset_nopar:Npx #1 {#2}
+}
+\cs_generate_variant:Nn \tl_set:Nn { NV }
+\cs_generate_variant:Nn \tl_set:Nn { Nv }
+\cs_generate_variant:Nn \tl_set:Nn { No }
+\cs_generate_variant:Nn \tl_set:Nn { Nf }
+\cs_generate_variant:Nn \tl_set:Nn { cV }
+\cs_generate_variant:Nn \tl_set:Nn { c }
+\cs_generate_variant:Nn \tl_set:Nn { cv }
+\cs_generate_variant:Nn \tl_set:Nn { co }
+\cs_generate_variant:Nn \tl_set:Nx { c }
+\cs_generate_variant:Nn \tl_gset:Nn { NV }
+\cs_generate_variant:Nn \tl_gset:Nn { Nv }
+\cs_generate_variant:Nn \tl_gset:Nn { No }
+\cs_generate_variant:Nn \tl_gset:Nn { Nf }
+\cs_generate_variant:Nn \tl_gset:Nn { c }
+\cs_generate_variant:Nn \tl_gset:Nn { cV }
+\cs_generate_variant:Nn \tl_gset:Nn { cv }
+\cs_generate_variant:Nn \tl_gset:Nx { c }
+
\cs_new_eq:NN \tl_set_eq:NN \cs_set_eq:NN
\cs_new_eq:NN \tl_gset_eq:NN \cs_gset_eq:NN
\cs_generate_variant:Nn \tl_set_eq:NN {Nc,c,cc}
\cs_generate_variant:Nn \tl_gset_eq:NN {Nc,c,cc}
-\cs_new_nopar:Npn \tl_clear:N #1{\tl_set_eq:NN #1\c_empty_tl}
+\cs_new_protected_nopar:Npn \tl_clear:N #1{\tl_set_eq:NN #1\c_empty_tl}
\cs_generate_variant:Nn \tl_clear:N {c}
-\cs_new_nopar:Npn \tl_gclear:N #1{\tl_gset_eq:NN #1\c_empty_tl}
+\cs_new_protected_nopar:Npn \tl_gclear:N #1{\tl_gset_eq:NN #1\c_empty_tl}
\cs_generate_variant:Nn \tl_gclear:N {c}
\cs_new_eq:NN \tl_clear_new:N \tl_clear:N
\cs_generate_variant:Nn \tl_clear_new:N {c}
\cs_new_eq:NN \tl_gclear_new:N \tl_gclear:N
\cs_generate_variant:Nn \tl_gclear_new:N {c}
-\cs_new:Npn \tl_put_left:Nn #1#2 {
- \tl_set:Nn \l_exp_tl {#2}
- \tl_set:Nx #1 { \exp_not:V \l_exp_tl \exp_not:V #1 }
+\cs_new_protected:Npn \tl_put_right:Nn #1#2 {
+ \cs_set_nopar:Npx #1 { \exp_not:V #1 \exp_not:n {#2} }
+}
+\cs_new_protected:Npn \tl_put_right:NV #1#2 {
+ \cs_set_nopar:Npx #1 { \exp_not:V #1 \exp_not:V #2 }
+}
+\cs_new_protected:Npn \tl_put_right:Nv #1#2 {
+ \cs_set_nopar:Npx #1 { \exp_not:V #1 \exp_not:v {#2} }
}
-\cs_new:Npn \tl_put_left:NV #1#2 {
- \tl_set:Nx #1 { \exp_not:V #2 \exp_not:V #1 }
+\cs_new_protected:Npn \tl_put_right:Nx #1#2 {
+ \cs_set_nopar:Npx #1 { \exp_not:V #1 #2 }
}
-\cs_new:Npn \tl_put_left:No #1#2{
- \tl_set:No \l_exp_tl {#2}
- \tl_set:Nx #1 { \exp_not:V \l_exp_tl \exp_not:V #1 }
+\cs_new_protected:Npn \tl_put_right:No #1#2 {
+ \cs_set_nopar:Npx #1 { \exp_not:V #1 \exp_not:o {#2} }
}
-\cs_new:Npn \tl_put_left:Nx #1#2{
- \tl_set:Nx #1 { #2 \exp_not:V #1 }
+\cs_new_protected:Npn \tl_gput_right:Nn #1#2 {
+ \cs_gset_nopar:Npx #1 { \exp_not:V #1 \exp_not:n {#2} }
}
-\cs_new:Npn \tl_gput_left:Nn #1#2{
- \tl_set:Nn \l_exp_tl{#2}
- \tl_gset:Nx #1 { \exp_not:V \l_exp_tl \exp_not:V #1 }
+\cs_new_protected:Npn \tl_gput_right:NV #1#2 {
+ \cs_gset_nopar:Npx #1 { \exp_not:V #1 \exp_not:V #2 }
}
-\cs_new:Npn \tl_gput_left:NV #1#2 {
- \tl_gset:Nx #1 { \exp_not:V #2 \exp_not:V #1 }
+\cs_new_protected:Npn \tl_gput_right:Nv #1#2 {
+ \cs_gset_nopar:Npx #1 { \exp_not:V #1 \exp_not:v {#2} }
}
-\cs_new:Npn \tl_gput_left:No #1#2{
- \tl_set:No \l_exp_tl {#2}
- \tl_gset:Nx #1 { \exp_not:V \l_exp_tl \exp_not:V #1 }
+\cs_new_protected:Npn \tl_gput_right:No #1#2 {
+ \cs_gset_nopar:Npx #1 { \exp_not:V #1 \exp_not:o {#2} }
}
-\cs_new:Npn \tl_gput_left:Nx #1#2{
- \tl_gset:Nx #1 { #2 \exp_not:V #1 }
+\cs_new_protected:Npn \tl_gput_right:Nx #1#2 {
+ \cs_gset_nopar:Npx #1 { \exp_not:V #1 #2 }
}
-\cs_generate_variant:Nn \tl_put_left:Nn {cn,co,cV}
-\cs_generate_variant:Nn \tl_gput_left:Nn {cn,co}
-\cs_generate_variant:Nn \tl_gput_left:NV {cV}
-\cs_new:Npn \tl_put_right:Nn #1#2 {
- \tl_set:Nn \l_exp_tl {#2}
- \tl_set:Nx #1 { \exp_not:V #1 \exp_not:V \l_exp_tl }
+\cs_generate_variant:Nn \tl_put_right:Nn { c }
+\cs_generate_variant:Nn \tl_put_right:NV { c }
+\cs_generate_variant:Nn \tl_put_right:Nv { c }
+\cs_generate_variant:Nn \tl_put_right:Nx { c }
+\cs_generate_variant:Nn \tl_gput_right:Nn { c }
+\cs_generate_variant:Nn \tl_gput_right:NV { c }
+\cs_generate_variant:Nn \tl_gput_right:Nv { c }
+\cs_generate_variant:Nn \tl_gput_right:No { c }
+\cs_generate_variant:Nn \tl_gput_right:Nx { c }
+\cs_new_protected:Npn \tl_put_left:Nn #1#2 {
+ \cs_set_nopar:Npx #1 { \exp_not:n {#2} \exp_not:V #1 }
}
-\cs_new:Npn \tl_gput_right:Nn #1#2{
- \tl_set:Nn \l_exp_tl {#2}
- \tl_gset:Nx #1 { \exp_not:V #1 \exp_not:V \l_exp_tl }
+\cs_new_protected:Npn \tl_put_left:NV #1#2 {
+ \cs_set_nopar:Npx #1 { \exp_not:V #2 \exp_not:V #1 }
}
-\cs_new:Npn \tl_put_right:NV #1#2 {
- \tl_set:Nx #1 { \exp_not:V #1 \exp_not:V #2 }
+\cs_new_protected:Npn \tl_put_left:Nv #1#2 {
+ \cs_set_nopar:Npx #1 { \exp_not:v {#2} \exp_not:V #1 }
}
-\cs_new:Npn \tl_put_right:No #1#2 {
- \tl_set:No \l_exp_tl {#2}
- \tl_set:Nx #1 { \exp_not:V #1 \exp_not:V \l_exp_tl }
+\cs_new_protected:Npn \tl_put_left:Nx #1#2 {
+ \cs_set_nopar:Npx #1 { #2 \exp_not:V #1 }
}
-\cs_new:Npn \tl_gput_right:NV #1#2 {
- \tl_gset:Nx #1 { \exp_not:V #1 \exp_not:V #2 }
+\cs_new_protected:Npn \tl_put_left:No #1#2 {
+ \cs_set_nopar:Npx #1 { \exp_not:o {#2} \exp_not:V #1 }
}
-\cs_new:Npn \tl_gput_right:No #1#2 {
- \tl_set:No \l_exp_tl {#2}
- \tl_gset:Nx #1 { \exp_not:V #1 \exp_not:V \l_exp_tl }
+\cs_new_protected:Npn \tl_gput_left:Nn #1#2 {
+ \cs_gset_nopar:Npx #1 { \exp_not:n {#2} \exp_not:V #1 }
}
-\cs_set:Npn \tl_put_right:Nx #1#2 {
- \tl_set:Nx #1 { \exp_not:V #1 #2 }
+\cs_new_protected:Npn \tl_gput_left:NV #1#2 {
+ \cs_gset_nopar:Npx #1 { \exp_not:V #2 \exp_not:V #1 }
}
-\cs_set:Npn \tl_gput_right:Nx #1#2 {
- \tl_gset:Nx #1 { \exp_not:V #1 #2 }
+\cs_new_protected:Npn \tl_gput_left:Nv #1#2 {
+ \cs_gset_nopar:Npx #1 { \exp_not:v {#2} \exp_not:V #1 }
}
-\cs_generate_variant:Nn \tl_put_right:Nn {cn,co}
-\cs_generate_variant:Nn \tl_put_right:NV {cV}
-\cs_generate_variant:Nn \tl_gput_right:Nn {cn,co,cV}
-\cs_new_nopar:Npn \tl_gset:Nc {
+\cs_new_protected:Npn \tl_gput_left:No #1#2 {
+ \cs_gset_nopar:Npx #1 { \exp_not:o {#2} \exp_not:V #1 }
+}
+\cs_new_protected:Npn \tl_gput_left:Nx #1#2 {
+ \cs_gset_nopar:Npx #1 { #2 \exp_not:V #1 }
+}
+\cs_generate_variant:Nn \tl_put_left:Nn { c }
+\cs_generate_variant:Nn \tl_put_left:NV { c }
+\cs_generate_variant:Nn \tl_put_left:Nv { c }
+\cs_generate_variant:Nn \tl_put_left:Nx { c }
+\cs_generate_variant:Nn \tl_gput_left:Nn { c }
+\cs_generate_variant:Nn \tl_gput_left:NV { c }
+\cs_generate_variant:Nn \tl_gput_left:Nv { c }
+\cs_generate_variant:Nn \tl_gput_left:Nx { c }
+\cs_new_protected_nopar:Npn \tl_gset:Nc {
\pref_global:D
\tl_set:Nc}
-\cs_new_nopar:Npn \tl_set:Nc #1#2{\tl_set:No #1{\cs:w#2\cs_end:}}
-\tl_new:Nn \c_job_name_tl {\tex_jobname:D}
-\tl_new:Nn \c_empty_tl {}
-\tl_new:Nn \g_tmpa_tl{}
-\tl_new:Nn \g_tmpb_tl{}
-\tl_new:Nn \l_testa_tl {}
-\tl_new:Nn \l_testb_tl {}
-\tl_new:Nn \g_testa_tl {}
-\tl_new:Nn \g_testb_tl {}
-\tl_new:Nn \l_tmpa_tl{}
-\tl_new:Nn \l_tmpb_tl{}
+\cs_new_protected_nopar:Npn \tl_set:Nc #1#2{\tl_set:No #1{\cs:w#2\cs_end:}}
+\tl_new:N \c_job_name_tl
+\tl_set:Nx \c_job_name_tl { \tex_jobname:D }
+\tl_const:Nn \c_empty_tl { }
+\tl_const:Nn \c_space_tl { ~ }
+\tl_new:N \g_tmpa_tl
+\tl_new:N \g_tmpb_tl
+\tl_new:N \l_kernel_testa_tl
+\tl_new:N \l_kernel_testb_tl
+\tl_new:N \l_tmpa_tl
+\tl_new:N \l_tmpb_tl
+\tl_new:N \l_kernel_tmpa_tl
+\tl_new:N \l_kernel_tmpb_tl
\prg_set_conditional:Npnn \tl_if_empty:N #1 {p,TF,T,F} {
\if_meaning:w #1 \c_empty_tl
\prg_return_true: \else: \prg_return_false: \fi:
@@ -211,6 +256,31 @@
\cs_generate_variant:Nn \tl_if_blank:nTF {o}
\cs_generate_variant:Nn \tl_if_blank:nT {o}
\cs_generate_variant:Nn \tl_if_blank:nF {o}
+\prg_new_conditional:Nnn \tl_if_single:n {p,TF,T,F} {
+ \tl_if_empty:nTF {#1}
+ {\prg_return_false:}
+ {
+ \tl_if_blank:nTF {#1}
+ {\prg_return_true:}
+ {
+ \_tl_if_single_aux:w #1 \q_nil
+ }
+ }
+}
+\prg_new_conditional:Nnn \tl_if_single:N {p,TF,T,F} {
+ \tl_if_empty:NTF #1
+ {\prg_return_false:}
+ {
+ \exp_after:wN \tl_if_blank:nTF #1
+ {\prg_return_true:}
+ {
+ \exp_after:wN \_tl_if_single_aux:w #1 \q_nil
+ }
+ }
+}
+\cs_new:Npn \_tl_if_single_aux:w #1#2 \q_nil {
+ \tl_if_empty:nTF {#2} \prg_return_true: \prg_return_false:
+}
\cs_new_eq:NN \tl_compare:xx \pdf_strcmp:D
\cs_new:Npn \tl_compare:nn #1#2{
\tl_compare:xx{\exp_not:n{#1}}{\exp_not:n{#2}}
@@ -252,7 +322,7 @@
\tl_compare:xx{\exp_not:n\exp_after:wN{#1}}{#2}
}
\cs_set_nopar:Npn \tl_tmp:w #1 {
- \tl_set:Nx \l_tmpa_tl {
+ \tl_set:Nx \l_kernel_tmpa_tl {
\exp_not:N \prg_new_conditional:Npnn \exp_not:c {tl_if_eq:#1}
####1 ####2 {p,TF,T,F} {
\exp_not:N \tex_ifnum:D
@@ -260,7 +330,7 @@
\exp_not:n{ =\c_zero \prg_return_true: \else: \prg_return_false: \fi: }
}
}
- \l_tmpa_tl
+ \l_kernel_tmpa_tl
}
\tl_tmp:w{xx} \tl_tmp:w{nx} \tl_tmp:w{ox} \tl_tmp:w{Vx}
\tl_tmp:w{xn} \tl_tmp:w{nn} \tl_tmp:w{on} \tl_tmp:w{Vn}
@@ -268,100 +338,100 @@
\tl_tmp:w{xV} \tl_tmp:w{nV} \tl_tmp:w{VV}
\cs_if_exist:cF{pdf_strcmp:D}{
\prg_set_protected_conditional:Npnn \tl_if_eq:nn #1#2 {TF,T,F} {
- \tl_set:Nx \l_testa_tl {\exp_not:n{#1}}
- \tl_set:Nx \l_testb_tl {\exp_not:n{#2}}
- \if_meaning:w\l_testa_tl \l_testb_tl
+ \tl_set:Nx \l_kernel_testa_tl {\exp_not:n{#1}}
+ \tl_set:Nx \l_kernel_testb_tl {\exp_not:n{#2}}
+ \if_meaning:w\l_kernel_testa_tl \l_kernel_testb_tl
\prg_return_true: \else: \prg_return_false:
\fi:
}
\prg_set_protected_conditional:Npnn \tl_if_eq:nV #1#2 {TF,T,F} {
- \tl_set:Nx \l_testa_tl { \exp_not:n {#1} }
- \tl_set:Nx \l_testb_tl { \exp_not:V #2 }
- \if_meaning:w \l_testa_tl \l_testb_tl
+ \tl_set:Nx \l_kernel_testa_tl { \exp_not:n {#1} }
+ \tl_set:Nx \l_kernel_testb_tl { \exp_not:V #2 }
+ \if_meaning:w \l_kernel_testa_tl \l_kernel_testb_tl
\prg_return_true: \else: \prg_return_false:
\fi:
}
\prg_set_protected_conditional:Npnn \tl_if_eq:no #1#2 {TF,T,F} {
- \tl_set:Nx \l_testa_tl {\exp_not:n{#1}}
- \tl_set:Nx \l_testb_tl {\exp_not:o{#2}}
- \if_meaning:w\l_testa_tl \l_testb_tl
+ \tl_set:Nx \l_kernel_testa_tl {\exp_not:n{#1}}
+ \tl_set:Nx \l_kernel_testb_tl {\exp_not:o{#2}}
+ \if_meaning:w\l_kernel_testa_tl \l_kernel_testb_tl
\prg_return_true: \else: \prg_return_false:
\fi:
}
\prg_set_protected_conditional:Npnn \tl_if_eq:nx #1#2 {TF,T,F} {
- \tl_set:Nx \l_testa_tl {\exp_not:n{#1}}
- \tl_set:Nx \l_testb_tl {#2}
- \if_meaning:w\l_testa_tl \l_testb_tl
+ \tl_set:Nx \l_kernel_testa_tl {\exp_not:n{#1}}
+ \tl_set:Nx \l_kernel_testb_tl {#2}
+ \if_meaning:w\l_kernel_testa_tl \l_kernel_testb_tl
\prg_return_true: \else: \prg_return_false:
\fi:
}
\prg_set_protected_conditional:Npnn \tl_if_eq:Vn #1#2 {TF,T,F} {
- \tl_set:Nx \l_testa_tl { \exp_not:V #1 }
- \tl_set:Nx \l_testb_tl { \exp_not:n{#2} }
- \if_meaning:w \l_testa_tl \l_testb_tl
+ \tl_set:Nx \l_kernel_testa_tl { \exp_not:V #1 }
+ \tl_set:Nx \l_kernel_testb_tl { \exp_not:n{#2} }
+ \if_meaning:w \l_kernel_testa_tl \l_kernel_testb_tl
\prg_return_true: \else: \prg_return_false:
\fi:
}
\prg_set_protected_conditional:Npnn \tl_if_eq:on #1#2 {TF,T,F} {
- \tl_set:Nx \l_testa_tl {\exp_not:o{#1}}
- \tl_set:Nx \l_testb_tl {\exp_not:n{#2}}
- \if_meaning:w\l_testa_tl \l_testb_tl
+ \tl_set:Nx \l_kernel_testa_tl {\exp_not:o{#1}}
+ \tl_set:Nx \l_kernel_testb_tl {\exp_not:n{#2}}
+ \if_meaning:w\l_kernel_testa_tl \l_kernel_testb_tl
\prg_return_true: \else: \prg_return_false:
\fi:
}
\prg_set_protected_conditional:Npnn \tl_if_eq:VV #1#2 {TF,T,F} {
- \tl_set:Nx \l_testa_tl { \exp_not:V #1 }
- \tl_set:Nx \l_testb_tl { \exp_not:V #2 }
- \if_meaning:w \l_testa_tl \l_testb_tl
+ \tl_set:Nx \l_kernel_testa_tl { \exp_not:V #1 }
+ \tl_set:Nx \l_kernel_testb_tl { \exp_not:V #2 }
+ \if_meaning:w \l_kernel_testa_tl \l_kernel_testb_tl
\prg_return_true: \else: \prg_return_false:
\fi:
}
\prg_set_protected_conditional:Npnn \tl_if_eq:oo #1#2 {TF,T,F} {
- \tl_set:Nx \l_testa_tl {\exp_not:o{#1}}
- \tl_set:Nx \l_testb_tl {\exp_not:o{#2}}
- \if_meaning:w\l_testa_tl \l_testb_tl
+ \tl_set:Nx \l_kernel_testa_tl {\exp_not:o{#1}}
+ \tl_set:Nx \l_kernel_testb_tl {\exp_not:o{#2}}
+ \if_meaning:w\l_kernel_testa_tl \l_kernel_testb_tl
\prg_return_true: \else: \prg_return_false:
\fi:
}
\prg_set_protected_conditional:Npnn \tl_if_eq:Vx #1#2 {TF,T,F} {
- \tl_set:Nx \l_testa_tl { \exp_not:V #1 }
- \tl_set:Nx \l_testb_tl {#2}
- \if_meaning:w \l_testa_tl \l_testb_tl
+ \tl_set:Nx \l_kernel_testa_tl { \exp_not:V #1 }
+ \tl_set:Nx \l_kernel_testb_tl {#2}
+ \if_meaning:w \l_kernel_testa_tl \l_kernel_testb_tl
\prg_return_true: \else: \prg_return_false:
\fi:
}
\prg_set_protected_conditional:Npnn \tl_if_eq:ox #1#2 {TF,T,F} {
- \tl_set:Nx \l_testa_tl {\exp_not:o{#1}}
- \tl_set:Nx \l_testb_tl {#2}
- \if_meaning:w\l_testa_tl \l_testb_tl
+ \tl_set:Nx \l_kernel_testa_tl {\exp_not:o{#1}}
+ \tl_set:Nx \l_kernel_testb_tl {#2}
+ \if_meaning:w\l_kernel_testa_tl \l_kernel_testb_tl
\prg_return_true: \else: \prg_return_false:
\fi:
}
\prg_set_protected_conditional:Npnn \tl_if_eq:xn #1#2 {TF,T,F} {
- \tl_set:Nx \l_testa_tl {#1}
- \tl_set:Nx \l_testb_tl {\exp_not:n{#2}}
- \if_meaning:w\l_testa_tl \l_testb_tl
+ \tl_set:Nx \l_kernel_testa_tl {#1}
+ \tl_set:Nx \l_kernel_testb_tl {\exp_not:n{#2}}
+ \if_meaning:w\l_kernel_testa_tl \l_kernel_testb_tl
\prg_return_true: \else: \prg_return_false:
\fi:
}
\prg_set_protected_conditional:Npnn \tl_if_eq:xV #1#2 {TF,T,F} {
- \tl_set:Nx \l_testa_tl {#1}
- \tl_set:Nx \l_testb_tl { \exp_not:V #2 }
- \if_meaning:w \l_testa_tl \l_testb_tl
+ \tl_set:Nx \l_kernel_testa_tl {#1}
+ \tl_set:Nx \l_kernel_testb_tl { \exp_not:V #2 }
+ \if_meaning:w \l_kernel_testa_tl \l_kernel_testb_tl
\prg_return_true: \else: \prg_return_false:
\fi:
}
\prg_set_protected_conditional:Npnn \tl_if_eq:xo #1#2 {TF,T,F} {
- \tl_set:Nx \l_testa_tl {#1}
- \tl_set:Nx \l_testb_tl {\exp_not:o{#2}}
- \if_meaning:w\l_testa_tl \l_testb_tl
+ \tl_set:Nx \l_kernel_testa_tl {#1}
+ \tl_set:Nx \l_kernel_testb_tl {\exp_not:o{#2}}
+ \if_meaning:w\l_kernel_testa_tl \l_kernel_testb_tl
\prg_return_true: \else: \prg_return_false:
\fi:
}
\prg_set_protected_conditional:Npnn \tl_if_eq:xx #1#2 {TF,T,F} {
- \tl_set:Nx \l_testa_tl {#1}
- \tl_set:Nx \l_testb_tl {#2}
- \if_meaning:w\l_testa_tl \l_testb_tl
+ \tl_set:Nx \l_kernel_testa_tl {#1}
+ \tl_set:Nx \l_kernel_testb_tl {#2}
+ \if_meaning:w\l_kernel_testa_tl \l_kernel_testb_tl
\prg_return_true: \else: \prg_return_false:
\fi:
}
@@ -385,7 +455,7 @@
#1{#2} \tl_map_function_aux:Nn #1
}
\cs_generate_variant:Nn \tl_map_function:NN {cN}
-\cs_new:Npn \tl_map_inline:nn #1#2{
+\cs_new_protected:Npn \tl_map_inline:nn #1#2{
\int_gincr:N \g_tl_inline_level_int
\cs_gset:cpn {tl_map_inline_ \int_use:N \g_tl_inline_level_int :n}
##1{#2}
@@ -394,7 +464,7 @@
#1 \q_recursion_tail\q_recursion_stop
\int_gdecr:N \g_tl_inline_level_int
}
-\cs_new:Npn \tl_map_inline:Nn #1#2{
+\cs_new_protected:Npn \tl_map_inline:Nn #1#2{
\int_gincr:N \g_tl_inline_level_int
\cs_gset:cpn {tl_map_inline_ \int_use:N \g_tl_inline_level_int :n}
##1{#2}
@@ -404,12 +474,12 @@
\int_gdecr:N \g_tl_inline_level_int
}
\cs_generate_variant:Nn \tl_map_inline:Nn {c}
-\cs_new:Npn \tl_map_variable:nNn #1#2#3{
+\cs_new_protected:Npn \tl_map_variable:nNn #1#2#3{
\tl_map_variable_aux:Nnn #2 {#3} #1 \q_recursion_tail \q_recursion_stop
}
-\cs_new_nopar:Npn \tl_map_variable:NNn {\exp_args:No \tl_map_variable:nNn}
+\cs_new_protected_nopar:Npn \tl_map_variable:NNn {\exp_args:No \tl_map_variable:nNn}
\cs_generate_variant:Nn \tl_map_variable:NNn {c}
-\cs_new:Npn \tl_map_variable_aux:Nnn #1#2#3{
+\cs_new_protected:Npn \tl_map_variable_aux:Nnn #1#2#3{
\tl_set:Nn #1{#3}
\quark_if_recursion_tail_stop:N #1
#2 \tl_map_variable_aux:Nnn #1{#2}
@@ -423,22 +493,23 @@
\tl_reverse_aux:nN {#2#1}
}
\cs_generate_variant:Nn \tl_reverse:n {V,o}
-\cs_new_nopar:Npn \tl_reverse:N #1 {
+\cs_new_protected_nopar:Npn \tl_reverse:N #1 {
\tl_set:Nf #1 { \tl_reverse:o { #1 \exp_stop_f: } }
}
\cs_new:Npn \tl_elt_count:n #1{
\intexpr_eval:n {
- \tl_map_function:nN {#1}\num_elt_count:n
+ 0 \tl_map_function:nN {#1} \tl_elt_count_aux:n
}
}
\cs_generate_variant:Nn \tl_elt_count:n {V,o}
\cs_new_nopar:Npn \tl_elt_count:N #1{
\intexpr_eval:n {
- \tl_map_function:NN #1 \num_elt_count:n
+ 0 \tl_map_function:NN #1 \tl_elt_count_aux:n
}
}
-\cs_new:Npn \tl_set_rescan:Nnn { \tl_set_rescan_aux:NNnn \tl_set:Nn }
-\cs_new:Npn \tl_gset_rescan:Nnn { \tl_set_rescan_aux:NNnn \tl_gset:Nn }
+\cs_new:Npn \tl_elt_count_aux:n #1 { + 1 }
+\cs_new_protected:Npn \tl_set_rescan:Nnn { \tl_set_rescan_aux:NNnn \tl_set:Nn }
+\cs_new_protected:Npn \tl_gset_rescan:Nnn { \tl_set_rescan_aux:NNnn \tl_gset:Nn }
\group_begin:
\tex_lccode:D `\A = `\@ \scan_stop:
\tex_lccode:D `\B = `\@ \scan_stop:
@@ -446,9 +517,9 @@
\tex_catcode:D `\B = 3 \scan_stop:
\tl_to_lowercase:n {
\group_end:
- \tl_new:Nn \c_two_ats_with_two_catcodes_tl {AB}
+ \tl_const:Nn \c_two_ats_with_two_catcodes_tl { A B }
}
-\cs_new:Npn \tl_set_rescan_aux:NNnn #1#2#3#4 {
+\cs_new_protected:Npn \tl_set_rescan_aux:NNnn #1#2#3#4 {
\group_begin:
\toks_set:NV \etex_everyeof:D \c_two_ats_with_two_catcodes_tl
\tex_endlinechar:D = \c_minus_one
@@ -456,25 +527,25 @@
\exp_after:wN \tl_rescan_aux:w \etex_scantokens:D {#4}
\exp_args:NNNV
\group_end:
- #1 #2 \l_tmpa_toks
+ #1 #2 \l_tmpa_tl
}
\exp_after:wN \cs_set:Npn
\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_toks {#1}
+ \tl_set:Nn \l_tmpa_tl {#1}
}
-\cs_new:Npn \tl_set_rescan:Nnx #1#2#3 {
+\cs_new_protected:Npn \tl_set_rescan:Nnx #1#2#3 {
\group_begin:
\etex_everyeof:D { \exp_not:N }
\tex_endlinechar:D = \c_minus_one
#2
- \tl_set:Nx \l_tmpa_tl { \etex_scantokens:D {#3} }
+ \tl_set:Nx \l_kernel_tmpa_tl { \etex_scantokens:D {#3} }
\exp_args:NNNV
\group_end:
- \tl_set:Nn #1 \l_tmpa_tl
+ \tl_set:Nn #1 \l_kernel_tmpa_tl
}
-\cs_new:Npn \tl_gset_rescan:Nnx #1#2#3 {
+\cs_new_protected:Npn \tl_gset_rescan:Nnx #1#2#3 {
\group_begin:
\etex_everyeof:D { \exp_not:N }
\tex_endlinechar:D = \c_minus_one
@@ -482,14 +553,14 @@
\tl_gset:Nx #1 { \etex_scantokens:D {#3} }
\group_end:
}
-\cs_new:Npn \tl_rescan:nn #1#2 {
+\cs_new_protected:Npn \tl_rescan:nn #1#2 {
\group_begin:
\toks_set:NV \etex_everyeof:D \c_two_ats_with_two_catcodes_tl
\tex_endlinechar:D = \c_minus_one
#1
\exp_after:wN \tl_rescan_aux:w \etex_scantokens:D {#2}
\exp_args:NV \group_end:
- \l_tmpa_toks
+ \l_tmpa_tl
}
\prg_new_protected_conditional:Npnn \tl_if_in:Nn #1#2 {TF,T,F} {
\cs_set:Npn \tl_tmp:w ##1 #2 ##2 \q_stop {
@@ -512,56 +583,70 @@
\cs_generate_variant:Nn \tl_if_in:nnTF {o}
\cs_generate_variant:Nn \tl_if_in:nnT {o}
\cs_generate_variant:Nn \tl_if_in:nnF {o}
-%%\l_tl_replace_toks % moved to l3token as alloc not set up yet.
-\cs_new:Npn \tl_replace_in_aux:NNnn #1#2#3#4{
- \cs_set:Npn \tl_tmp:w ##1#3##2\q_stop{
- \quark_if_no_value:nF{##2}
+\tl_new:N \_l_tl_replace_tl
+\cs_new_protected_nopar:Npn \tl_replace_in:Nnn {
+ \_tl_replace_in_aux:NNnn \tl_set_eq:NN
+}
+\cs_new_protected:Npn \_tl_replace_in_aux:NNnn #1#2#3#4 {
+ \cs_set:Npn \_tl_tmp:w ##1 #3 ##2 \q_stop
{
- \toks_set:No\l_tl_replace_toks{##1#4}
- \cs_set:Npn \tl_tmp:w ####1#3\q_no_value{
- \toks_put_right:No \l_tl_replace_toks { ####1 }
- }
- \tl_tmp:w \prg_do_nothing: ##2
- #1#2{\toks_use:N\l_tl_replace_toks}
+ \quark_if_no_value:nF {##2}
+ {
+ \tl_set:No \_l_tl_replace_tl { ##1 #4 }
+ \cs_set:Npn \_tl_tmp:w ####1 #3 \q_no_value {
+ \tl_put_right:No \_l_tl_replace_tl {####1}
+ }
+ \_tl_tmp:w \prg_do_nothing: ##2
+ #1 #2 \_l_tl_replace_tl
+ }
}
- }
- \use:n{\exp_after:wN \tl_tmp:w\exp_after:wN\prg_do_nothing:}
- #2#3 \q_no_value\q_stop
-}
-\cs_new_nopar:Npn \tl_replace_in:Nnn {\tl_replace_in_aux:NNnn \tl_set:Nx}
-\cs_generate_variant:Nn\tl_replace_in:Nnn {cnn}
-\cs_new_nopar:Npn \tl_greplace_in:Nnn {\tl_replace_in_aux:NNnn \tl_gset:Nx}
-\cs_generate_variant:Nn\tl_greplace_in:Nnn {cnn}
-\cs_set:Npn \tl_replace_all_in_aux:NNnn #1#2#3#4{
- \toks_clear:N \l_tl_replace_toks
- \cs_set:Npn \tl_tmp:w ##1#3##2\q_stop{
- \quark_if_no_value:nTF{##2}
+ \use:n
+ {
+ \exp_after:wN \_tl_tmp:w \exp_after:wN
+ \prg_do_nothing:
+ }
+ #2 #3 \q_no_value \q_stop
+}
+\cs_new_protected_nopar:Npn \tl_greplace_in:Nnn {
+ \_tl_replace_in_aux:NNnn \tl_gset_eq:NN
+}
+\cs_generate_variant:Nn \tl_replace_in:Nnn { c }
+\cs_generate_variant:Nn \tl_greplace_in:Nnn { c }
+\cs_new_protected_nopar:Npn \tl_replace_all_in:Nnn {
+ \_tl_replace_all_in_aux:NNnn \tl_set_eq:NN
+}
+\cs_new_protected_nopar:Npn \tl_greplace_all_in:Nnn {
+ \_tl_replace_all_in_aux:NNnn \tl_gset_eq:NN
+}
+\cs_new_protected:Npn \_tl_replace_all_in_aux:NNnn #1#2#3#4 {
+ \tl_clear:N \_l_tl_replace_tl
+ \cs_set:Npn \_tl_tmp:w ##1 #3 ##2 \q_stop
{
- \toks_put_right:No \l_tl_replace_toks {##1}
+ \quark_if_no_value:nTF {##2}
+ { \tl_put_right:No \_l_tl_replace_tl {##1} }
+ {
+ \tl_put_right:No \_l_tl_replace_tl { ##1 #4 }
+ \_tl_tmp:w \prg_do_nothing: ##2 \q_stop
+ }
}
+ \use:n
{
- \toks_put_right:No \l_tl_replace_toks {##1 #4}
- \tl_tmp:w \prg_do_nothing: ##2 \q_stop
+ \exp_after:wN \_tl_tmp:w \exp_after:wN
+ \prg_do_nothing:
}
- }
- \use:n{\exp_after:wN \tl_tmp:w \exp_after:wN \prg_do_nothing:}
- #2#3 \q_no_value\q_stop
- #1#2{\toks_use:N\l_tl_replace_toks}
-}
-\cs_new_nopar:Npn \tl_replace_all_in:Nnn {
- \tl_replace_all_in_aux:NNnn \tl_set:Nx}
-\cs_generate_variant:Nn \tl_replace_all_in:Nnn {cnn}
-\cs_new_nopar:Npn \tl_greplace_all_in:Nnn {
- \tl_replace_all_in_aux:NNnn \tl_gset:Nx}
-\cs_generate_variant:Nn \tl_greplace_all_in:Nnn {cnn}
-\cs_new:Npn \tl_remove_in:Nn #1#2{\tl_replace_in:Nnn #1{#2}{}}
-\cs_new:Npn \tl_gremove_in:Nn #1#2{\tl_greplace_in:Nnn #1{#2}{}}
+ #2 #3 \q_no_value \q_stop
+ #1 #2 \_l_tl_replace_tl
+}
+\cs_generate_variant:Nn \tl_replace_all_in:Nnn { c }
+\cs_generate_variant:Nn \tl_greplace_all_in:Nnn { c }
+\cs_new_protected:Npn \tl_remove_in:Nn #1#2{\tl_replace_in:Nnn #1{#2}{}}
+\cs_new_protected:Npn \tl_gremove_in:Nn #1#2{\tl_greplace_in:Nnn #1{#2}{}}
\cs_generate_variant:Nn \tl_remove_in:Nn {cn}
\cs_generate_variant:Nn \tl_gremove_in:Nn {cn}
-\cs_new:Npn \tl_remove_all_in:Nn #1#2{
+\cs_new_protected:Npn \tl_remove_all_in:Nn #1#2{
\tl_replace_all_in:Nnn #1{#2}{}
}
-\cs_new:Npn \tl_gremove_all_in:Nn #1#2{
+\cs_new_protected:Npn \tl_gremove_all_in:Nn #1#2{
\tl_greplace_all_in:Nnn #1{#2}{}
}
\cs_generate_variant:Nn \tl_remove_all_in:Nn {cn}
diff --git a/Master/texmf-dist/tex/latex/expl3/l3token.sty b/Master/texmf-dist/tex/latex/expl3/l3token.sty
index e90b3aa472d..46de3e83a57 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3token.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3token.sty
@@ -48,13 +48,13 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3token.dtx 1550 2009-09-22 06:06:25Z joseph $
+\GetIdInfo$Id: l3token.dtx 1857 2010-03-21 21:32:09Z joseph $
{L3 Experimental token investigation and manipulation}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
\package_check_loaded_expl:
\cs_new_eq:NN \char_set_catcode:w \tex_catcode:D
-\cs_new_nopar:Npn \char_set_catcode:nn #1#2 {
+\cs_new_protected_nopar:Npn \char_set_catcode:nn #1#2 {
\char_set_catcode:w #1 = \intexpr_eval:w #2\intexpr_eval_end:
}
\cs_new_nopar:Npn \char_value_catcode:w { \int_use:N \tex_catcode:D }
@@ -67,44 +67,44 @@
\cs_new_nopar:Npn \char_show_value_catcode:n #1 {
\char_show_value_catcode:w \intexpr_eval:w #1\intexpr_eval_end:
}
-\cs_new_nopar:Npn \char_make_escape:N #1 { \char_set_catcode:nn {`#1} {\c_zero} }
-\cs_new_nopar:Npn \char_make_begin_group:N #1 { \char_set_catcode:nn {`#1} {\c_one} }
-\cs_new_nopar:Npn \char_make_end_group:N #1 { \char_set_catcode:nn {`#1} {\c_two} }
-\cs_new_nopar:Npn \char_make_math_shift:N #1 { \char_set_catcode:nn {`#1} {\c_three} }
-\cs_new_nopar:Npn \char_make_alignment:N #1 { \char_set_catcode:nn {`#1} {\c_four} }
-\cs_new_nopar:Npn \char_make_end_line:N #1 { \char_set_catcode:nn {`#1} {\c_five} }
-\cs_new_nopar:Npn \char_make_parameter:N #1 { \char_set_catcode:nn {`#1} {\c_six} }
-\cs_new_nopar:Npn \char_make_math_superscript:N #1 { \char_set_catcode:nn {`#1} {\c_seven} }
-\cs_new_nopar:Npn \char_make_math_subscript:N #1 { \char_set_catcode:nn {`#1} {\c_eight} }
-\cs_new_nopar:Npn \char_make_ignore:N #1 { \char_set_catcode:nn {`#1} {\c_nine} }
-\cs_new_nopar:Npn \char_make_space:N #1 { \char_set_catcode:nn {`#1} {\c_ten} }
-\cs_new_nopar:Npn \char_make_letter:N #1 { \char_set_catcode:nn {`#1} {\c_eleven} }
-\cs_new_nopar:Npn \char_make_other:N #1 { \char_set_catcode:nn {`#1} {\c_twelve} }
-\cs_new_nopar:Npn \char_make_active:N #1 { \char_set_catcode:nn {`#1} {\c_thirteen} }
-\cs_new_nopar:Npn \char_make_comment:N #1 { \char_set_catcode:nn {`#1} {\c_fourteen} }
-\cs_new_nopar:Npn \char_make_invalid:N #1 { \char_set_catcode:nn {`#1} {\c_fifteen} }
-\cs_new_nopar:Npn \char_make_escape:n #1 { \char_set_catcode:nn {#1} {\c_zero} }
-\cs_new_nopar:Npn \char_make_begin_group:n #1 { \char_set_catcode:nn {#1} {\c_one} }
-\cs_new_nopar:Npn \char_make_end_group:n #1 { \char_set_catcode:nn {#1} {\c_two} }
-\cs_new_nopar:Npn \char_make_math_shift:n #1 { \char_set_catcode:nn {#1} {\c_three} }
-\cs_new_nopar:Npn \char_make_alignment:n #1 { \char_set_catcode:nn {#1} {\c_four} }
-\cs_new_nopar:Npn \char_make_end_line:n #1 { \char_set_catcode:nn {#1} {\c_five} }
-\cs_new_nopar:Npn \char_make_parameter:n #1 { \char_set_catcode:nn {#1} {\c_six} }
-\cs_new_nopar:Npn \char_make_math_superscript:n #1 { \char_set_catcode:nn {#1} {\c_seven} }
-\cs_new_nopar:Npn \char_make_math_subscript:n #1 { \char_set_catcode:nn {#1} {\c_eight} }
-\cs_new_nopar:Npn \char_make_ignore:n #1 { \char_set_catcode:nn {#1} {\c_nine} }
-\cs_new_nopar:Npn \char_make_space:n #1 { \char_set_catcode:nn {#1} {\c_ten} }
-\cs_new_nopar:Npn \char_make_letter:n #1 { \char_set_catcode:nn {#1} {\c_eleven} }
-\cs_new_nopar:Npn \char_make_other:n #1 { \char_set_catcode:nn {#1} {\c_twelve} }
-\cs_new_nopar:Npn \char_make_active:n #1 { \char_set_catcode:nn {#1} {\c_thirteen} }
-\cs_new_nopar:Npn \char_make_comment:n #1 { \char_set_catcode:nn {#1} {\c_fourteen} }
-\cs_new_nopar:Npn \char_make_invalid:n #1 { \char_set_catcode:nn {#1} {\c_fifteen} }
+\cs_new_protected_nopar:Npn \char_make_escape:N #1 { \char_set_catcode:nn {`#1} {\c_zero} }
+\cs_new_protected_nopar:Npn \char_make_begin_group:N #1 { \char_set_catcode:nn {`#1} {\c_one} }
+\cs_new_protected_nopar:Npn \char_make_end_group:N #1 { \char_set_catcode:nn {`#1} {\c_two} }
+\cs_new_protected_nopar:Npn \char_make_math_shift:N #1 { \char_set_catcode:nn {`#1} {\c_three} }
+\cs_new_protected_nopar:Npn \char_make_alignment:N #1 { \char_set_catcode:nn {`#1} {\c_four} }
+\cs_new_protected_nopar:Npn \char_make_end_line:N #1 { \char_set_catcode:nn {`#1} {\c_five} }
+\cs_new_protected_nopar:Npn \char_make_parameter:N #1 { \char_set_catcode:nn {`#1} {\c_six} }
+\cs_new_protected_nopar:Npn \char_make_math_superscript:N #1 { \char_set_catcode:nn {`#1} {\c_seven} }
+\cs_new_protected_nopar:Npn \char_make_math_subscript:N #1 { \char_set_catcode:nn {`#1} {\c_eight} }
+\cs_new_protected_nopar:Npn \char_make_ignore:N #1 { \char_set_catcode:nn {`#1} {\c_nine} }
+\cs_new_protected_nopar:Npn \char_make_space:N #1 { \char_set_catcode:nn {`#1} {\c_ten} }
+\cs_new_protected_nopar:Npn \char_make_letter:N #1 { \char_set_catcode:nn {`#1} {\c_eleven} }
+\cs_new_protected_nopar:Npn \char_make_other:N #1 { \char_set_catcode:nn {`#1} {\c_twelve} }
+\cs_new_protected_nopar:Npn \char_make_active:N #1 { \char_set_catcode:nn {`#1} {\c_thirteen} }
+\cs_new_protected_nopar:Npn \char_make_comment:N #1 { \char_set_catcode:nn {`#1} {\c_fourteen} }
+\cs_new_protected_nopar:Npn \char_make_invalid:N #1 { \char_set_catcode:nn {`#1} {\c_fifteen} }
+\cs_new_protected_nopar:Npn \char_make_escape:n #1 { \char_set_catcode:nn {#1} {\c_zero} }
+\cs_new_protected_nopar:Npn \char_make_begin_group:n #1 { \char_set_catcode:nn {#1} {\c_one} }
+\cs_new_protected_nopar:Npn \char_make_end_group:n #1 { \char_set_catcode:nn {#1} {\c_two} }
+\cs_new_protected_nopar:Npn \char_make_math_shift:n #1 { \char_set_catcode:nn {#1} {\c_three} }
+\cs_new_protected_nopar:Npn \char_make_alignment:n #1 { \char_set_catcode:nn {#1} {\c_four} }
+\cs_new_protected_nopar:Npn \char_make_end_line:n #1 { \char_set_catcode:nn {#1} {\c_five} }
+\cs_new_protected_nopar:Npn \char_make_parameter:n #1 { \char_set_catcode:nn {#1} {\c_six} }
+\cs_new_protected_nopar:Npn \char_make_math_superscript:n #1 { \char_set_catcode:nn {#1} {\c_seven} }
+\cs_new_protected_nopar:Npn \char_make_math_subscript:n #1 { \char_set_catcode:nn {#1} {\c_eight} }
+\cs_new_protected_nopar:Npn \char_make_ignore:n #1 { \char_set_catcode:nn {#1} {\c_nine} }
+\cs_new_protected_nopar:Npn \char_make_space:n #1 { \char_set_catcode:nn {#1} {\c_ten} }
+\cs_new_protected_nopar:Npn \char_make_letter:n #1 { \char_set_catcode:nn {#1} {\c_eleven} }
+\cs_new_protected_nopar:Npn \char_make_other:n #1 { \char_set_catcode:nn {#1} {\c_twelve} }
+\cs_new_protected_nopar:Npn \char_make_active:n #1 { \char_set_catcode:nn {#1} {\c_thirteen} }
+\cs_new_protected_nopar:Npn \char_make_comment:n #1 { \char_set_catcode:nn {#1} {\c_fourteen} }
+\cs_new_protected_nopar:Npn \char_make_invalid:n #1 { \char_set_catcode:nn {#1} {\c_fifteen} }
\cs_new_eq:NN \char_set_mathcode:w \tex_mathcode:D
-\cs_new_nopar:Npn \char_set_mathcode:nn #1#2 {
+\cs_new_protected_nopar:Npn \char_set_mathcode:nn #1#2 {
\char_set_mathcode:w #1 = \intexpr_eval:w #2\intexpr_eval_end:
}
\cs_new_protected_nopar:Npn \char_gset_mathcode:w { \pref_global:D \tex_mathcode:D }
-\cs_new_nopar:Npn \char_gset_mathcode:nn #1#2 {
+\cs_new_protected_nopar:Npn \char_gset_mathcode:nn #1#2 {
\char_gset_mathcode:w #1 = \intexpr_eval:w #2\intexpr_eval_end:
}
\cs_new_nopar:Npn \char_value_mathcode:w { \int_use:N \tex_mathcode:D }
@@ -116,7 +116,7 @@
\char_show_value_mathcode:w \intexpr_eval:w #1\intexpr_eval_end:
}
\cs_new_eq:NN \char_set_lccode:w \tex_lccode:D
-\cs_new_nopar:Npn \char_set_lccode:nn #1#2{
+\cs_new_protected_nopar:Npn \char_set_lccode:nn #1#2{
\char_set_lccode:w #1 = \intexpr_eval:w #2\intexpr_eval_end:
}
\cs_new_nopar:Npn \char_value_lccode:w {\int_use:N\tex_lccode:D}
@@ -126,7 +126,7 @@
\cs_new_nopar:Npn \char_show_value_lccode:n #1{
\char_show_value_lccode:w \intexpr_eval:w #1\intexpr_eval_end:}
\cs_new_eq:NN \char_set_uccode:w \tex_uccode:D
-\cs_new_nopar:Npn \char_set_uccode:nn #1#2{
+\cs_new_protected_nopar:Npn \char_set_uccode:nn #1#2{
\char_set_uccode:w #1 = \intexpr_eval:w #2\intexpr_eval_end:
}
\cs_new_nopar:Npn \char_value_uccode:w {\int_use:N\tex_uccode:D}
@@ -136,7 +136,7 @@
\cs_new_nopar:Npn \char_show_value_uccode:n #1{
\char_show_value_uccode:w \intexpr_eval:w #1\intexpr_eval_end:}
\cs_new_eq:NN \char_set_sfcode:w \tex_sfcode:D
-\cs_new_nopar:Npn \char_set_sfcode:nn #1#2 {
+\cs_new_protected_nopar:Npn \char_set_sfcode:nn #1#2 {
\char_set_sfcode:w #1 = \intexpr_eval:w #2\intexpr_eval_end:
}
\cs_new_nopar:Npn \char_value_sfcode:w { \int_use:N \tex_sfcode:D }
@@ -147,7 +147,7 @@
\cs_new_nopar:Npn \char_show_value_sfcode:n #1 {
\char_show_value_sfcode:w \intexpr_eval:w #1\intexpr_eval_end:
}
-\cs_new_nopar:Npn \token_new:Nn #1#2 {\cs_gnew_eq:NN #1#2}
+\cs_new_protected_nopar:Npn \token_new:Nn #1#2 {\cs_gnew_eq:NN #1#2}
\cs_new_eq:NN \c_group_begin_token {
\cs_new_eq:NN \c_group_end_token }
\group_begin:
@@ -405,34 +405,34 @@
\token_new:Nn \l_peek_token {?}
\token_new:Nn \g_peek_token {?}
\token_new:Nn \l_peek_search_token {?}
-\cs_new_nopar:Npn \peek_after:NN {\tex_futurelet:D \l_peek_token }
-\cs_new_nopar:Npn \peek_gafter:NN {
+\cs_new_protected_nopar:Npn \peek_after:NN {\tex_futurelet:D \l_peek_token }
+\cs_new_protected_nopar:Npn \peek_gafter:NN {
\pref_global:D \tex_futurelet:D \g_peek_token
}
-\tl_new:Nn \l_peek_true_tl {}
-\tl_new:Nn \l_peek_false_tl {}
+\tl_new:N \l_peek_true_tl
+\tl_new:N \l_peek_false_tl
\cs_new_nopar:Npn \peek_tmp:w {}
-\tl_new:Nn \l_peek_search_tl {}
-\cs_new:Npn \peek_token_generic:NNTF #1#2#3#4 {
+\tl_new:N \l_peek_search_tl
+\cs_new_protected:Npn \peek_token_generic:NNTF #1#2#3#4 {
\cs_set_eq:NN \l_peek_search_token #2
\tl_set:Nn \l_peek_search_tl {#2}
- \tl_set:Nx \l_peek_true_tl {\exp_not:n{\group_align_safe_end: #3}}
- \tl_set:Nx \l_peek_false_tl {\exp_not:n{\group_align_safe_end: #4}}
+ \tl_set:Nn \l_peek_true_tl { \group_align_safe_end: #3 }
+ \tl_set:Nn \l_peek_false_tl { \group_align_safe_end: #4 }
\group_align_safe_begin:
\peek_after:NN #1
}
-\cs_new:Npn \peek_token_generic:NNT #1#2#3 {
+\cs_new_protected:Npn \peek_token_generic:NNT #1#2#3 {
\peek_token_generic:NNTF #1#2 {#3} {}
}
-\cs_new:Npn \peek_token_generic:NNF #1#2#3 {
+\cs_new_protected:Npn \peek_token_generic:NNF #1#2#3 {
\peek_token_generic:NNTF #1#2 {} {#3}
}
-\cs_new:Npn \peek_token_remove_generic:NNTF #1#2#3#4 {
+\cs_new_protected:Npn \peek_token_remove_generic:NNTF #1#2#3#4 {
\cs_set_eq:NN \l_peek_search_token #2
\tl_set:Nn \l_peek_search_tl {#2}
- \tl_set:Nx \l_peek_true_aux_tl { \exp_not:n{ #3 } }
+ \tl_set:Nn \l_peek_true_aux_tl {#3}
\tl_set_eq:NN \l_peek_true_tl \c_peek_true_remove_next_tl
- \tl_set:Nx \l_peek_false_tl {\exp_not:n{\group_align_safe_end: #4}}
+ \tl_set:Nn \l_peek_false_tl {\group_align_safe_end: #4}
\group_align_safe_begin:
\peek_after:NN #1
}
@@ -442,8 +442,8 @@
\cs_new:Npn \peek_token_remove_generic:NNF #1#2#3 {
\peek_token_remove_generic:NNTF #1#2 {} {#3}
}
-\tl_new:Nn \l_peek_true_aux_tl {}
-\tl_new:Nn \c_peek_true_remove_next_tl {\group_align_safe_end:
+\tl_new:N \l_peek_true_aux_tl
+\tl_const:Nn \c_peek_true_remove_next_tl {\group_align_safe_end:
\tex_afterassignment:D \l_peek_true_aux_tl \cs_set_eq:NN \peek_tmp:w
}
\cs_new_nopar:Npn \peek_execute_branches_meaning: {
@@ -482,7 +482,7 @@
\peek_def_aux_ii:nnnnn {#1} {#2} {#3} {#4} { T }
\peek_def_aux_ii:nnnnn {#1} {#2} {#3} {#4} { F }
}
-\cs_new_nopar:Npn \peek_def_aux_ii:nnnnn #1#2#3#4#5 {
+\cs_new_protected_nopar:Npn \peek_def_aux_ii:nnnnn #1#2#3#4#5 {
\cs_new_nopar:cpx { #1 #5 } {
\tl_if_empty:nF {#2} {
\exp_not:n { \cs_set_eq:NN \peek_execute_branches: #2 }
@@ -554,7 +554,7 @@
\cs_new_nopar:Npn \peek_ignore_spaces_aux: {
\peek_after:NN \peek_ignore_spaces_execute_branches:
}
-\cs_new_nopar:Npn \peek_ignore_spaces_execute_branches: {
+\cs_new_protected_nopar:Npn \peek_ignore_spaces_execute_branches: {
\token_if_eq_meaning:NNTF \l_peek_token \c_space_token
{ \tex_afterassignment:D \peek_ignore_spaces_aux:
\cs_set_eq:NN \peek_tmp:w
diff --git a/Master/texmf-dist/tex/latex/expl3/l3toks.sty b/Master/texmf-dist/tex/latex/expl3/l3toks.sty
index 2ed07333187..afe5ff158a9 100644
--- a/Master/texmf-dist/tex/latex/expl3/l3toks.sty
+++ b/Master/texmf-dist/tex/latex/expl3/l3toks.sty
@@ -48,24 +48,35 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3toks.dtx 1412 2009-06-14 17:55:48Z joseph $
+\GetIdInfo$Id: l3toks.dtx 1867 2010-03-23 13:03:12Z will $
{L3 Experimental Token Registers}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
\package_check_loaded_expl:
-\cs_set_eq:NN \toks_new:N \newtoks % nick from LaTeX for the moment
+\cs_new_protected_nopar:Npn \toks_new:N #1 {
+ \chk_if_free_cs:N #1
+ \newtoks #1
+}
+\cs_new_protected_nopar:Npn \toks_new_local:N #1 {
+ \chk_if_free_cs:N #1
+ \int_compare:nNnTF
+ \tex_currentgrouplevel:D = 0
+ \newtoks \loctoks
+ #1
+}
\cs_generate_variant:Nn \toks_new:N {c}
+\cs_generate_variant:Nn \toks_new_local:N {c}
\cs_new_eq:NN \toks_use:N \tex_the:D
\cs_generate_variant:Nn \toks_use:N {c}
\cs_new_eq:NN \toks_set:Nn \prg_do_nothing:
-\cs_new:Npn \toks_set:NV #1#2 {
+\cs_new_protected:Npn \toks_set:NV #1#2 {
#1 \exp_after:wN { \int_to_roman:w -`0 \exp_eval_register:N #2 }
}
-\cs_new:Npn \toks_set:Nv #1#2 {
+\cs_new_protected:Npn \toks_set:Nv #1#2 {
#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:Nf #1#2 {
+\cs_new_protected:Npn \toks_set:No #1#2 { #1 \exp_after:wN {#2} }
+\cs_new_protected:Npn \toks_set:Nf #1#2 {
#1 \exp_after:wN { \int_to_roman:w -`0#2 }
}
\cs_generate_variant:Nn \toks_set:Nn {Nx,cn,cV,cv,co,cx,cf}
@@ -75,19 +86,19 @@
\cs_new_eq:NN \toks_gset_eq:NN \pref_global:D
\cs_generate_variant:Nn \toks_set_eq:NN {Nc,cN,cc}
\cs_generate_variant:Nn \toks_gset_eq:NN {Nc,cN,cc}
-\cs_new_nopar:Npn \toks_clear:N #1 {
+\cs_new_protected_nopar:Npn \toks_clear:N #1 {
#1\c_empty_toks
}
-\cs_new_nopar:Npn \toks_gclear:N {
+\cs_new_protected_nopar:Npn \toks_gclear:N {
\pref_global:D
\toks_clear:N
}
\cs_generate_variant:Nn \toks_clear:N {c}
\cs_generate_variant:Nn \toks_gclear:N {c}
-\cs_new_nopar:Npn \toks_use_clear:N #1 {
+\cs_new_protected_nopar:Npn \toks_use_clear:N #1 {
\exp_last_unbraced:NNV \toks_clear:N #1 #1
}
-\cs_new_nopar:Npn \toks_use_gclear:N {
+\cs_new_protected_nopar:Npn \toks_use_gclear:N {
\pref_global:D
\toks_use_clear:N
}
@@ -95,12 +106,12 @@
\cs_generate_variant:Nn \toks_use_gclear:N {c}
\cs_new_eq:NN \toks_show:N \tex_showthe:D
\cs_generate_variant:Nn \toks_show:N {c}
-\cs_new_nopar:Npn \toks_put_left:Nn #1 {
+\cs_new_protected_nopar:Npn \toks_put_left:Nn #1 {
\exp_after:wN \toks_put_left_aux:w \exp_after:wN \q_mark
\toks_use:N #1 \q_stop #1
}
\cs_generate_variant:Nn \toks_put_left:Nn {NV,No,Nx,cn,co,cV}
-\cs_new_nopar:Npn \toks_gput_left:Nn {
+\cs_new_protected_nopar:Npn \toks_gput_left:Nn {
\pref_global:D
\toks_put_left:Nn
}
@@ -108,27 +119,27 @@
\cs_new:Npn \toks_put_left_aux:w #1\q_stop #2#3 {
#2 \exp_after:wN { \use_i:nn {#3} #1 }
}
-\cs_new:Npn \toks_put_right:Nn #1#2 {
+\cs_new_protected:Npn \toks_put_right:Nn #1#2 {
#1 \exp_after:wN { \toks_use:N #1 #2 }
}
-\cs_new_nopar:Npn \toks_gput_right:Nn {
+\cs_new_protected_nopar:Npn \toks_gput_right:Nn {
\pref_global:D
\toks_put_right:Nn
}
-\cs_new:Npn \toks_put_right:NV #1#2 {
+\cs_new_protected:Npn \toks_put_right:NV #1#2 {
#1 \exp_after:wN \exp_after:wN \exp_after:wN {
\exp_after:wN \toks_use:N \exp_after:wN #1
\int_to_roman:w -`0 \exp_eval_register:N #2
}
}
-\cs_new:Npn \toks_put_right:No #1#2 {
+\cs_new_protected:Npn \toks_put_right:No #1#2 {
#1 \exp_after:wN \exp_after:wN \exp_after:wN {
\exp_after:wN \toks_use:N \exp_after:wN #1 #2
}
}
\cs_generate_variant:Nn \toks_put_right:Nn {Nx,cn,cV,co}
\cs_generate_variant:Nn \toks_gput_right:Nn {NV,No,Nx,cn,cV,co}
-\cs_new:Npn \toks_put_right:Nf #1#2 {
+\cs_new_protected:Npn \toks_put_right:Nf #1#2 {
#1 \exp_after:wN \exp_after:wN \exp_after:wN {
\exp_after:wN \toks_use:N \exp_after:wN #1 \int_to_roman:w -`0#2
}
diff --git a/Master/texmf-dist/tex/latex/expl3/l3xref.sty b/Master/texmf-dist/tex/latex/expl3/l3xref.sty
index 98a3ca09251..43a67abdcda 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 1362 2009-05-28 20:19:21Z joseph $
+\GetIdInfo$Id: l3xref.dtx 1786 2010-02-09 12:52:45Z joseph $
{L3 Experimental cross referencing}
\ProvidesExplPackage
{\filename}{\filedate}{\fileversion}{\filedescription}
@@ -105,7 +105,6 @@
}
}
}
-\iow_new:N \xref_write
%%
%%
%% End of file `l3xref.sty'.