summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-03-12 22:38:22 +0000
committerKarl Berry <karl@freefriends.org>2013-03-12 22:38:22 +0000
commit574c4946ce553944c797750da25ba8844775996f (patch)
tree9ea4729ca09c49a4564d99d9134a5417eb7b2af3 /Master/texmf-dist/tex/latex
parent5c30ca128a813719715e012a0d72c1ccaba2d811 (diff)
latex3 (12mar13)
git-svn-id: svn://tug.org/texlive/trunk@29361 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3dt/l3dt.sty6
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3str/l3flag.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3str/l3regex-trace.sty47
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3str/l3regex.sty47
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty632
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty28
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3str/l3str.sty747
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/l3str/l3tl-analysis.sty6
-rw-r--r--Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3.sty6
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3basics.sty13
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3bootstrap.sty18
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3box.sty12
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3candidates.sty14
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3clist.sty23
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3doc.cls52
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3expan.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3file.sty180
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3fp.sty22
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3int.sty73
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3keys.sty8
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3msg.sty27
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3prg.sty23
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3prop.sty187
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3seq.sty28
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3skip.sty111
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3tl.sty31
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3token.sty12
-rw-r--r--Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty22
-rw-r--r--Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty55
-rw-r--r--Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty8
31 files changed, 1116 insertions, 1328 deletions
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3dt/l3dt.sty b/Master/texmf-dist/tex/latex/l3experimental/l3dt/l3dt.sty
index 4cb2ad8617b..fb5cc34221f 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3dt/l3dt.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3dt/l3dt.sty
@@ -13,7 +13,7 @@
%%
%% Do not distribute a modified version of this file.
%%
-%% File l3dt.dtx Copyright (C) 2011,2012 The LaTeX3 Project
+%% File l3dt.dtx Copyright (C) 2011-2013 The 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
@@ -47,7 +47,7 @@
%% -----------------------------------------------------------------------
%%
\RequirePackage{expl3}
-\GetIdInfo$Id: l3dt.dtx 4190 2012-09-03 00:23:31Z bruno $
+\GetIdInfo$Id: l3dt.dtx 4420 2013-01-08 20:00:04Z joseph $
{L3 Experimental data tables}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -417,7 +417,7 @@
}
\cs_new:Npn \__dt_if_in_row:nwn #1 \q__dt #2 \q__dt #3
{
- \str_if_eq:xxTF {#1} {#2}
+ \str_if_eq_x:nnTF {#1} {#2}
{ \__dt_if_in_row:N }
{ \__dt_if_in_row:nwn {#1} }
}
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3flag.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3flag.sty
index 63970cdd45d..a7249a188cb 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3flag.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3flag.sty
@@ -63,7 +63,7 @@
\else:
\exp_after:wN \use_none_delimit_by_q_stop:w
\fi:
- \cs_set_eq:cN { __flag_#2_#1: } \c_undefined:D
+ \cs_set_eq:cN { __flag_#2_#1: } \tex_undefined:D
\exp_after:wN \__flag_clear:ww
\int_use:N \__int_eval:w \c_one + #1 ;
#2 \q_stop
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3regex-trace.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3regex-trace.sty
index ccb695c0f0e..91a6eab725f 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3regex-trace.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3regex-trace.sty
@@ -13,7 +13,7 @@
%%
%% Do not distribute a modified version of this file.
%%
-%% File: l3regex.dtx Copyright (C) 2011-2012 The LaTeX3 Project
+%% File: l3regex.dtx Copyright (C) 2011-2013 The 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
@@ -46,11 +46,11 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{expl3}
-\GetIdInfo$Id: l3regex.dtx 4341 2012-11-27 08:39:42Z bruno $
+\GetIdInfo$Id: l3regex.dtx 4455 2013-01-22 20:38:19Z bruno $
{L3 Experimental regular expressions}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
-\RequirePackage{l3tl-build, l3tl-analysis, l3flag, l3str}
+\RequirePackage{l3tl-build, l3tl-analysis, l3flag, l3str, l3str-convert}
\cs_generate_variant:Nn \tl_to_str:n { V }
\cs_new:Npn \__regex_tmp:w { }
\tl_new:N \l__regex_internal_a_tl
@@ -345,7 +345,7 @@
{
\__msg_kernel_error:nnx { regex } { x-overflow } {#1}
\tl_set:Nx \l__regex_internal_b_tl
- { \if_false: } \fi: \__regex_escape_loop:N
+ { \if_false: } \fi:
}
{
\char_set_lccode:nn { \c_zero } {#1}
@@ -354,7 +354,6 @@
\tl_set:Nx \l__regex_internal_b_tl
{ \if_false: } \fi:
\__regex_escape_raw:N ^^@
- \__regex_escape_loop:N
}
}
}
@@ -373,7 +372,7 @@
}
\cs_new:Npn \__regex_escape_x_test_two:N #1
{
- \if_charcode:w \c_lbrace_str #1
+ \if_charcode:w \c_left_brace_str #1
\exp_after:wN \__regex_escape_x_loop:N
\else:
\__str_hexadecimal_use:NTF #1
@@ -399,7 +398,7 @@
{ \__regex_escape_x_loop:N }
{
;
- \exp_after:wN \token_if_eq_charcode:NNTF \c_rbrace_str #1
+ \exp_after:wN \token_if_eq_charcode:NNTF \c_right_brace_str #1
{ \__regex_escape_loop:N }
{
\if_false: { \fi: }
@@ -698,17 +697,17 @@
{ \__regex_compile_quantifier_lazyness:nnNN { 0 } { -1 } }
\cs_new_protected_nopar:cpn { __regex_compile_quantifier_+:w }
{ \__regex_compile_quantifier_lazyness:nnNN { 1 } { -1 } }
-\cs_new_protected:cpn { __regex_compile_quantifier_ \c_lbrace_str :w }
+\cs_new_protected:cpn { __regex_compile_quantifier_ \c_left_brace_str :w }
{
\__regex_get_digits:NTFw \l__regex_internal_a_int
{ \__regex_compile_quantifier_braced_auxi:w }
- { \__regex_compile_quantifier_abort:xNN { \c_lbrace_str } }
+ { \__regex_compile_quantifier_abort:xNN { \c_left_brace_str } }
}
\cs_new_protected:Npn \__regex_compile_quantifier_braced_auxi:w #1#2
{
\str_case_x:nnn { #1 #2 }
{
- { \__regex_compile_special:N \c_rbrace_str }
+ { \__regex_compile_special:N \c_right_brace_str }
{
\exp_args:No \__regex_compile_quantifier_lazyness:nnNN
{ \int_use:N \l__regex_internal_a_int } { 0 }
@@ -722,28 +721,28 @@
}
{
\__regex_compile_quantifier_abort:xNN
- { \c_lbrace_str \int_use:N \l__regex_internal_a_int }
+ { \c_left_brace_str \int_use:N \l__regex_internal_a_int }
#1 #2
}
}
\cs_new_protected:Npn \__regex_compile_quantifier_braced_auxii:w #1#2
{
\str_if_eq_x:nnTF
- { #1 #2 } { \__regex_compile_special:N \c_rbrace_str }
+ { #1 #2 } { \__regex_compile_special:N \c_right_brace_str }
{
\exp_args:No \__regex_compile_quantifier_lazyness:nnNN
{ \int_use:N \l__regex_internal_a_int } { -1 }
}
{
\__regex_compile_quantifier_abort:xNN
- { \c_lbrace_str \int_use:N \l__regex_internal_a_int , }
+ { \c_left_brace_str \int_use:N \l__regex_internal_a_int , }
#1 #2
}
}
\cs_new_protected:Npn \__regex_compile_quantifier_braced_auxiii:w #1#2
{
\str_if_eq_x:nnTF
- { #1 #2 } { \__regex_compile_special:N \c_rbrace_str }
+ { #1 #2 } { \__regex_compile_special:N \c_right_brace_str }
{
\if_int_compare:w \l__regex_internal_a_int > \l__regex_internal_b_int
\__msg_kernel_error:nnxx { regex } { backwards-quantifier }
@@ -760,7 +759,7 @@
{
\__regex_compile_quantifier_abort:xNN
{
- \c_lbrace_str
+ \c_left_brace_str
\int_use:N \l__regex_internal_a_int ,
\int_use:N \l__regex_internal_b_int
}
@@ -1197,14 +1196,14 @@
{ \c__regex_all_catcodes_int - \l__regex_catcodes_int }
\fi:
}
-\cs_new_protected_nopar:cpn { __regex_compile_c_ \c_lbrace_str :w }
+\cs_new_protected_nopar:cpn { __regex_compile_c_ \c_left_brace_str :w }
{
\__regex_compile:w
\__regex_disable_submatches:
\l__regex_mode_int
= - \if_case:w \l__regex_mode_int \c_two \else: \c_six \fi:
}
-\cs_new_protected:cpn { __regex_compile_ \c_rbrace_str : }
+\cs_new_protected:cpn { __regex_compile_ \c_right_brace_str : }
{
\__regex_if_in_cs:TF
{
@@ -1212,14 +1211,14 @@
\__regex_compile_one:x
{ \__regex_item_cs:n { \exp_not:o \l__regex_internal_regex } }
}
- { \exp_after:wN \__regex_compile_raw:N \c_rbrace_str }
+ { \exp_after:wN \__regex_compile_raw:N \c_right_brace_str }
}
\cs_new_protected:cpn { __regex_compile_/u: } #1#2
{
\__regex_if_in_class_or_catcode:TF
{ \__regex_compile_raw_error:N u #1 #2 }
{
- \str_if_eq_x:nnTF {#1#2} { \__regex_compile_special:N \c_lbrace_str }
+ \str_if_eq_x:nnTF {#1#2} { \__regex_compile_special:N \c_left_brace_str }
{
\tl_set:Nx \l__regex_internal_a_tl { \if_false: } \fi:
\__regex_compile_u_loop:NN
@@ -1237,7 +1236,7 @@
{
\token_if_eq_meaning:NNTF #1 \__regex_compile_special:N
{
- \exp_after:wN \token_if_eq_charcode:NNTF \c_rbrace_str #2
+ \exp_after:wN \token_if_eq_charcode:NNTF \c_right_brace_str #2
{ \if_false: { \fi: } \__regex_compile_u_end: }
{ #2 \__regex_compile_u_loop:NN }
}
@@ -2091,7 +2090,7 @@
\tl_clear:N \l__regex_balance_tl
\__regex_escape_use:nnnn
{
- \if_charcode:w \c_rbrace_str ##1
+ \if_charcode:w \c_right_brace_str ##1
\__regex_replacement_rbrace:N \else: \__tl_build_one:n \fi: ##1
}
{ \__regex_replacement_escaped:N ##1 }
@@ -2147,7 +2146,7 @@
}
\cs_new_protected:Npn \__regex_replacement_g:w #1#2
{
- \str_if_eq_x:nnTF { #1#2 } { \__tl_build_one:n \c_lbrace_str }
+ \str_if_eq_x:nnTF { #1#2 } { \__tl_build_one:n \c_left_brace_str }
{
\int_zero:N \l__regex_internal_a_int
\__regex_replacement_g_digits:NN
@@ -2189,7 +2188,7 @@
}
{ \__regex_replacement_error:NNN c #1#2 }
}
-\cs_new_protected_nopar:cpn { __regex_replacement_c_ \c_lbrace_str :w }
+\cs_new_protected_nopar:cpn { __regex_replacement_c_ \c_left_brace_str :w }
{
\if_case:w \l__regex_replacement_csnames_int
\__tl_build_one:n
@@ -2201,7 +2200,7 @@
}
\cs_new_protected:Npn \__regex_replacement_u:w #1#2
{
- \str_if_eq_x:nnTF { #1#2 } { \__tl_build_one:n \c_lbrace_str }
+ \str_if_eq_x:nnTF { #1#2 } { \__tl_build_one:n \c_left_brace_str }
{
\if_case:w \l__regex_replacement_csnames_int
\__tl_build_one:n { \exp_not:n { \exp_after:wN \exp_not:V \cs:w } }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3regex.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3regex.sty
index 5273399d7be..89f631f7e0b 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3regex.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3regex.sty
@@ -13,7 +13,7 @@
%%
%% Do not distribute a modified version of this file.
%%
-%% File: l3regex.dtx Copyright (C) 2011-2012 The LaTeX3 Project
+%% File: l3regex.dtx Copyright (C) 2011-2013 The 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
@@ -46,11 +46,11 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{expl3}
-\GetIdInfo$Id: l3regex.dtx 4341 2012-11-27 08:39:42Z bruno $
+\GetIdInfo$Id: l3regex.dtx 4455 2013-01-22 20:38:19Z bruno $
{L3 Experimental regular expressions}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
-\RequirePackage{l3tl-build, l3tl-analysis, l3flag, l3str}
+\RequirePackage{l3tl-build, l3tl-analysis, l3flag, l3str, l3str-convert}
\cs_generate_variant:Nn \tl_to_str:n { V }
\cs_new:Npn \__regex_tmp:w { }
\tl_new:N \l__regex_internal_a_tl
@@ -343,7 +343,7 @@
{
\__msg_kernel_error:nnx { regex } { x-overflow } {#1}
\tl_set:Nx \l__regex_internal_b_tl
- { \if_false: } \fi: \__regex_escape_loop:N
+ { \if_false: } \fi:
}
{
\char_set_lccode:nn { \c_zero } {#1}
@@ -352,7 +352,6 @@
\tl_set:Nx \l__regex_internal_b_tl
{ \if_false: } \fi:
\__regex_escape_raw:N ^^@
- \__regex_escape_loop:N
}
}
}
@@ -371,7 +370,7 @@
}
\cs_new:Npn \__regex_escape_x_test_two:N #1
{
- \if_charcode:w \c_lbrace_str #1
+ \if_charcode:w \c_left_brace_str #1
\exp_after:wN \__regex_escape_x_loop:N
\else:
\__str_hexadecimal_use:NTF #1
@@ -397,7 +396,7 @@
{ \__regex_escape_x_loop:N }
{
;
- \exp_after:wN \token_if_eq_charcode:NNTF \c_rbrace_str #1
+ \exp_after:wN \token_if_eq_charcode:NNTF \c_right_brace_str #1
{ \__regex_escape_loop:N }
{
\if_false: { \fi: }
@@ -696,17 +695,17 @@
{ \__regex_compile_quantifier_lazyness:nnNN { 0 } { -1 } }
\cs_new_protected_nopar:cpn { __regex_compile_quantifier_+:w }
{ \__regex_compile_quantifier_lazyness:nnNN { 1 } { -1 } }
-\cs_new_protected:cpn { __regex_compile_quantifier_ \c_lbrace_str :w }
+\cs_new_protected:cpn { __regex_compile_quantifier_ \c_left_brace_str :w }
{
\__regex_get_digits:NTFw \l__regex_internal_a_int
{ \__regex_compile_quantifier_braced_auxi:w }
- { \__regex_compile_quantifier_abort:xNN { \c_lbrace_str } }
+ { \__regex_compile_quantifier_abort:xNN { \c_left_brace_str } }
}
\cs_new_protected:Npn \__regex_compile_quantifier_braced_auxi:w #1#2
{
\str_case_x:nnn { #1 #2 }
{
- { \__regex_compile_special:N \c_rbrace_str }
+ { \__regex_compile_special:N \c_right_brace_str }
{
\exp_args:No \__regex_compile_quantifier_lazyness:nnNN
{ \int_use:N \l__regex_internal_a_int } { 0 }
@@ -720,28 +719,28 @@
}
{
\__regex_compile_quantifier_abort:xNN
- { \c_lbrace_str \int_use:N \l__regex_internal_a_int }
+ { \c_left_brace_str \int_use:N \l__regex_internal_a_int }
#1 #2
}
}
\cs_new_protected:Npn \__regex_compile_quantifier_braced_auxii:w #1#2
{
\str_if_eq_x:nnTF
- { #1 #2 } { \__regex_compile_special:N \c_rbrace_str }
+ { #1 #2 } { \__regex_compile_special:N \c_right_brace_str }
{
\exp_args:No \__regex_compile_quantifier_lazyness:nnNN
{ \int_use:N \l__regex_internal_a_int } { -1 }
}
{
\__regex_compile_quantifier_abort:xNN
- { \c_lbrace_str \int_use:N \l__regex_internal_a_int , }
+ { \c_left_brace_str \int_use:N \l__regex_internal_a_int , }
#1 #2
}
}
\cs_new_protected:Npn \__regex_compile_quantifier_braced_auxiii:w #1#2
{
\str_if_eq_x:nnTF
- { #1 #2 } { \__regex_compile_special:N \c_rbrace_str }
+ { #1 #2 } { \__regex_compile_special:N \c_right_brace_str }
{
\if_int_compare:w \l__regex_internal_a_int > \l__regex_internal_b_int
\__msg_kernel_error:nnxx { regex } { backwards-quantifier }
@@ -758,7 +757,7 @@
{
\__regex_compile_quantifier_abort:xNN
{
- \c_lbrace_str
+ \c_left_brace_str
\int_use:N \l__regex_internal_a_int ,
\int_use:N \l__regex_internal_b_int
}
@@ -1195,14 +1194,14 @@
{ \c__regex_all_catcodes_int - \l__regex_catcodes_int }
\fi:
}
-\cs_new_protected_nopar:cpn { __regex_compile_c_ \c_lbrace_str :w }
+\cs_new_protected_nopar:cpn { __regex_compile_c_ \c_left_brace_str :w }
{
\__regex_compile:w
\__regex_disable_submatches:
\l__regex_mode_int
= - \if_case:w \l__regex_mode_int \c_two \else: \c_six \fi:
}
-\cs_new_protected:cpn { __regex_compile_ \c_rbrace_str : }
+\cs_new_protected:cpn { __regex_compile_ \c_right_brace_str : }
{
\__regex_if_in_cs:TF
{
@@ -1210,14 +1209,14 @@
\__regex_compile_one:x
{ \__regex_item_cs:n { \exp_not:o \l__regex_internal_regex } }
}
- { \exp_after:wN \__regex_compile_raw:N \c_rbrace_str }
+ { \exp_after:wN \__regex_compile_raw:N \c_right_brace_str }
}
\cs_new_protected:cpn { __regex_compile_/u: } #1#2
{
\__regex_if_in_class_or_catcode:TF
{ \__regex_compile_raw_error:N u #1 #2 }
{
- \str_if_eq_x:nnTF {#1#2} { \__regex_compile_special:N \c_lbrace_str }
+ \str_if_eq_x:nnTF {#1#2} { \__regex_compile_special:N \c_left_brace_str }
{
\tl_set:Nx \l__regex_internal_a_tl { \if_false: } \fi:
\__regex_compile_u_loop:NN
@@ -1235,7 +1234,7 @@
{
\token_if_eq_meaning:NNTF #1 \__regex_compile_special:N
{
- \exp_after:wN \token_if_eq_charcode:NNTF \c_rbrace_str #2
+ \exp_after:wN \token_if_eq_charcode:NNTF \c_right_brace_str #2
{ \if_false: { \fi: } \__regex_compile_u_end: }
{ #2 \__regex_compile_u_loop:NN }
}
@@ -2065,7 +2064,7 @@
\tl_clear:N \l__regex_balance_tl
\__regex_escape_use:nnnn
{
- \if_charcode:w \c_rbrace_str ##1
+ \if_charcode:w \c_right_brace_str ##1
\__regex_replacement_rbrace:N \else: \__tl_build_one:n \fi: ##1
}
{ \__regex_replacement_escaped:N ##1 }
@@ -2120,7 +2119,7 @@
}
\cs_new_protected:Npn \__regex_replacement_g:w #1#2
{
- \str_if_eq_x:nnTF { #1#2 } { \__tl_build_one:n \c_lbrace_str }
+ \str_if_eq_x:nnTF { #1#2 } { \__tl_build_one:n \c_left_brace_str }
{
\int_zero:N \l__regex_internal_a_int
\__regex_replacement_g_digits:NN
@@ -2162,7 +2161,7 @@
}
{ \__regex_replacement_error:NNN c #1#2 }
}
-\cs_new_protected_nopar:cpn { __regex_replacement_c_ \c_lbrace_str :w }
+\cs_new_protected_nopar:cpn { __regex_replacement_c_ \c_left_brace_str :w }
{
\if_case:w \l__regex_replacement_csnames_int
\__tl_build_one:n
@@ -2174,7 +2173,7 @@
}
\cs_new_protected:Npn \__regex_replacement_u:w #1#2
{
- \str_if_eq_x:nnTF { #1#2 } { \__tl_build_one:n \c_lbrace_str }
+ \str_if_eq_x:nnTF { #1#2 } { \__tl_build_one:n \c_left_brace_str }
{
\if_case:w \l__regex_replacement_csnames_int
\__tl_build_one:n { \exp_not:n { \exp_after:wN \exp_not:V \cs:w } }
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty
new file mode 100644
index 00000000000..5291a394382
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-convert.sty
@@ -0,0 +1,632 @@
+%%
+%% This is file `l3str-convert.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% l3str-convert.dtx (with options: `package')
+%%
+%% EXPERIMENTAL CODE
+%%
+%% Do not distribute this file without also distributing the
+%% source files specified above.
+%%
+%% Do not distribute a modified version of this file.
+%%
+%% File: l3str-convert.dtx Copyright (C) 2013 The 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
+%% license or (at your option) any later version. The latest version
+%% of this license is in the file
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% This file is part of the "l3experimental bundle" (The Work in LPPL)
+%% and all files in that bundle must be distributed together.
+%%
+%% The released version of this bundle is available from CTAN.
+%%
+%% -----------------------------------------------------------------------
+%%
+%% The development version of the bundle can be found at
+%%
+%% http://www.latex-project.org/svnroot/experimental/trunk/
+%%
+%% for those people who are interested.
+%%
+%%%%%%%%%%%
+%% NOTE: %%
+%%%%%%%%%%%
+%%
+%% Snapshots taken from the repository represent work in progress and may
+%% not work or may contain conflicting material! We therefore ask
+%% people _not_ to put them into distributions, archives, etc. without
+%% prior consultation with the LaTeX3 Project.
+%%
+%% -----------------------------------------------------------------------
+\RequirePackage{expl3}
+\GetIdInfo$Id: l3str-convert.dtx 4339 2013-01-08 10:22:00Z bruno $
+ {L3 Experimental string encoding conversions}
+\ProvidesExplPackage
+ {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
+\RequirePackage{l3str,l3tl-analysis,l3tl-build,l3flag}
+\cs_if_exist:NF \use_ii_i:nn
+ { \cs_new:Npn \use_ii_i:nn #1#2 { #2 #1 } }
+\int_const:Nn \c_max_char_int
+ { \pdftex_if_engine:TF { "FF } { "10FFFF } }
+\cs_new_protected_nopar:Npn \__str_tmp:w { }
+\tl_new:N \l__str_internal_tl
+\int_new:N \l__str_internal_int
+\tl_new:N \g__str_result_tl
+\int_const:Nn \c__str_replacement_char_int { "FFFD }
+\int_const:Nn \c_forty_eight { 48 }
+\int_const:Nn \c_fifty_eight { 58 }
+\int_const:Nn \c_sixty_five { 65 }
+\int_const:Nn \c_ninety_one { 91 }
+\int_const:Nn \c_ninety_seven { 97 }
+\int_const:Nn \c_one_hundred_twenty_three { 123 }
+\int_const:Nn \c_one_hundred_twenty_seven { 127 }
+\prop_new:N \g__str_alias_prop
+\prop_gput:Nnn \g__str_alias_prop { latin1 } { iso88591 }
+\prop_gput:Nnn \g__str_alias_prop { latin2 } { iso88592 }
+\prop_gput:Nnn \g__str_alias_prop { latin3 } { iso88593 }
+\prop_gput:Nnn \g__str_alias_prop { latin4 } { iso88594 }
+\prop_gput:Nnn \g__str_alias_prop { latin5 } { iso88599 }
+\prop_gput:Nnn \g__str_alias_prop { latin6 } { iso885910 }
+\prop_gput:Nnn \g__str_alias_prop { latin7 } { iso885913 }
+\prop_gput:Nnn \g__str_alias_prop { latin8 } { iso885914 }
+\prop_gput:Nnn \g__str_alias_prop { latin9 } { iso885915 }
+\prop_gput:Nnn \g__str_alias_prop { latin10 } { iso885916 }
+\prop_gput:Nnn \g__str_alias_prop { utf16le } { utf16 }
+\prop_gput:Nnn \g__str_alias_prop { utf16be } { utf16 }
+\prop_gput:Nnn \g__str_alias_prop { utf32le } { utf32 }
+\prop_gput:Nnn \g__str_alias_prop { utf32be } { utf32 }
+\prop_gput:Nnn \g__str_alias_prop { hexadecimal } { hex }
+\bool_new:N \g__str_error_bool
+\flag_new:n { str_byte }
+\flag_new:n { str_error }
+\group_begin:
+\char_set_lccode:nn { `\* } { `\ }
+\char_set_lccode:nn { `\A } { `\A }
+\tl_to_lowercase:n
+ {
+ \group_end:
+ \cs_new_protected:Npn \__str_gset_other:Nn #1#2
+ {
+ \tl_gset:Nx #1
+ {
+ \exp_after:wN \__str_gset_other_loop:w \tl_to_str:n {#2} ~ %
+ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ \q_stop
+ }
+ }
+ \cs_new:Npn \__str_gset_other_loop:w
+ #1 ~ #2 ~ #3 ~ #4 ~ #5 ~ #6 ~ #7 ~ #8 ~ #9 ~
+ {
+ \if_meaning:w A #9
+ \__str_gset_other_end:w
+ \fi:
+ #1 * #2 * #3 * #4 * #5 * #6 * #7 * #8 * #9
+ \__str_gset_other_loop:w *
+ }
+ \cs_new:Npn \__str_gset_other_end:w \fi: #1 * A #2 \q_stop
+ { \fi: #1 }
+ }
+\prg_new_conditional:Npnn \__str_if_contains_char:NN #1#2 { T , TF }
+ {
+ \exp_after:wN \__str_if_contains_char_aux:NN \exp_after:wN #2
+ #1 { \__prg_break:n { ? \fi: } }
+ \__prg_break_point:
+ \prg_return_false:
+ }
+\prg_new_conditional:Npnn \__str_if_contains_char:nN #1#2 { TF }
+ {
+ \__str_if_contains_char_aux:NN #2 #1 { \__prg_break:n { ? \fi: } }
+ \__prg_break_point:
+ \prg_return_false:
+ }
+\cs_new:Npn \__str_if_contains_char_aux:NN #1#2
+ {
+ \if_charcode:w #1 #2
+ \exp_after:wN \__str_if_contains_char_true:
+ \fi:
+ \__str_if_contains_char_aux:NN #1
+ }
+\cs_new_nopar:Npn \__str_if_contains_char_true:
+ { \__prg_break:n { \prg_return_true: \use_none:n } }
+\prg_new_conditional:Npnn \__str_octal_use:N #1 { TF }
+ {
+ \if_int_compare:w \c_one < '1 \token_to_str:N #1 \exp_stop_f:
+ #1 \prg_return_true:
+ \else:
+ \prg_return_false:
+ \fi:
+ }
+\prg_new_conditional:Npnn \__str_hexadecimal_use:N #1 { TF }
+ {
+ \if_int_compare:w \c_two < "1 \token_to_str:N #1 \exp_stop_f:
+ #1 \prg_return_true:
+ \else:
+ \if_case:w \__int_eval:w
+ \exp_after:wN ` \token_to_str:N #1 - `a
+ \__int_eval_end:
+ A
+ \or: B
+ \or: C
+ \or: D
+ \or: E
+ \or: F
+ \else:
+ \prg_return_false:
+ \exp_after:wN \use_none:n
+ \fi:
+ \prg_return_true:
+ \fi:
+ }
+\group_begin:
+ \char_set_catcode_other:n { \c_zero }
+ \tl_set:Nx \l__str_internal_tl { \tl_to_str:n { 0123456789ABCDEF } }
+ \exp_args:No \tl_map_inline:nn { \l__str_internal_tl " }
+ { \char_set_lccode:nn {`#1} { \c_zero } }
+ \tl_map_inline:Nn \l__str_internal_tl
+ {
+ \tl_map_inline:Nn \l__str_internal_tl
+ {
+ \char_set_lccode:nn { \c_zero } {"#1##1}
+ \tl_to_lowercase:n
+ {
+ \tl_const:cx
+ { c__str_byte_ \int_eval:n {"#1##1} _tl }
+ { ^^@ #1 ##1 }
+ }
+ }
+ }
+\group_end:
+\tl_const:cn { c__str_byte_-1_tl } { { } \use_none:n { } }
+\cs_new:Npn \__str_output_byte:n #1
+ { \__str_output_byte:w #1 \__str_output_end: }
+\cs_new_nopar:Npn \__str_output_byte:w
+ {
+ \exp_after:wN \exp_after:wN
+ \exp_after:wN \use_i:nnn
+ \cs:w c__str_byte_ \int_use:N \__int_eval:w
+ }
+\cs_new:Npn \__str_output_hexadecimal:n #1
+ { \__str_output_hexadecimal:w #1 \__str_output_end: }
+\cs_new_nopar:Npn \__str_output_hexadecimal:w
+ {
+ \exp_after:wN \exp_after:wN
+ \exp_after:wN \use_none:n
+ \cs:w c__str_byte_ \int_use:N \__int_eval:w
+ }
+\cs_new_nopar:Npn \__str_output_end:
+ { \__int_eval_end: _tl \cs_end: }
+\cs_new:Npn \__str_output_byte_pair_be:n #1
+ {
+ \exp_args:Nf \__str_output_byte_pair:nnN
+ { \int_div_truncate:nn { #1 } { "100 } } {#1} \use:nn
+ }
+\cs_new:Npn \__str_output_byte_pair_le:n #1
+ {
+ \exp_args:Nf \__str_output_byte_pair:nnN
+ { \int_div_truncate:nn { #1 } { "100 } } {#1} \use_ii_i:nn
+ }
+\cs_new:Npn \__str_output_byte_pair:nnN #1#2#3
+ {
+ #3
+ { \__str_output_byte:n { #1 } }
+ { \__str_output_byte:n { #2 - #1 * "100 } }
+ }
+\cs_new_protected:Npn \__str_convert_gmap:N #1
+ {
+ \tl_gset:Nx \g__str_result_tl
+ {
+ \exp_after:wN \__str_convert_gmap_loop:NN
+ \exp_after:wN #1
+ \g__str_result_tl { ? \__prg_break: }
+ \__prg_break_point:
+ }
+ }
+\cs_new:Npn \__str_convert_gmap_loop:NN #1#2
+ {
+ \use_none:n #2
+ #1#2
+ \__str_convert_gmap_loop:NN #1
+ }
+\cs_new_protected:Npn \__str_convert_gmap_internal:N #1
+ {
+ \tl_gset:Nx \g__str_result_tl
+ {
+ \exp_after:wN \__str_convert_gmap_internal_loop:Nww
+ \exp_after:wN #1
+ \g__str_result_tl \s__tl \q_stop \__prg_break: \s__tl
+ \__prg_break_point:
+ }
+ }
+\cs_new:Npn \__str_convert_gmap_internal_loop:Nww #1 #2 \s__tl #3 \s__tl
+ {
+ \use_none_delimit_by_q_stop:w #3 \q_stop
+ #1 {#3}
+ \__str_convert_gmap_internal_loop:Nww #1
+ }
+\cs_new_protected:Npn \__str_if_flag_error:nnx #1
+ {
+ \flag_if_raised:nTF {#1}
+ { \__msg_kernel_error:nnx { str } }
+ { \use_none:nn }
+ }
+\cs_new_protected:Npn \__str_if_flag_no_error:nnx #1#2#3
+ { \flag_if_raised:nT {#1} { \bool_gset_true:N \g__str_error_bool } }
+\cs_new_protected:Npn \__str_if_flag_times:nT #1#2
+ { \flag_if_raised:nT {#1} { #2~(x \flag_height:n {#1} ) } }
+\cs_new_protected_nopar:Npn \str_set_convert:Nnnn
+ { \__str_convert:nNNnnn { } \tl_set_eq:NN }
+\cs_new_protected_nopar:Npn \str_gset_convert:Nnnn
+ { \__str_convert:nNNnnn { } \tl_gset_eq:NN }
+\prg_new_protected_conditional:Npnn
+ \str_set_convert:Nnnn #1#2#3#4 { T , F , TF }
+ {
+ \bool_gset_false:N \g__str_error_bool
+ \__str_convert:nNNnnn
+ { \cs_set_eq:NN \__str_if_flag_error:nnx \__str_if_flag_no_error:nnx }
+ \tl_set_eq:NN #1 {#2} {#3} {#4}
+ \bool_if:NTF \g__str_error_bool \prg_return_false: \prg_return_true:
+ }
+\prg_new_protected_conditional:Npnn
+ \str_gset_convert:Nnnn #1#2#3#4 { T , F , TF }
+ {
+ \bool_gset_false:N \g__str_error_bool
+ \__str_convert:nNNnnn
+ { \cs_set_eq:NN \__str_if_flag_error:nnx \__str_if_flag_no_error:nnx }
+ \tl_gset_eq:NN #1 {#2} {#3} {#4}
+ \bool_if:NTF \g__str_error_bool \prg_return_false: \prg_return_true:
+ }
+\cs_new_protected:Npn \__str_convert:nNNnnn #1#2#3#4#5#6
+ {
+ \group_begin:
+ #1
+ \__str_gset_other:Nn \g__str_result_tl {#4}
+ \exp_after:wN \__str_convert:wwwnn
+ \tl_to_str:n {#5} /// \q_stop
+ { decode } { unescape }
+ \prg_do_nothing:
+ \__str_convert_decode_:
+ \exp_after:wN \__str_convert:wwwnn
+ \tl_to_str:n {#6} /// \q_stop
+ { encode } { escape }
+ \use_ii_i:nn
+ \__str_convert_encode_:
+ \group_end:
+ #2 #3 \g__str_result_tl
+ }
+\cs_new_protected:Npn \__str_convert:wwwnn
+ #1 / #2 // #3 \q_stop #4#5
+ {
+ \__str_convert:nnn {enc} {#4} {#1}
+ \__str_convert:nnn {esc} {#5} {#2}
+ \exp_args:Ncc \__str_convert:NNnNN
+ { __str_convert_#4_#1: } { __str_convert_#5_#2: } {#2}
+ }
+\cs_new_protected:Npn \__str_convert:NNnNN #1#2#3#4#5
+ {
+ \if_meaning:w #1 #5
+ \tl_if_empty:nF {#3}
+ { \__msg_kernel_error:nnx { str } { native-escaping } {#3} }
+ #1
+ \else:
+ #4 #2 #1
+ \fi:
+ }
+\cs_new_protected:Npn \__str_convert:nnn #1#2#3
+ {
+ \cs_if_exist:cF { __str_convert_#2_#3: }
+ {
+ \exp_args:Nx \__str_convert:nnnn
+ { \__str_convert_lowercase_alphanum:n {#3} }
+ {#1} {#2} {#3}
+ }
+ }
+\cs_new_protected:Npn \__str_convert:nnnn #1#2#3#4
+ {
+ \cs_if_exist:cF { __str_convert_#3_#1: }
+ {
+ \prop_get:NnNF \g__str_alias_prop {#1} \l__str_internal_tl
+ { \tl_set:Nn \l__str_internal_tl {#1} }
+ \cs_if_exist:cF { __str_convert_#3_ \l__str_internal_tl : }
+ {
+ \file_if_exist:nTF { l3str-#2- \l__str_internal_tl .def }
+ {
+ \group_begin:
+ \__str_load_catcodes:
+ \file_input:n { l3str-#2- \l__str_internal_tl .def }
+ \group_end:
+ }
+ {
+ \tl_clear:N \l__str_internal_tl
+ \__msg_kernel_error:nnxx { str } { unknown-#2 } {#4} {#1}
+ }
+ }
+ \cs_if_exist:cF { __str_convert_#3_#1: }
+ {
+ \cs_gset_eq:cc { __str_convert_#3_#1: }
+ { __str_convert_#3_ \l__str_internal_tl : }
+ }
+ }
+ \cs_gset_eq:cc { __str_convert_#3_#4: } { __str_convert_#3_#1: }
+ }
+\cs_new:Npn \__str_convert_lowercase_alphanum:n #1
+ {
+ \exp_after:wN \__str_convert_lowercase_alphanum_loop:N
+ \tl_to_str:n {#1} { ? \__prg_break: }
+ \__prg_break_point:
+ }
+\cs_new:Npn \__str_convert_lowercase_alphanum_loop:N #1
+ {
+ \use_none:n #1
+ \if_int_compare:w `#1 < \c_ninety_one
+ \if_int_compare:w `#1 < \c_sixty_five
+ \if_int_compare:w \c_one < 1#1 \exp_stop_f:
+ #1
+ \fi:
+ \else:
+ \__str_output_byte:n { `#1 + \c_thirty_two }
+ \fi:
+ \else:
+ \if_int_compare:w `#1 < \c_one_hundred_twenty_three
+ \if_int_compare:w `#1 < \c_ninety_seven
+ \else:
+ #1
+ \fi:
+ \fi:
+ \fi:
+ \__str_convert_lowercase_alphanum_loop:N
+ }
+\cs_new_protected:Npn \__str_load_catcodes:
+ {
+ \char_set_catcode_escape:N \\
+ \char_set_catcode_group_begin:N \{
+ \char_set_catcode_group_end:N \}
+ \char_set_catcode_math_toggle:N \$
+ \char_set_catcode_alignment:N \&
+ \char_set_catcode_parameter:N \#
+ \char_set_catcode_math_superscript:N \^
+ \char_set_catcode_ignore:N \ %
+ \char_set_catcode_space:N \~
+ \tl_map_function:nN { abcdefghijklmnopqrstuvwxyz_:ABCDEFILNPSTUX }
+ \char_set_catcode_letter:N
+ \tl_map_function:nN { 0123456789"'?*+-.(),`!/<>[];= }
+ \char_set_catcode_other:N
+ \char_set_catcode_comment:N \%
+ \int_set:Nn \tex_endlinechar:D {32}
+ }
+\pdftex_if_engine:TF
+ { \cs_new_eq:NN \__str_filter_bytes:n \use:n }
+ {
+ \cs_new:Npn \__str_filter_bytes:n #1
+ {
+ \__str_filter_bytes_aux:N #1
+ { ? \__prg_break: }
+ \__prg_break_point:
+ }
+ \cs_new:Npn \__str_filter_bytes_aux:N #1
+ {
+ \use_none:n #1
+ \if_int_compare:w `#1 < 256 \exp_stop_f:
+ #1
+ \else:
+ \flag_raise:n { str_byte }
+ \fi:
+ \__str_filter_bytes_aux:N
+ }
+ }
+\pdftex_if_engine:TF
+ { \cs_new_protected_nopar:Npn \__str_convert_unescape_: { } }
+ {
+ \cs_new_protected_nopar:Npn \__str_convert_unescape_:
+ {
+ \flag_clear:n { str_byte }
+ \tl_gset:Nx \g__str_result_tl
+ { \exp_args:No \__str_filter_bytes:n \g__str_result_tl }
+ \__str_if_flag_error:nnx { str_byte } { non-byte } { bytes }
+ }
+ }
+\cs_new_eq:NN \__str_convert_unescape_bytes: \__str_convert_unescape_:
+\cs_new_protected_nopar:Npn \__str_convert_escape_: { }
+\cs_new_eq:NN \__str_convert_escape_bytes: \__str_convert_escape_:
+\cs_new_protected_nopar:Npn \__str_convert_decode_:
+ { \__str_convert_gmap:N \__str_decode_native_char:N }
+\cs_new:Npn \__str_decode_native_char:N #1
+ { #1 \s__tl \__int_value:w `#1 \s__tl }
+\group_begin:
+ \char_set_catcode_other:n { 0 }
+ \pdftex_if_engine:TF
+ {
+ \cs_new_protected_nopar:Npn \__str_convert_encode_:
+ {
+ \flag_clear:n { str_error }
+ \__str_convert_gmap_internal:N \__str_encode_native_char:n
+ \__str_if_flag_error:nnx { str_error }
+ { pdfTeX-native-overflow } { }
+ }
+ \cs_new:Npn \__str_encode_native_char:n #1
+ {
+ \if_int_compare:w #1 < \c_two_hundred_fifty_six
+ \__str_output_byte:n {#1}
+ \else:
+ \flag_raise:n { str_error }
+ ?
+ \fi:
+ }
+ \__msg_kernel_new:nnnn { str } { pdfTeX-native-overflow }
+ { Character~code~too~large~for~pdfTeX. }
+ {
+ The~pdfTeX~engine~only~supports~8-bit~characters:~
+ valid~character~codes~are~in~the~range~[0,255].~
+ To~manipulate~arbitrary~Unicode,~use~LuaTeX~or~XeTeX.
+ }
+ }
+ {
+ \cs_new_protected_nopar:Npn \__str_convert_encode_:
+ {
+ \int_zero:N \l__tl_build_offset_int
+ \__tl_gbuild_x:Nw \g__str_result_tl
+ \exp_after:wN \__str_encode_native_loop:w
+ \g__str_result_tl \s__tl { \q_stop \__prg_break: } \s__tl
+ \__prg_break_point:
+ \__tl_build_end:
+ }
+ \cs_new_protected:Npn \__str_encode_native_loop:w #1 \s__tl #2 \s__tl
+ {
+ \use_none_delimit_by_q_stop:w #2 \q_stop
+ \tex_lccode:D \l__str_internal_int \__int_eval:w #2 \__int_eval_end:
+ \tl_to_lowercase:n { \__tl_build_one:n { ^^@ } }
+ \__str_encode_native_loop:w
+ }
+ }
+\group_end:
+\cs_new_protected:Npn \__str_declare_eight_bit_encoding:nnn #1#2#3
+ {
+ \tl_set:Nn \l__str_internal_tl {#1}
+ \cs_new_protected_nopar:cpn { __str_convert_decode_#1: }
+ { \__str_convert_decode_eight_bit:n {#1} }
+ \cs_new_protected_nopar:cpn { __str_convert_encode_#1: }
+ { \__str_convert_encode_eight_bit:n {#1} }
+ \tl_const:cn { c__str_encoding_#1_tl } {#2}
+ \tl_const:cn { c__str_encoding_#1_missing_tl } {#3}
+ }
+\cs_new_protected:Npn \__str_convert_decode_eight_bit:n #1
+ {
+ \group_begin:
+ \int_zero:N \l__str_internal_int
+ \exp_last_unbraced:Nx \__str_decode_eight_bit_load:nn
+ { \tl_use:c { c__str_encoding_#1_tl } }
+ { \q_stop \__prg_break: } { }
+ \__prg_break_point:
+ \exp_last_unbraced:Nx \__str_decode_eight_bit_load_missing:n
+ { \tl_use:c { c__str_encoding_#1_missing_tl } }
+ { \q_stop \__prg_break: }
+ \__prg_break_point:
+ \flag_clear:n { str_error }
+ \__str_convert_gmap:N \__str_decode_eight_bit_char:N
+ \__str_if_flag_error:nnx { str_error } { decode-8-bit } {#1}
+ \group_end:
+ }
+\cs_new_protected:Npn \__str_decode_eight_bit_load:nn #1#2
+ {
+ \use_none_delimit_by_q_stop:w #1 \q_stop
+ \tex_dimen:D "#1 = \l__str_internal_int sp \scan_stop:
+ \tex_skip:D \l__str_internal_int = "#1 sp \scan_stop:
+ \tex_toks:D \l__str_internal_int \exp_after:wN { \__int_value:w "#2 }
+ \tex_advance:D \l__str_internal_int \c_one
+ \__str_decode_eight_bit_load:nn
+ }
+\cs_new_protected:Npn \__str_decode_eight_bit_load_missing:n #1
+ {
+ \use_none_delimit_by_q_stop:w #1 \q_stop
+ \tex_dimen:D "#1 = \l__str_internal_int sp \scan_stop:
+ \tex_skip:D \l__str_internal_int = "#1 sp \scan_stop:
+ \tex_toks:D \l__str_internal_int \exp_after:wN
+ { \int_use:N \c__str_replacement_char_int }
+ \tex_advance:D \l__str_internal_int \c_one
+ \__str_decode_eight_bit_load_missing:n
+ }
+\cs_new:Npn \__str_decode_eight_bit_char:N #1
+ {
+ #1 \s__tl
+ \if_int_compare:w \tex_dimen:D `#1 < \l__str_internal_int
+ \if_int_compare:w \tex_skip:D \tex_dimen:D `#1 = `#1 \exp_stop_f:
+ \tex_the:D \tex_toks:D \tex_dimen:D
+ \fi:
+ \fi:
+ \__int_value:w `#1 \s__tl
+ }
+\cs_new_protected:Npn \__str_convert_encode_eight_bit:n #1
+ {
+ \group_begin:
+ \int_zero:N \l__str_internal_int
+ \exp_last_unbraced:Nx \__str_encode_eight_bit_load:nn
+ { \tl_use:c { c__str_encoding_#1_tl } }
+ { \q_stop \__prg_break: } { }
+ \__prg_break_point:
+ \flag_clear:n { str_error }
+ \__str_convert_gmap_internal:N \__str_encode_eight_bit_char:n
+ \__str_if_flag_error:nnx { str_error } { encode-8-bit } {#1}
+ \group_end:
+ }
+\cs_new_protected:Npn \__str_encode_eight_bit_load:nn #1#2
+ {
+ \use_none_delimit_by_q_stop:w #1 \q_stop
+ \tex_dimen:D "#2 = \l__str_internal_int sp \scan_stop:
+ \tex_skip:D \l__str_internal_int = "#2 sp \scan_stop:
+ \exp_args:NNf \tex_toks:D \l__str_internal_int
+ { \__str_output_byte:n { "#1 } }
+ \tex_advance:D \l__str_internal_int \c_one
+ \__str_encode_eight_bit_load:nn
+ }
+\cs_new:Npn \__str_encode_eight_bit_char:n #1
+ {
+ \if_int_compare:w #1 > \c_max_register_int
+ \flag_raise:n { str_error }
+ \else:
+ \if_int_compare:w \tex_dimen:D #1 < \l__str_internal_int
+ \if_int_compare:w \tex_skip:D \tex_dimen:D #1 = #1 \exp_stop_f:
+ \tex_the:D \tex_toks:D \tex_dimen:D #1 \exp_stop_f:
+ \exp_after:wN \exp_after:wN \exp_after:wN \use_none:nn
+ \fi:
+ \fi:
+ \__str_encode_eight_bit_char_aux:n {#1}
+ \fi:
+ }
+\cs_new:Npn \__str_encode_eight_bit_char_aux:n #1
+ {
+ \if_int_compare:w #1 < \c_two_hundred_fifty_six
+ \__str_output_byte:n {#1}
+ \else:
+ \flag_raise:n { str_error }
+ \fi:
+ }
+\__msg_kernel_new:nnn { str } { unknown-esc }
+ { Escaping~scheme~'#1'~(filtered:~'#2')~unknown. }
+\__msg_kernel_new:nnn { str } { unknown-enc }
+ { Encoding~scheme~'#1'~(filtered:~'#2')~unknown. }
+\__msg_kernel_new:nnnn { str } { native-escaping }
+ { The~'native'~encoding~scheme~does~not~support~any~escaping. }
+ {
+ Since~native~strings~do~not~consist~in~bytes,~
+ none~of~the~escaping~methods~make~sense.~
+ The~specified~escaping,~'#1',~will be ignored.
+ }
+\__msg_kernel_new:nnn { str } { file-not-found }
+ { File~'l3str-#1.def'~not~found. }
+\pdftex_if_engine:F
+ {
+ \__msg_kernel_new:nnnn { str } { non-byte }
+ { String~invalid~in~escaping~'#1':~it~may~only~contain~bytes. }
+ {
+ Some~characters~in~the~string~you~asked~to~convert~are~not~
+ 8-bit~characters.~Perhaps~the~string~is~a~'native'~Unicode~string?~
+ If~it~is,~try~using\\
+ \\
+ \iow_indent:n
+ {
+ \iow_char:N\\str_set_convert:Nnnn \\
+ \ \ <str~var>~\{~<string>~\}~\{~native~\}~\{~<target~encoding>~\}
+ }
+ }
+ }
+\__msg_kernel_new:nnnn { str } { decode-8-bit }
+ { Invalid~string~in~encoding~'#1'. }
+ {
+ LaTeX~came~across~a~byte~which~is~not~defined~to~represent~
+ any~character~in~the~encoding~'#1'.
+ }
+\__msg_kernel_new:nnnn { str } { encode-8-bit }
+ { Unicode~string~cannot~be~converted~to~encoding~'#1'. }
+ {
+ The~encoding~'#1'~only~contains~a~subset~of~all~Unicode~characters.~
+ LaTeX~was~asked~to~convert~a~string~to~that~encoding,~but~that~
+ string~contains~a~character~that~'#1'~does~not~support.
+ }
+%%
+%%
+%% End of file `l3str-convert.sty'.
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
index 57e71f04988..bbf68b78646 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str-format.sty
@@ -13,7 +13,7 @@
%%
%% Do not distribute a modified version of this file.
%%
-%% File: l3str-format.dtx Copyright (C) 2012 The LaTeX3 Project
+%% File: l3str-format.dtx Copyright (C) 2012-2013 The 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
@@ -61,6 +61,20 @@
}
\cs_new:Npn \__str_format_put:nw #1 #2 \s__stop { #2 \s__stop #1 }
\cs_generate_variant:Nn \__str_format_put:nw { o , f }
+\prg_new_conditional:Npnn \__str_format_if_in:nN #1#2 { TF }
+ {
+ \__str_format_if_in_aux:NN #2 #1
+ { #2 \prg_return_false: \exp_after:wN \__prg_break: \else: }
+ \__prg_break_point:
+ }
+\cs_new:Npn \__str_format_if_in_aux:NN #1#2
+ {
+ \if_charcode:w #1 #2
+ \prg_return_true:
+ \exp_after:wN \__prg_break:
+ \fi:
+ \__str_format_if_in_aux:NN #1
+ }
\cs_new:Npn \__str_format_parse:n #1
{
\exp_last_unbraced:Nf \__str_format_parse_auxi:NN
@@ -68,7 +82,7 @@
}
\cs_new:Npx \__str_format_parse_auxi:NN #1#2
{
- \exp_not:N \__str_if_contains_char:nNTF { < > = ^ } #2
+ \exp_not:N \__str_format_if_in:nNTF { < > = ^ } #2
{ \exp_not:N \__str_format_parse_auxiii:nN { #1 #2 } }
{
\exp_not:N \__str_format_parse_auxii:nN
@@ -77,13 +91,13 @@
}
\cs_new:Npn \__str_format_parse_auxii:nN #1#2
{
- \__str_if_contains_char:nNTF { < > = ^ } #2
+ \__str_format_if_in:nNTF { < > = ^ } #2
{ \__str_format_parse_auxiii:nN { #1 #2 } }
{ \__str_format_parse_auxiii:nN { #1 ? } #2 }
}
\cs_new:Npx \__str_format_parse_auxiii:nN #1#2
{
- \exp_not:N \__str_if_contains_char:nNTF
+ \exp_not:N \__str_format_if_in:nNTF
{ + - \c_catcode_other_space_tl }
#2
{ \exp_not:N \__str_format_parse_auxiv:nwN { #1 #2 } ; }
@@ -199,8 +213,8 @@
}
\__str_format_put:nw { {#4} }
\tl_if_empty:nTF {#5}
- { \__str_format_put:nw { \use:n { } } }
- { \__str_format_put:nw { \__str_substr_unsafe:nnn { {1} {#5} } } }
+ { \__str_format_put:nw { \__str_range_unsafe:nnn { {1} {-1} } } }
+ { \__str_format_put:nw { \__str_range_unsafe:nnn { {1} {#5} } } }
\token_if_eq_charcode:NNF #6 s
{
\token_if_eq_charcode:NNF #6 ?
@@ -384,7 +398,7 @@
}
{
\__str_format_put:fw
- { \str_substr:nnn { #4#5#6#7 0 } { 2 } { #8 + 1 } }
+ { \str_range:nnn { #4#5#6#7 0 } { 2 } { #8 + 1 } }
}
\__str_format_put:fw { \use_i:nnnn #4 . }
\use_none:n \s__stop
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str.sty
index 8fb7f22b337..15d29def3e8 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3str.sty
@@ -13,7 +13,7 @@
%%
%% Do not distribute a modified version of this file.
%%
-%% File: l3str.dtx Copyright (C) 2011-2012 The LaTeX3 Project
+%% File: l3str.dtx Copyright (C) 2011-2013 The 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
@@ -46,13 +46,10 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{expl3}
-\GetIdInfo$Id: l3str.dtx 4339 2012-11-24 19:16:43Z joseph $
+\GetIdInfo$Id: l3str.dtx 4452 2013-01-20 10:18:32Z joseph $
{L3 Experimental strings}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
-\RequirePackage{l3tl-analysis,l3tl-build,l3flag}
-\cs_if_exist:NF \use_ii_i:nn
- { \cs_new:Npn \use_ii_i:nn #1#2 { #2 #1 } }
\cs_new_eq:NN \str_new:N \tl_new:N
\cs_generate_variant:Nn \str_new:N { c }
\tl_map_inline:nn
@@ -70,95 +67,17 @@
{ \exp_not:c { tl_ #1 :Nx } ##1 { \exp_not:N \tl_to_str:n {##2} } }
\exp_args:Nc \cs_generate_variant:Nn { str_ #1 :Nn } { Nx , cn , cx }
}
-\cs_new_protected_nopar:Npn \__str_tmp:w { }
-\tl_new:N \l__str_internal_tl
-\int_new:N \l__str_internal_int
-\tl_new:N \g__str_result_tl
-\int_const:Nn \c_forty_eight { 48 }
-\int_const:Nn \c_fifty_eight { 58 }
-\int_const:Nn \c_sixty_five { 65 }
-\int_const:Nn \c_ninety_one { 91 }
-\int_const:Nn \c_ninety_seven { 97 }
-\int_const:Nn \c_one_hundred_twenty_three { 123 }
-\int_const:Nn \c_one_hundred_twenty_seven { 127 }
-\int_const:Nn \c_max_char_int
- { \pdftex_if_engine:TF { "FF } { "10FFFF } }
-\int_const:Nn \c__str_replacement_char_int { "FFFD }
-\tl_const:Nx \c_backslash_str { \cs_to_str:N \\ }
-\tl_const:Nx \c_lbrace_str { \cs_to_str:N \{ }
-\tl_const:Nx \c_rbrace_str { \cs_to_str:N \} }
-\tl_const:Nx \c_hash_str { \cs_to_str:N \# }
-\tl_const:Nx \c_tilde_str { \cs_to_str:N \~ }
-\tl_const:Nx \c_percent_str { \cs_to_str:N \% }
-\prop_new:N \g__str_alias_prop
-\prop_gput:Nnn \g__str_alias_prop { latin1 } { iso88591 }
-\prop_gput:Nnn \g__str_alias_prop { latin2 } { iso88592 }
-\prop_gput:Nnn \g__str_alias_prop { latin3 } { iso88593 }
-\prop_gput:Nnn \g__str_alias_prop { latin4 } { iso88594 }
-\prop_gput:Nnn \g__str_alias_prop { latin5 } { iso88599 }
-\prop_gput:Nnn \g__str_alias_prop { latin6 } { iso885910 }
-\prop_gput:Nnn \g__str_alias_prop { latin7 } { iso885913 }
-\prop_gput:Nnn \g__str_alias_prop { latin8 } { iso885914 }
-\prop_gput:Nnn \g__str_alias_prop { latin9 } { iso885915 }
-\prop_gput:Nnn \g__str_alias_prop { latin10 } { iso885916 }
-\prop_gput:Nnn \g__str_alias_prop { utf16le } { utf16 }
-\prop_gput:Nnn \g__str_alias_prop { utf16be } { utf16 }
-\prop_gput:Nnn \g__str_alias_prop { utf32le } { utf32 }
-\prop_gput:Nnn \g__str_alias_prop { utf32be } { utf32 }
-\prop_gput:Nnn \g__str_alias_prop { hexadecimal } { hex }
-\bool_new:N \g__str_error_bool
-\flag_new:n { str_byte }
-\flag_new:n { str_error }
-\group_begin:
-\char_set_lccode:nn { `\* } { `\ }
-\char_set_lccode:nn { `\A } { `\A }
-\tl_to_lowercase:n
- {
- \group_end:
- \cs_new:Npn \__str_to_other:n #1
- {
- \exp_after:wN \__str_to_other_loop:w \tl_to_str:n {#1} ~ %
- A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ \q_mark \q_stop
- }
- \cs_new:Npn \__str_to_other_loop:w
- #1 ~ #2 ~ #3 ~ #4 ~ #5 ~ #6 ~ #7 ~ #8 ~ #9 \q_stop
- {
- \if_meaning:w A #8
- \__str_to_other_end:w
- \fi:
- \__str_to_other_loop:w
- #9 #1 * #2 * #3 * #4 * #5 * #6 * #7 * #8 * \q_stop
- }
- \cs_new:Npn \__str_to_other_end:w \fi: #1 \q_mark #2 * A #3 \q_stop
- { \fi: #2 }
- }
-\group_begin:
-\char_set_lccode:nn { `\* } { `\ }
-\char_set_lccode:nn { `\A } { `\A }
-\tl_to_lowercase:n
- {
- \group_end:
- \cs_new_protected:Npn \__str_gset_other:Nn #1#2
- {
- \tl_gset:Nx #1
- {
- \exp_after:wN \__str_gset_other_loop:w \tl_to_str:n {#2} ~ %
- A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ \q_stop
- }
- }
- \cs_new:Npn \__str_gset_other_loop:w
- #1 ~ #2 ~ #3 ~ #4 ~ #5 ~ #6 ~ #7 ~ #8 ~ #9 ~
- {
- \if_meaning:w A #9
- \__str_gset_other_end:w
- \fi:
- #1 * #2 * #3 * #4 * #5 * #6 * #7 * #8 * #9
- \__str_gset_other_loop:w *
- }
- \cs_new:Npn \__str_gset_other_end:w \fi: #1 * A #2 \q_stop
- { \fi: #1 }
- }
-\cs_new:Npn \str_count_spaces:N
+\str_const:Nx \c_backslash_str { \cs_to_str:N \\ }
+\str_const:Nx \c_left_brace_str { \cs_to_str:N \{ }
+\str_const:Nx \c_right_brace_str { \cs_to_str:N \} }
+\str_const:Nx \c_hash_str { \cs_to_str:N \# }
+\str_const:Nx \c_tilde_str { \cs_to_str:N \~ }
+\str_const:Nx \c_percent_str { \cs_to_str:N \% }
+\str_new:N \l_tmpa_str
+\str_new:N \l_tmpb_str
+\str_new:N \g_tmpa_str
+\str_new:N \g_tmpb_str
+\cs_new_nopar:Npn \str_count_spaces:N
{ \exp_args:No \str_count_spaces:n }
\cs_new:Npn \str_count_spaces:n #1
{
@@ -173,7 +92,7 @@
\cs_new:Npn \__str_count_spaces_loop:wwwwwwwww #1~#2~#3~#4~#5~#6~#7~#8~#9~
{
\if_meaning:w X #9
- \exp_after:wN \use_none_delimit_by_q_stop:w
+ \use_i_delimit_by_q_stop:nw
\fi:
\c_nine + \__str_count_spaces_loop:wwwwwwwww
}
@@ -239,12 +158,35 @@
\cs_new:Npn \str_tail_ignore_spaces:n #1
{
\exp_after:wN \__str_tail_auxii:w
- \tl_to_str:n {#1} X X \q_stop
+ \tl_to_str:n {#1} \q_mark \q_mark \q_stop
+ }
+\cs_new:Npn \__str_tail_auxii:w #1 #2 \q_mark #3 \q_stop { #2 }
+\group_begin:
+\char_set_lccode:nn { `\* } { `\ }
+\char_set_lccode:nn { `\A } { `\A }
+\tl_to_lowercase:n
+ {
+ \group_end:
+ \cs_new:Npn \__str_to_other:n #1
+ {
+ \exp_after:wN \__str_to_other_loop:w \tl_to_str:n {#1} ~ %
+ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ \q_mark \q_stop
+ }
+ \cs_new:Npn \__str_to_other_loop:w
+ #1 ~ #2 ~ #3 ~ #4 ~ #5 ~ #6 ~ #7 ~ #8 ~ #9 \q_stop
+ {
+ \if_meaning:w A #8
+ \__str_to_other_end:w
+ \fi:
+ \__str_to_other_loop:w
+ #9 #1 * #2 * #3 * #4 * #5 * #6 * #7 * #8 * \q_stop
+ }
+ \cs_new:Npn \__str_to_other_end:w \fi: #1 \q_mark #2 * A #3 \q_stop
+ { \fi: #2 }
}
-\cs_new:Npn \__str_tail_auxii:w #1 #2 X #3 \q_stop { #2 }
\cs_new:Npn \__str_skip_c_zero:w #1;
{
- \if_int_compare:w \__int_eval:w #1 > \c_eight
+ \if_int_compare:w #1 > \c_eight
\exp_after:wN \__str_skip_loop:wNNNNNNNN
\else:
\exp_after:wN \__str_skip_end:w
@@ -257,16 +199,11 @@
\cs_new:Npn \__str_skip_end:w #1 ;
{
\exp_after:wN \__str_skip_end:NNNNNNNN
- \if_case:w \if_int_compare:w #1 > \c_zero #1 \else: 0 \fi: \exp_stop_f:
- \or: \or: \or: \or: \or: \or: \or: \or:
+ \if_case:w #1 \exp_stop_f: \or: \or: \or: \or: \or: \or: \or: \or:
}
\cs_new:Npn \__str_skip_end:NNNNNNNN #1#2#3#4#5#6#7#8 { \fi: \c_zero }
\cs_new:Npn \__str_collect_delimit_by_q_stop:w #1;
- {
- \exp_after:wN \__str_collect_loop:wn
- \int_use:N \__int_eval:w #1 ;
- { }
- }
+ { \__str_collect_loop:wn #1 ; { } }
\cs_new:Npn \__str_collect_loop:wn #1 ;
{
\if_int_compare:w #1 > \c_seven
@@ -306,8 +243,7 @@
\exp_after:wN \__str_item:ww
\int_use:N \__int_eval:w #2 \exp_after:wN ;
\__int_value:w \__str_count_unsafe:n {#1} ;
- { } #1
- \q_stop
+ #1 \q_stop
}
\cs_new:Npn \__str_item:ww #1; #2;
{
@@ -317,7 +253,8 @@
{ \use_none_delimit_by_q_stop:w }
{
\exp_after:wN \use_i_delimit_by_q_stop:nw
- \tex_romannumeral:D \__str_skip_c_zero:w #1 + #2 + \c_one ;
+ \tex_romannumeral:D \exp_after:wN \__str_skip_c_zero:w
+ \int_use:N \__int_eval:w #1 + #2 ;
}
}
{
@@ -325,590 +262,80 @@
{ \use_none_delimit_by_q_stop:w }
{
\exp_after:wN \use_i_delimit_by_q_stop:nw
- \tex_romannumeral:D \__str_skip_c_zero:w #1 ;
+ \tex_romannumeral:D \__str_skip_c_zero:w #1 ; { }
}
}
}
-\cs_new_nopar:Npn \str_substr:Nnn { \exp_args:No \str_substr:nnn }
-\cs_new:Npn \str_substr:nnn #1#2#3
- {
- \exp_args:Nf \tl_to_str:n
- {
- \exp_args:Nf \__str_substr_unsafe:nnn
- { \__str_to_other:n {#1} } {#2} {#3}
- }
- }
-\cs_new:Npn \str_substr_ignore_spaces:nnn #1
- { \exp_args:No \__str_substr_unsafe:nnn { \tl_to_str:n {#1} } }
-\cs_new:Npn \__str_substr_unsafe:nnn #1#2#3
- {
- \exp_after:wN \__str_substr:www
- \__int_value:w \__str_count_unsafe:n {#1} \exp_after:wN ;
- \int_use:N \__int_eval:w #2 + \c_zero \exp_after:wN ;
- \int_use:N \__int_eval:w
- \exp_args:Nf \__str_substr:nN {#3} \c_max_int ;
- { } #1
- \q_stop
- }
-\cs_new:Npn \__str_substr:nN #1 #2
- { \tl_if_empty:nTF {#1} {#2} {#1} }
-\cs_new:Npn \__str_substr:www #1; #2; #3;
- {
- \exp_args:Nf \__str_substr:nnw
- { \__str_substr_normalize_range:nn {#2} {#1} }
- { \__str_substr_normalize_range:nn {#3} {#1} }
- }
-\cs_new:Npn \__str_substr:nnw #1#2
- {
- \exp_after:wN \__str_collect_delimit_by_q_stop:w
- \int_use:N \__int_eval:w #2 + \c_one - #1 \exp_after:wN ;
- \tex_romannumeral:D \__str_skip_c_zero:w #1 ;
- }
-\cs_new:Npn \__str_substr_normalize_range:nn #1#2
+\cs_new:Npn \__str_range_normalize:nn #1#2
{
\int_eval:n
{
\if_int_compare:w #1 < \c_zero
- \if_int_compare:w #1 < - #2 \exp_stop_f:
+ \if_int_compare:w #1 < -#2 \exp_stop_f:
\c_zero
\else:
#1 + #2 + \c_one
\fi:
\else:
- \if_int_compare:w #1 > #2 \exp_stop_f:
- #2
- \else:
+ \if_int_compare:w #1 < #2 \exp_stop_f:
#1
+ \else:
+ #2
\fi:
\fi:
}
}
-\prg_new_conditional:Npnn \str_if_eq:NN #1#2 { p , TF , T , F }
- {
- \if_int_compare:w \pdftex_strcmp:D { \tl_to_str:N #1 } { \tl_to_str:N #2 }
- = \c_zero \prg_return_true: \else: \prg_return_false: \fi:
- }
-\prg_new_conditional:Npnn \__str_if_contains_char:NN #1#2 { T , TF }
+\cs_new_nopar:Npn \str_range:Nnn { \exp_args:No \str_range:nnn }
+\cs_new:Npn \str_range:nnn #1#2#3
{
- \exp_after:wN \__str_if_contains_char_aux:NN \exp_after:wN #2
- #1 { \__prg_break:n { ? \fi: } }
- \__prg_break_point:
- \prg_return_false:
+ \exp_args:Nf \tl_to_str:n
+ {
+ \exp_args:Nf \__str_range_unsafe:nnn
+ { \__str_to_other:n {#1} } {#2} {#3}
+ }
}
-\prg_new_conditional:Npnn \__str_if_contains_char:nN #1#2 { TF }
+\cs_new:Npn \str_range_ignore_spaces:nnn #1
+ { \exp_args:No \__str_range_unsafe:nnn { \tl_to_str:n {#1} } }
+\cs_new:Npn \__str_range_unsafe:nnn #1#2#3
{
- \__str_if_contains_char_aux:NN #2 #1 { \__prg_break:n { ? \fi: } }
- \__prg_break_point:
- \prg_return_false:
+ \exp_after:wN \__str_range:www
+ \__int_value:w \__str_count_unsafe:n {#1} \exp_after:wN ;
+ \int_use:N \__int_eval:w #2 - \c_one \exp_after:wN ;
+ \int_use:N \__int_eval:w #3 ;
+ #1 \q_stop
}
-\cs_new:Npn \__str_if_contains_char_aux:NN #1#2
+\cs_new:Npn \__str_range:www #1; #2; #3;
{
- \if_charcode:w #1 #2
- \exp_after:wN \__str_if_contains_char_true:
- \fi:
- \__str_if_contains_char_aux:NN #1
+ \exp_args:Nf \__str_range:nnw
+ { \__str_range_normalize:nn {#2} {#1} }
+ { \__str_range_normalize:nn {#3} {#1} }
}
-\cs_new_nopar:Npn \__str_if_contains_char_true:
- { \__prg_break:n { \prg_return_true: \use_none:n } }
-\prg_new_conditional:Npnn \__str_octal_use:N #1 { TF }
+\cs_new:Npn \__str_range:nnw #1#2
{
- \if_int_compare:w \c_one < '1 \token_to_str:N #1 \exp_stop_f:
- #1 \prg_return_true:
- \else:
- \prg_return_false:
- \fi:
+ \exp_after:wN \__str_collect_delimit_by_q_stop:w
+ \int_use:N \__int_eval:w #2 - #1 \exp_after:wN ;
+ \tex_romannumeral:D \__str_skip_c_zero:w #1 ;
}
-\prg_new_conditional:Npnn \__str_hexadecimal_use:N #1 { TF }
+\prg_new_conditional:Npnn \str_if_eq:NN #1#2 { p , TF , T , F }
{
- \if_int_compare:w \c_two < "1 \token_to_str:N #1 \exp_stop_f:
- #1 \prg_return_true:
- \else:
- \if_case:w \__int_eval:w
- \exp_after:wN ` \token_to_str:N #1 - `a
- \__int_eval_end:
- A
- \or: B
- \or: C
- \or: D
- \or: E
- \or: F
- \else:
- \prg_return_false:
- \exp_after:wN \use_none:n
- \fi:
- \prg_return_true:
- \fi:
+ \if_int_compare:w \pdftex_strcmp:D { \tl_to_str:N #1 } { \tl_to_str:N #2 }
+ = \c_zero \prg_return_true: \else: \prg_return_false: \fi:
}
\cs_new_eq:NN \str_show:n \tl_show:n
\cs_new_eq:NN \str_show:N \tl_show:N
\cs_generate_variant:Nn \str_show:N { c }
-\group_begin:
- \char_set_catcode_other:n { \c_zero }
- \tl_set:Nx \l__str_internal_tl { \tl_to_str:n { 0123456789ABCDEF } }
- \exp_args:No \tl_map_inline:nn { \l__str_internal_tl " }
- { \char_set_lccode:nn {`#1} { \c_zero } }
- \tl_map_inline:Nn \l__str_internal_tl
- {
- \tl_map_inline:Nn \l__str_internal_tl
- {
- \char_set_lccode:nn { \c_zero } {"#1##1}
- \tl_to_lowercase:n
- {
- \tl_const:cx
- { c__str_byte_ \int_eval:n {"#1##1} _tl }
- { ^^@ #1 ##1 }
- }
- }
- }
-\group_end:
-\tl_const:cn { c__str_byte_-1_tl } { { } \use_none:n { } }
-\cs_new:Npn \__str_output_byte:n #1
- { \__str_output_byte:w #1 \__str_output_end: }
-\cs_new_nopar:Npn \__str_output_byte:w
- {
- \exp_after:wN \exp_after:wN
- \exp_after:wN \use_i:nnn
- \cs:w c__str_byte_ \int_use:N \__int_eval:w
- }
-\cs_new:Npn \__str_output_hexadecimal:n #1
- { \__str_output_hexadecimal:w #1 \__str_output_end: }
-\cs_new_nopar:Npn \__str_output_hexadecimal:w
- {
- \exp_after:wN \exp_after:wN
- \exp_after:wN \use_none:n
- \cs:w c__str_byte_ \int_use:N \__int_eval:w
- }
-\cs_new_nopar:Npn \__str_output_end:
- { \__int_eval_end: _tl \cs_end: }
-\cs_new:Npn \__str_output_byte_pair_be:n #1
- {
- \exp_args:Nf \__str_output_byte_pair:nnN
- { \int_div_truncate:nn { #1 } { "100 } } {#1} \use:nn
- }
-\cs_new:Npn \__str_output_byte_pair_le:n #1
- {
- \exp_args:Nf \__str_output_byte_pair:nnN
- { \int_div_truncate:nn { #1 } { "100 } } {#1} \use_ii_i:nn
- }
-\cs_new:Npn \__str_output_byte_pair:nnN #1#2#3
- {
- #3
- { \__str_output_byte:n { #1 } }
- { \__str_output_byte:n { #2 - #1 * "100 } }
- }
-\cs_new_protected:Npn \__str_convert_gmap:N #1
- {
- \tl_gset:Nx \g__str_result_tl
- {
- \exp_after:wN \__str_convert_gmap_loop:NN
- \exp_after:wN #1
- \g__str_result_tl { ? \__prg_break: }
- \__prg_break_point:
- }
- }
-\cs_new:Npn \__str_convert_gmap_loop:NN #1#2
- {
- \use_none:n #2
- #1#2
- \__str_convert_gmap_loop:NN #1
- }
-\cs_new_protected:Npn \__str_convert_gmap_internal:N #1
- {
- \tl_gset:Nx \g__str_result_tl
- {
- \exp_after:wN \__str_convert_gmap_internal_loop:Nww
- \exp_after:wN #1
- \g__str_result_tl \s__tl \q_stop \__prg_break: \s__tl
- \__prg_break_point:
- }
- }
-\cs_new:Npn \__str_convert_gmap_internal_loop:Nww #1 #2 \s__tl #3 \s__tl
- {
- \use_none_delimit_by_q_stop:w #3 \q_stop
- #1 {#3}
- \__str_convert_gmap_internal_loop:Nww #1
- }
-\cs_new_protected:Npn \__str_if_flag_error:nnx #1
- {
- \flag_if_raised:nTF {#1}
- { \__msg_kernel_error:nnx { str } }
- { \use_none:nn }
- }
-\cs_new_protected:Npn \__str_if_flag_no_error:nnx #1#2#3
- { \flag_if_raised:nT {#1} { \bool_gset_true:N \g__str_error_bool } }
-\cs_new_protected:Npn \__str_if_flag_times:nT #1#2
- { \flag_if_raised:nT {#1} { #2~(x \flag_height:n {#1} ) } }
-\cs_new_protected_nopar:Npn \str_set_convert:Nnnn
- { \__str_convert:nNNnnn { } \tl_set_eq:NN }
-\cs_new_protected_nopar:Npn \str_gset_convert:Nnnn
- { \__str_convert:nNNnnn { } \tl_gset_eq:NN }
-\prg_new_protected_conditional:Npnn
- \str_set_convert:Nnnn #1#2#3#4 { T , F , TF }
- {
- \bool_gset_false:N \g__str_error_bool
- \__str_convert:nNNnnn
- { \cs_set_eq:NN \__str_if_flag_error:nnx \__str_if_flag_no_error:nnx }
- \tl_set_eq:NN #1 {#2} {#3} {#4}
- \bool_if:NTF \g__str_error_bool \prg_return_false: \prg_return_true:
- }
-\prg_new_protected_conditional:Npnn
- \str_gset_convert:Nnnn #1#2#3#4 { T , F , TF }
- {
- \bool_gset_false:N \g__str_error_bool
- \__str_convert:nNNnnn
- { \cs_set_eq:NN \__str_if_flag_error:nnx \__str_if_flag_no_error:nnx }
- \tl_gset_eq:NN #1 {#2} {#3} {#4}
- \bool_if:NTF \g__str_error_bool \prg_return_false: \prg_return_true:
- }
-\cs_new_protected:Npn \__str_convert:nNNnnn #1#2#3#4#5#6
- {
- \group_begin:
- #1
- \__str_gset_other:Nn \g__str_result_tl {#4}
- \exp_after:wN \__str_convert:wwwnn
- \tl_to_str:n {#5} /// \q_stop
- { decode } { unescape }
- \prg_do_nothing:
- \__str_convert_decode_:
- \exp_after:wN \__str_convert:wwwnn
- \tl_to_str:n {#6} /// \q_stop
- { encode } { escape }
- \use_ii_i:nn
- \__str_convert_encode_:
- \group_end:
- #2 #3 \g__str_result_tl
- }
-\cs_new_protected:Npn \__str_convert:wwwnn
- #1 / #2 // #3 \q_stop #4#5
- {
- \__str_convert:nnn {enc} {#4} {#1}
- \__str_convert:nnn {esc} {#5} {#2}
- \exp_args:Ncc \__str_convert:NNnNN
- { __str_convert_#4_#1: } { __str_convert_#5_#2: } {#2}
- }
-\cs_new_protected:Npn \__str_convert:NNnNN #1#2#3#4#5
- {
- \if_meaning:w #1 #5
- \tl_if_empty:nF {#3}
- { \__msg_kernel_error:nnx { str } { native-escaping } {#3} }
- #1
- \else:
- #4 #2 #1
- \fi:
- }
-\cs_new_protected:Npn \__str_convert:nnn #1#2#3
- {
- \cs_if_exist:cF { __str_convert_#2_#3: }
- {
- \exp_args:Nx \__str_convert:nnnn
- { \__str_convert_lowercase_alphanum:n {#3} }
- {#1} {#2} {#3}
- }
- }
-\cs_new_protected:Npn \__str_convert:nnnn #1#2#3#4
- {
- \cs_if_exist:cF { __str_convert_#3_#1: }
- {
- \prop_get:NnNF \g__str_alias_prop {#1} \l__str_internal_tl
- { \tl_set:Nn \l__str_internal_tl {#1} }
- \cs_if_exist:cF { __str_convert_#3_ \l__str_internal_tl : }
- {
- \file_if_exist:nTF { l3str-#2- \l__str_internal_tl .def }
- {
- \group_begin:
- \__str_load_catcodes:
- \file_input:n { l3str-#2- \l__str_internal_tl .def }
- \group_end:
- }
- {
- \tl_clear:N \l__str_internal_tl
- \__msg_kernel_error:nnxx { str } { unknown-#2 } {#4} {#1}
- }
- }
- \cs_if_exist:cF { __str_convert_#3_#1: }
- {
- \cs_gset_eq:cc { __str_convert_#3_#1: }
- { __str_convert_#3_ \l__str_internal_tl : }
- }
- }
- \cs_gset_eq:cc { __str_convert_#3_#4: } { __str_convert_#3_#1: }
- }
-\cs_new:Npn \__str_convert_lowercase_alphanum:n #1
- {
- \exp_after:wN \__str_convert_lowercase_alphanum_loop:N
- \tl_to_str:n {#1} { ? \__prg_break: }
- \__prg_break_point:
- }
-\cs_new:Npn \__str_convert_lowercase_alphanum_loop:N #1
- {
- \use_none:n #1
- \if_int_compare:w `#1 < \c_ninety_one
- \if_int_compare:w `#1 < \c_sixty_five
- \if_int_compare:w \c_one < 1#1 \exp_stop_f:
- #1
- \fi:
- \else:
- \__str_output_byte:n { `#1 + \c_thirty_two }
- \fi:
- \else:
- \if_int_compare:w `#1 < \c_one_hundred_twenty_three
- \if_int_compare:w `#1 < \c_ninety_seven
- \else:
- #1
- \fi:
- \fi:
- \fi:
- \__str_convert_lowercase_alphanum_loop:N
- }
-\cs_new_protected:Npn \__str_load_catcodes:
- {
- \char_set_catcode_escape:N \\
- \char_set_catcode_group_begin:N \{
- \char_set_catcode_group_end:N \}
- \char_set_catcode_math_toggle:N \$
- \char_set_catcode_alignment:N \&
- \char_set_catcode_parameter:N \#
- \char_set_catcode_math_superscript:N \^
- \char_set_catcode_ignore:N \ %
- \char_set_catcode_space:N \~
- \tl_map_function:nN { abcdefghijklmnopqrstuvwxyz_:ABCDEFILNPSTUX }
- \char_set_catcode_letter:N
- \tl_map_function:nN { 0123456789"'?*+-.(),`!/<>[];= }
- \char_set_catcode_other:N
- \char_set_catcode_comment:N \%
- \int_set:Nn \tex_endlinechar:D {32}
- }
-\pdftex_if_engine:TF
- { \cs_new_eq:NN \__str_filter_bytes:n \use:n }
- {
- \cs_new:Npn \__str_filter_bytes:n #1
- {
- \__str_filter_bytes_aux:N #1
- { ? \__prg_break: }
- \__prg_break_point:
- }
- \cs_new:Npn \__str_filter_bytes_aux:N #1
- {
- \use_none:n #1
- \if_int_compare:w `#1 < 256 \exp_stop_f:
- #1
- \else:
- \flag_raise:n { str_byte }
- \fi:
- \__str_filter_bytes_aux:N
- }
- }
-\pdftex_if_engine:TF
- { \cs_new_protected_nopar:Npn \__str_convert_unescape_: { } }
- {
- \cs_new_protected_nopar:Npn \__str_convert_unescape_:
- {
- \flag_clear:n { str_byte }
- \tl_gset:Nx \g__str_result_tl
- { \exp_args:No \__str_filter_bytes:n \g__str_result_tl }
- \__str_if_flag_error:nnx { str_byte } { non-byte } { bytes }
- }
- }
-\cs_new_eq:NN \__str_convert_unescape_bytes: \__str_convert_unescape_:
-\cs_new_protected_nopar:Npn \__str_convert_escape_: { }
-\cs_new_eq:NN \__str_convert_escape_bytes: \__str_convert_escape_:
-\cs_new_protected_nopar:Npn \__str_convert_decode_:
- { \__str_convert_gmap:N \__str_decode_native_char:N }
-\cs_new:Npn \__str_decode_native_char:N #1
- { #1 \s__tl \__int_value:w `#1 \s__tl }
-\group_begin:
- \char_set_catcode_other:n { 0 }
- \pdftex_if_engine:TF
- {
- \cs_new_protected_nopar:Npn \__str_convert_encode_:
- {
- \flag_clear:n { str_error }
- \__str_convert_gmap_internal:N \__str_encode_native_char:n
- \__str_if_flag_error:nnx { str_error }
- { pdfTeX-native-overflow } { }
- }
- \cs_new:Npn \__str_encode_native_char:n #1
- {
- \if_int_compare:w #1 < \c_two_hundred_fifty_six
- \__str_output_byte:n {#1}
- \else:
- \flag_raise:n { str_error }
- ?
- \fi:
- }
- \__msg_kernel_new:nnnn { str } { pdfTeX-native-overflow }
- { Character~code~too~large~for~pdfTeX. }
- {
- The~pdfTeX~engine~only~supports~8-bit~characters:~
- valid~character~codes~are~in~the~range~[0,255].~
- To~manipulate~arbitrary~Unicode,~use~LuaTeX~or~XeTeX.
- }
- }
- {
- \cs_new_protected_nopar:Npn \__str_convert_encode_:
- {
- \int_zero:N \l__tl_build_offset_int
- \__tl_gbuild_x:Nw \g__str_result_tl
- \exp_after:wN \__str_encode_native_loop:w
- \g__str_result_tl \s__tl { \q_stop \__prg_break: } \s__tl
- \__prg_break_point:
- \__tl_build_end:
- }
- \cs_new_protected:Npn \__str_encode_native_loop:w #1 \s__tl #2 \s__tl
- {
- \use_none_delimit_by_q_stop:w #2 \q_stop
- \tex_lccode:D \l__str_internal_int \__int_eval:w #2 \__int_eval_end:
- \tl_to_lowercase:n { \__tl_build_one:n { ^^@ } }
- \__str_encode_native_loop:w
- }
- }
-\group_end:
-\cs_new_protected:Npn \__str_declare_eight_bit_encoding:nnn #1#2#3
- {
- \tl_set:Nn \l__str_internal_tl {#1}
- \cs_new_protected_nopar:cpn { __str_convert_decode_#1: }
- { \__str_convert_decode_eight_bit:n {#1} }
- \cs_new_protected_nopar:cpn { __str_convert_encode_#1: }
- { \__str_convert_encode_eight_bit:n {#1} }
- \tl_const:cn { c__str_encoding_#1_tl } {#2}
- \tl_const:cn { c__str_encoding_#1_missing_tl } {#3}
- }
-\cs_new_protected:Npn \__str_convert_decode_eight_bit:n #1
- {
- \group_begin:
- \int_zero:N \l__str_internal_int
- \exp_last_unbraced:Nx \__str_decode_eight_bit_load:nn
- { \tl_use:c { c__str_encoding_#1_tl } }
- { \q_stop \__prg_break: } { }
- \__prg_break_point:
- \exp_last_unbraced:Nx \__str_decode_eight_bit_load_missing:n
- { \tl_use:c { c__str_encoding_#1_missing_tl } }
- { \q_stop \__prg_break: }
- \__prg_break_point:
- \flag_clear:n { str_error }
- \__str_convert_gmap:N \__str_decode_eight_bit_char:N
- \__str_if_flag_error:nnx { str_error } { decode-8-bit } {#1}
- \group_end:
- }
-\cs_new_protected:Npn \__str_decode_eight_bit_load:nn #1#2
- {
- \use_none_delimit_by_q_stop:w #1 \q_stop
- \tex_dimen:D "#1 = \l__str_internal_int sp \scan_stop:
- \tex_skip:D \l__str_internal_int = "#1 sp \scan_stop:
- \tex_toks:D \l__str_internal_int \exp_after:wN { \__int_value:w "#2 }
- \tex_advance:D \l__str_internal_int \c_one
- \__str_decode_eight_bit_load:nn
- }
-\cs_new_protected:Npn \__str_decode_eight_bit_load_missing:n #1
- {
- \use_none_delimit_by_q_stop:w #1 \q_stop
- \tex_dimen:D "#1 = \l__str_internal_int sp \scan_stop:
- \tex_skip:D \l__str_internal_int = "#1 sp \scan_stop:
- \tex_toks:D \l__str_internal_int \exp_after:wN
- { \int_use:N \c__str_replacement_char_int }
- \tex_advance:D \l__str_internal_int \c_one
- \__str_decode_eight_bit_load_missing:n
- }
-\cs_new:Npn \__str_decode_eight_bit_char:N #1
- {
- #1 \s__tl
- \if_int_compare:w \tex_dimen:D `#1 < \l__str_internal_int
- \if_int_compare:w \tex_skip:D \tex_dimen:D `#1 = `#1 \exp_stop_f:
- \tex_the:D \tex_toks:D \tex_dimen:D
- \fi:
- \fi:
- \__int_value:w `#1 \s__tl
- }
-\cs_new_protected:Npn \__str_convert_encode_eight_bit:n #1
- {
- \group_begin:
- \int_zero:N \l__str_internal_int
- \exp_last_unbraced:Nx \__str_encode_eight_bit_load:nn
- { \tl_use:c { c__str_encoding_#1_tl } }
- { \q_stop \__prg_break: } { }
- \__prg_break_point:
- \flag_clear:n { str_error }
- \__str_convert_gmap_internal:N \__str_encode_eight_bit_char:n
- \__str_if_flag_error:nnx { str_error } { encode-8-bit } {#1}
- \group_end:
- }
-\cs_new_protected:Npn \__str_encode_eight_bit_load:nn #1#2
- {
- \use_none_delimit_by_q_stop:w #1 \q_stop
- \tex_dimen:D "#2 = \l__str_internal_int sp \scan_stop:
- \tex_skip:D \l__str_internal_int = "#2 sp \scan_stop:
- \exp_args:NNf \tex_toks:D \l__str_internal_int
- { \__str_output_byte:n { "#1 } }
- \tex_advance:D \l__str_internal_int \c_one
- \__str_encode_eight_bit_load:nn
- }
-\cs_new:Npn \__str_encode_eight_bit_char:n #1
- {
- \if_int_compare:w #1 > \c_max_register_int
- \flag_raise:n { str_error }
- \else:
- \if_int_compare:w \tex_dimen:D #1 < \l__str_internal_int
- \if_int_compare:w \tex_skip:D \tex_dimen:D #1 = #1 \exp_stop_f:
- \tex_the:D \tex_toks:D \tex_dimen:D #1 \exp_stop_f:
- \exp_after:wN \exp_after:wN \exp_after:wN \use_none:nn
- \fi:
- \fi:
- \__str_encode_eight_bit_char_aux:n {#1}
- \fi:
- }
-\cs_new:Npn \__str_encode_eight_bit_char_aux:n #1
- {
- \if_int_compare:w #1 < \c_two_hundred_fifty_six
- \__str_output_byte:n {#1}
- \else:
- \flag_raise:n { str_error }
- \fi:
- }
-\__msg_kernel_new:nnn { str } { unknown-esc }
- { Escaping~scheme~'#1'~(filtered:~'#2')~unknown. }
-\__msg_kernel_new:nnn { str } { unknown-enc }
- { Encoding~scheme~'#1'~(filtered:~'#2')~unknown. }
-\__msg_kernel_new:nnnn { str } { native-escaping }
- { The~'native'~encoding~scheme~does~not~support~any~escaping. }
- {
- Since~native~strings~do~not~consist~in~bytes,~
- none~of~the~escaping~methods~make~sense.~
- The~specified~escaping,~'#1',~will be ignored.
- }
-\__msg_kernel_new:nnn { str } { file-not-found }
- { File~'l3str-#1.def'~not~found. }
-\pdftex_if_engine:F
- {
- \__msg_kernel_new:nnnn { str } { non-byte }
- { String~invalid~in~escaping~'#1':~it~may~only~contain~bytes. }
- {
- Some~characters~in~the~string~you~asked~to~convert~are~not~
- 8-bit~characters.~Perhaps~the~string~is~a~'native'~Unicode~string?~
- If~it~is,~try~using\\
- \\
- \iow_indent:n
- {
- \iow_char:N\\str_set_convert:Nnnn \\
- \ \ <str~var>~\{~<string>~\}~\{~native~\}~\{~<target~encoding>~\}
- }
- }
- }
-\__msg_kernel_new:nnnn { str } { decode-8-bit }
- { Invalid~string~in~encoding~'#1'. }
- {
- LaTeX~came~across~a~byte~which~is~not~defined~to~represent~
- any~character~in~the~encoding~'#1'.
- }
-\__msg_kernel_new:nnnn { str } { encode-8-bit }
- { Unicode~string~cannot~be~converted~to~encoding~'#1'. }
+\cs_new:Npn \str_substr:Nnn #1 { \__str_substr:nnn { \str_range:Nnn #1 } }
+\cs_new:Npn \str_substr:nnn #1 { \__str_substr:nnn { \str_range:nnn {#1} } }
+\cs_new:Npn \str_substr_ignore_spaces:nnn #1
+ { \__str_substr:nnn { \str_range_ignore_spaces:nnn {#1} } }
+\cs_new:Npn \__str_substr:nnn #1#2#3
{
- The~encoding~'#1'~only~contains~a~subset~of~all~Unicode~characters.~
- LaTeX~was~asked~to~convert~a~string~to~that~encoding,~but~that~
- string~contains~a~character~that~'#1'~does~not~support.
+ \tl_if_empty:nTF {#2}
+ { \tl_if_empty:nTF {#3} { #1 { 1} { -1 } } { #1 { 1} {#3} } }
+ { \tl_if_empty:nTF {#3} { #1 {#2} { -1 } } { #1 {#2} {#3} } }
}
-\cs_new_eq:NN \str_length:N \str_count:N
-\cs_new_eq:NN \str_length:n \str_count:n
-\cs_new_eq:NN \str_length_ignore_spaces:n \str_count_ignore_spaces:n
+\cs_new_eq:NN \c_lbrace_str \c_left_brace_str
+\cs_new_eq:NN \c_rbrace_str \c_right_brace_str
%%
%%
%% End of file `l3str.sty'.
diff --git a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3tl-analysis.sty b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3tl-analysis.sty
index 134eeed9815..8598a3df85c 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/l3str/l3tl-analysis.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/l3str/l3tl-analysis.sty
@@ -104,7 +104,7 @@
\cs_new_protected:Npn \__tl_analysis_disable_loop:N #1
{
\tex_lccode:D \c_zero `#1 ~
- \tl_to_lowercase:n { \tex_let:D ^^@ } \c_undefined:D
+ \tl_to_lowercase:n { \tex_let:D ^^@ } \tex_undefined:D
\__tl_analysis_disable_loop:N
}
\group_end:
@@ -269,7 +269,7 @@
{
\cs_new:Npn \__tl_analysis_b_char:Nww #1
{
- \if_meaning:w #1 \c_undefined:D ? \else:
+ \if_meaning:w #1 \tex_undefined:D ? \else:
\if_catcode:w #1 \c_catcode_other_token C \else:
\if_catcode:w #1 \c_catcode_letter_token B \else:
\if_catcode:w #1 \c_math_toggle_token 3 \else:
@@ -439,7 +439,7 @@
{ \str_count:n { #1 ~ ( #4 #2 #3 ) } }
> { \l_iow_line_count_int - \c_three }
{
- \str_substr:nnn { #1 ~ ( #4 #2 #3 ) } \c_one
+ \str_range:nnn { #1 ~ ( #4 #2 #3 ) } \c_one
{
\l_iow_line_count_int - \c_three
- \str_count:N \c__tl_analysis_show_etc_str
diff --git a/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty b/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
index a16079a1428..a05256b4f44 100644
--- a/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
+++ b/Master/texmf-dist/tex/latex/l3experimental/xgalley/l3galley.sty
@@ -48,7 +48,7 @@
%% -----------------------------------------------------------------------
%%
\RequirePackage{xparse}
-\GetIdInfo$Id: l3galley.dtx 4388 2012-12-20 22:15:35Z joseph $
+\GetIdInfo$Id: l3galley.dtx 4402 2013-01-08 08:59:44Z bruno $
{L3 Experimental galley code}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
index 653499b0ca4..7108cae2f3e 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
@@ -13,7 +13,7 @@
%%
%% Do not distribute a modified version of this file.
%%
-%% File: expl3.dtx Copyright (C) 1990-2012 The LaTeX3 Project
+%% File: expl3.dtx Copyright (C) 1990-2013 The 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
@@ -60,8 +60,8 @@
}
\def\ExplFileName{expl3}
\def\ExplFileDescription{L3 Experimental code bundle wrapper}
-\def\ExplFileDate{2012/12/21}
-\def\ExplFileVersion{4390}
+\def\ExplFileDate{2013/03/12}
+\def\ExplFileVersion{4467}
\RequirePackage{etex}
\relax
\reserveinserts{32}
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3basics.sty b/Master/texmf-dist/tex/latex/l3kernel/l3basics.sty
index bc53602f68f..52e7a7f3735 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3basics.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3basics.sty
@@ -13,7 +13,7 @@
%%
%% Do not distribute a modified version of this file.
%%
-%% File: l3basics.dtx Copyright (C) 1990-2012 The LaTeX3 project
+%% File: l3basics.dtx Copyright (C) 1990-2013 The 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
@@ -46,7 +46,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3bootstrap}
-\GetIdInfo$Id: l3basics.dtx 4339 2012-11-24 19:16:43Z joseph $
+\GetIdInfo$Id: l3basics.dtx 4428 2013-01-10 13:23:29Z bruno $
{L3 Basic definitions}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -562,7 +562,7 @@
\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_undefine:N #1
- { \cs_gset_eq:NN #1 \c_undefined:D }
+ { \cs_gset_eq:NN #1 \tex_undefined:D }
\cs_new_protected:Npn \cs_undefine:c #1
{
\if_cs_exist:w #1 \cs_end:
@@ -570,7 +570,7 @@
\else:
\exp_after:wN \use_none:n
\fi:
- { \cs_gset_eq:cN {#1} \c_undefined:D }
+ { \cs_gset_eq:cN {#1} \tex_undefined:D }
}
\cs_set_protected:Npn \__cs_parm_from_arg_count:nnF #1#2
{
@@ -845,11 +845,6 @@
\cs_new_eq:NN \__prg_break_point: \prg_do_nothing:
\cs_new:Npn \__prg_break: #1 \__prg_break_point: { }
\cs_new:Npn \__prg_break:n #1#2 \__prg_break_point: {#1}
-\cs_new_eq:NN \str_if_eq_p:xx \str_if_eq_x_p:nn
-\cs_new_eq:NN \str_if_eq:xxT \str_if_eq_x:nnT
-\cs_new_eq:NN \str_if_eq:xxF \str_if_eq_x:nnF
-\cs_new_eq:NN \str_if_eq:xxTF \str_if_eq_x:nnTF
-\cs_new_eq:NN \chk_if_free_cs:N \__chk_if_free_cs:N
%%
%%
%% End of file `l3basics.sty'.
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3bootstrap.sty b/Master/texmf-dist/tex/latex/l3kernel/l3bootstrap.sty
index 263ab7bf875..89dd24ceae5 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3bootstrap.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3bootstrap.sty
@@ -13,7 +13,7 @@
%%
%% Do not distribute a modified version of this file.
%%
-%% File: l3bootstrap.dtx Copyright (C) 2011-2012 The LaTeX3 project
+%% File: l3bootstrap.dtx Copyright (C) 2011-2013 The 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
@@ -102,7 +102,7 @@
{%
\def\ExplFileDate{#1/#2/#3}%
}
-\GetIdInfo$Id: l3bootstrap.dtx 3991 2012-07-16 19:00:35Z joseph $
+\GetIdInfo$Id: l3bootstrap.dtx 4420 2013-01-08 20:00:04Z joseph $
{L3 Bootstrap code}
\ProvidesPackage{l3bootstrap}
[%
@@ -255,20 +255,6 @@
}%
}%
}
-\protected\edef\ExplSyntaxNamesOn
- {%
- \expandafter\noexpand
- \csname\detokenize{char_set_catcode_letter:n}\endcsname{58}%
- \expandafter\noexpand
- \csname\detokenize{char_set_catcode_letter:n}\endcsname{95}%
- }
-\protected\edef\ExplSyntaxNamesOff
- {%
- \expandafter\noexpand
- \csname\detokenize{char_set_catcode_other:n}\endcsname{58}%
- \expandafter\noexpand
- \csname\detokenize{char_set_catcode_math_subscript:n}\endcsname{95}%
- }
%%
%%
%% End of file `l3bootstrap.sty'.
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3box.sty b/Master/texmf-dist/tex/latex/l3kernel/l3box.sty
index 56016c45566..af3070bcaaa 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3box.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3box.sty
@@ -46,7 +46,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3bootstrap}
-\GetIdInfo$Id: l3box.dtx 4347 2012-12-08 09:11:29Z joseph $
+\GetIdInfo$Id: l3box.dtx 4411 2013-01-08 12:21:52Z bruno $
{L3 Experimental boxes}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -81,14 +81,8 @@
{ \tex_global:D \box_set_eq_clear:NN }
\cs_generate_variant:Nn \box_set_eq_clear:NN { c , Nc , cc }
\cs_generate_variant:Nn \box_gset_eq_clear:NN { c , Nc , cc }
-\cs_new_eq:NN \box_if_exist:NTF \cs_if_exist:NTF
-\cs_new_eq:NN \box_if_exist:NT \cs_if_exist:NT
-\cs_new_eq:NN \box_if_exist:NF \cs_if_exist:NF
-\cs_new_eq:NN \box_if_exist_p:N \cs_if_exist_p:N
-\cs_new_eq:NN \box_if_exist:cTF \cs_if_exist:cTF
-\cs_new_eq:NN \box_if_exist:cT \cs_if_exist:cT
-\cs_new_eq:NN \box_if_exist:cF \cs_if_exist:cF
-\cs_new_eq:NN \box_if_exist_p:c \cs_if_exist_p:c
+\prg_new_eq_conditional:NNn \box_if_exist:N \cs_if_exist:N { TF , T , F , p }
+\prg_new_eq_conditional:NNn \box_if_exist:c \cs_if_exist:c { TF , T , F , p }
\cs_new_eq:NN \box_ht:N \tex_ht:D
\cs_new_eq:NN \box_dp:N \tex_dp:D
\cs_new_eq:NN \box_wd:N \tex_wd:D
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3candidates.sty b/Master/texmf-dist/tex/latex/l3kernel/l3candidates.sty
index 65919abf3ec..058849f5f60 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3candidates.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3candidates.sty
@@ -47,7 +47,7 @@
%% -----------------------------------------------------------------------
%%
\RequirePackage{l3bootstrap}
-\GetIdInfo$Id: l3candidates.dtx 4383 2012-12-20 15:10:48Z bruno $
+\GetIdInfo$Id: l3candidates.dtx 4466 2013-03-09 14:58:43Z joseph $
{L3 Experimental additions to l3kernel}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -785,12 +785,14 @@
\cs_new:Npn \prop_map_tokens:Nn #1#2
{
\exp_last_unbraced:Nno \__prop_map_tokens:nwn {#2} #1
- \q_recursion_tail \q__prop { }
+ \s__prop \q_recursion_tail \s__prop { }
\__prg_break_point:Nn \prop_map_break: { }
}
-\cs_new:Npn \__prop_map_tokens:nwn #1 \q__prop #2 \q__prop #3
+\cs_new:Npn \__prop_map_tokens:nwn #1 \s__prop #2 \s__prop #3
{
- \__quark_if_recursion_tail_break:NN #2 \prop_map_break:
+ \if_meaning:w \q_recursion_tail #2
+ \exp_after:wN \prop_map_break:
+ \fi:
\use:n {#1} {#2} {#3}
\__prop_map_tokens:nwn {#1}
}
@@ -1129,11 +1131,11 @@
\exp_after:wN \__peek_false:w
\fi:
}
- \cs_new_protected_nopar:Npn \__peek_N_type:w #1 OUTER #2 \q_mark #3
+ \cs_new_protected:Npn \__peek_N_type:w #1 OUTER #2 \q_mark #3
{ #3 {#1} {#2} }
}
\group_end:
-\cs_new_protected_nopar:Npn \__peek_N_type_aux:nnw #1 #2 #3 \fi:
+\cs_new_protected:Npn \__peek_N_type_aux:nnw #1 #2 #3 \fi:
{
\fi:
\tl_if_in:noTF {#1} { \tl_to_str:n {ma} }
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3clist.sty b/Master/texmf-dist/tex/latex/l3kernel/l3clist.sty
index 6edd2295361..c06c5498149 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3clist.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3clist.sty
@@ -15,7 +15,7 @@
%%
%% File: l3clist.dtx Copyright (C) 2004-2011 Frank Mittelbach,
%% The LaTeX3 project
-%% (C) 2012 The LaTeX3 Project
+%% (C) 2012,2013 The 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{l3bootstrap}
-\GetIdInfo$Id: l3clist.dtx 4339 2012-11-24 19:16:43Z joseph $
+\GetIdInfo$Id: l3clist.dtx 4414 2013-01-08 12:32:12Z bruno $
{L3 Comma separated lists}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -89,14 +89,8 @@
}
\cs_generate_variant:Nn \clist_concat:NNN { ccc }
\cs_generate_variant:Nn \clist_gconcat:NNN { ccc }
-\cs_new_eq:NN \clist_if_exist:NTF \cs_if_exist:NTF
-\cs_new_eq:NN \clist_if_exist:NT \cs_if_exist:NT
-\cs_new_eq:NN \clist_if_exist:NF \cs_if_exist:NF
-\cs_new_eq:NN \clist_if_exist_p:N \cs_if_exist_p:N
-\cs_new_eq:NN \clist_if_exist:cTF \cs_if_exist:cTF
-\cs_new_eq:NN \clist_if_exist:cT \cs_if_exist:cT
-\cs_new_eq:NN \clist_if_exist:cF \cs_if_exist:cF
-\cs_new_eq:NN \clist_if_exist_p:c \cs_if_exist_p:c
+\prg_new_eq_conditional:NNn \clist_if_exist:N \cs_if_exist:N { TF , T , F , p }
+\prg_new_eq_conditional:NNn \clist_if_exist:c \cs_if_exist:c { TF , T , F , p }
\cs_new:Npn \__clist_trim_spaces_generic:nw #1#2 ,
{
\__tl_trim_spaces:nn {#2}
@@ -432,15 +426,6 @@
\clist_new:N \l_tmpb_clist
\clist_new:N \g_tmpa_clist
\clist_new:N \g_tmpb_clist
-\prg_new_eq_conditional:NNn \clist__if_eq:NN \tl_if_eq:NN { p , T , F , TF }
-\prg_new_eq_conditional:NNn \clist_if_eq:Nc \tl_if_eq:Nc { p , T , F , TF }
-\prg_new_eq_conditional:NNn \clist_if_eq:cN \tl_if_eq:cN { p , T , F , TF }
-\prg_new_eq_conditional:NNn \clist_if_eq:cc \tl_if_eq:cc { p , T , F , TF }
-\cs_new_eq:NN \clist_length:N \clist_count:N
-\cs_new_eq:NN \clist_length:n \clist_count:c
-\cs_new_eq:NN \clist_length:c \clist_count:n
-\cs_new_eq:NN \clist_use:N \tl_use:N
-\cs_new_eq:NN \clist_use:c \tl_use:c
%%
%%
%% End of file `l3clist.sty'.
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
index 4aa57de4d9d..d3dd89238cb 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
@@ -4,8 +4,7 @@
%%
%% The original source files were:
%%
-%% l3doc.dtx (with options: `class,cfg')
-%%
+%% l3doc.dtx (with options: `class')
%%
%% EXPERIMENTAL CODE
%%
@@ -14,7 +13,6 @@
%%
%% Do not distribute a modified version of this file.
%%
-%%
%% File: l3doc.dtx Copyright (C) 1990-2012 The LaTeX3 project
%%
%% It may be distributed and/or modified under the conditions of the
@@ -52,7 +50,7 @@
\let \fileversionOld \ExplFileVersion
\let \filedescriptionOld \ExplFileDescription
\RequirePackage{expl3,xparse,calc}
-\GetIdInfo$Id: l3doc.dtx 4267 2012-11-04 19:42:13Z joseph $
+\GetIdInfo$Id: l3doc.dtx 4442 2013-01-13 08:56:27Z bruno $
{L3 Experimental documentation class}
\ProvidesExplClass
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -960,6 +958,7 @@
{
\seq_use:Nnnn \g__codedoc_tmpa_seq
{ \,~and~ } { \,,~ } { \,,~and~ }
+ \@.
}
{ \seq_item:Nn \g__codedoc_tmpa_seq {1}\,~and~others. }
@@ -1458,51 +1457,6 @@
\DisableCrossrefs
\OnlyDescription
}
-\tl_new:N \Team
-\tl_set:Nn \Team
- {
- The~\LaTeX3~Project\thanks
- {
- Frank~Mittelbach,~Denys~Duchier,~Chris~Rowley,~
- Rainer~Sch\"opf,~Johannes~Braams,~Michael~Downes,~
- David~Carlisle,~Alan~Jeffrey,~Morten~H\o{}gholm,~Thomas~Lotze,~
- Javier~Bezos,~Will~Robertson,~Joseph~Wright,~Bruno~Le~Floch
- }
- }
-\NewDocumentCommand{\ExplMakeTitle}{mm}
- {
- \title
- {
- The~\pkg{#1}~package \\ #2
- \thanks
- {
- This~file~describes~v\ExplFileVersion,~
- last~revised~\ExplFileDate.
- }
- }
- \author
- {
- The~\LaTeX3~Project\thanks{E-mail:~
- \href{mailto:latex-l@listserv.uni-heidelberg.de}
- {latex-l@listserv.uni-heidelberg.de}}
- }
- \date{Released~\ExplFileDate}
- \maketitle
- }
-\DeclareDocumentCommand\ie{}{\emph{i.e.}}
-\DeclareDocumentCommand\eg{}{\emph{e.g.}}
-\DeclareDocumentCommand\Ie{}{\emph{I.e.}}
-\DeclareDocumentCommand\Eg{}{\emph{E.g.}}
-\AtBeginDocument
- {
- \clist_map_inline:nn
- {
- asin, acos, atan, acot,
- asinh, acosh, atanh, acoth, round, floor, ceil
- }
- { \exp_args:Nc \DeclareMathOperator{#1}{#1} }
- }
-\NewDocumentCommand { \nan } { } { \text { \texttt { nan } } }
%%
%%
%% End of file `l3doc.cls'.
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3expan.sty b/Master/texmf-dist/tex/latex/l3kernel/l3expan.sty
index 6dceea954ad..efd3425ec59 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3expan.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3expan.sty
@@ -46,7 +46,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3bootstrap}
-\GetIdInfo$Id: l3expan.dtx 4149 2012-08-28 10:50:40Z bruno $
+\GetIdInfo$Id: l3expan.dtx 4458 2013-02-03 15:49:37Z bruno $
{L3 Argument expansion}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3file.sty b/Master/texmf-dist/tex/latex/l3kernel/l3file.sty
index b1a119b7fd3..f86225c08d8 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3file.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3file.sty
@@ -13,7 +13,7 @@
%%
%% Do not distribute a modified version of this file.
%%
-%% File: l3file.dtx Copyright (C) 1990-2012 The LaTeX3 Project
+%% File: l3file.dtx Copyright (C) 1990-2013 The 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
@@ -46,7 +46,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3bootstrap}
-\GetIdInfo$Id: l3file.dtx 4377 2012-12-20 11:13:29Z bruno $
+\GetIdInfo$Id: l3file.dtx 4446 2013-01-14 00:03:17Z bruno $
{L3 File and I/O operations}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -182,33 +182,12 @@
{ \seq_gput_right:No \g__file_record_seq { \tl_to_str:n {#1} } }
}
\cs_new_eq:NN \c_term_ior \c_sixteen
-\tl_const:Nn \c__ior_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
- }
+\seq_new:N \g__ior_streams_seq
+\tl_new:N \l__ior_stream_tl
\prop_new:N \g__ior_streams_prop
-\prop_put:Nnn \g__ior_streams_prop { 0 } { LaTeX2e~reserved }
-\int_new:N \l__ior_stream_int
-\cs_set_eq:NN \__ior_new:N \newread
-\cs_generate_variant:Nn \__ior_new:N { c }
+\prop_gput:Nnn \g__ior_streams_prop { 0 } { LaTeX2e~reserved }
\cs_new_protected:Npn \ior_new:N #1 { \cs_new_eq:NN #1 \c_term_ior }
\cs_generate_variant:Nn \ior_new:N { c }
-\ior_new:N \g__file_internal_ior
\cs_new_protected:Npn \ior_open:Nn #1#2
{ \__file_name_sanitize:nn {#2} { \__ior_open_aux:Nn #1 } }
\cs_generate_variant:Nn \ior_open:Nn { c }
@@ -220,7 +199,10 @@
{ \__ior_open:No #1 \l__file_internal_name_tl }
}
\prg_new_protected_conditional:Npnn \ior_open:Nn #1#2 { T , F , TF }
- { \__file_name_sanitize:nn {#2} { \__ior_open_aux:NnTF #1 } }
+ { \__file_name_sanitize:nn {#2} { \__ior_open:NnTF #1 } }
+\cs_generate_variant:Nn \ior_open:NnT { c }
+\cs_generate_variant:Nn \ior_open:NnF { c }
+\cs_generate_variant:Nn \ior_open:NnTF { c }
\cs_new_protected:Npn \__ior_open_aux:NnTF #1#2
{
\file_add_path:nN {#2} \l__file_internal_name_tl
@@ -231,71 +213,33 @@
\prg_return_true:
}
}
-\cs_generate_variant:Nn \ior_open:NnT { c }
-\cs_generate_variant:Nn \ior_open:NnF { c }
-\cs_generate_variant:Nn \ior_open:NnTF { c }
\cs_new_protected:Npn \__ior_open:Nn #1#2
{
\ior_close:N #1
- \int_set_eq:NN \l__ior_stream_int \c_sixteen
- \tl_map_function:NN \c__ior_streams_tl \__ior_alloc:n
- \int_compare:nNnTF \l__ior_stream_int = \c_sixteen
- { \__msg_kernel_fatal:nn { kernel } { input-streams-exhausted } }
+ \seq_gpop:NNTF \g__ior_streams_seq \l__ior_stream_tl
+ { \__ior_open_stream:Nn #1 {#2} }
{
- \__ior_alloc:N #1
- \prop_gput:NVn \g__ior_streams_prop \l__ior_stream_int {#2}
- \tex_openin:D #1#2 \scan_stop:
+ \newread #1
+ \tl_set:Nx \l__ior_stream_tl { \int_eval:n {#1} }
+ \__ior_open_stream:Nn #1 {#2}
}
}
\cs_generate_variant:Nn \__ior_open:Nn { No }
-\cs_new_protected:Npn \__ior_alloc:n #1
+\cs_new_protected:Npn \__ior_open_stream:Nn #1#2
{
- \prop_if_in:NnF \g__ior_streams_prop {#1}
- {
- \int_set:Nn \l__ior_stream_int {#1}
- \tl_map_break:
- }
- }
-\ior_new:N \g__ior_internal_ior
-\cs_new_protected:Npn \__ior_alloc:N #1
- {
- \cs_if_exist:cF { g_ior_ \int_use:N \l__ior_stream_int _ior }
- {
- \__ior_alloc:
- \int_compare:nNnT \l__ior_stream_int = \c_sixteen
- {
- \__ior_new:N \g__ior_internal_ior
- \int_set:Nn \l__ior_stream_int { \g__ior_internal_ior }
- \cs_gset_eq:cN
- { g_ior_ \int_use:N \l__ior_stream_int _ior } \g__ior_internal_ior
- }
- }
- \cs_gset_eq:Nc #1 { g_ior_ \int_use:N \l__ior_stream_int _ior }
- }
-\cs_new_protected_nopar:Npn \__ior_alloc:
- {
- \int_incr:N \l__ior_stream_int
- \int_compare:nNnT \l__ior_stream_int < \c_sixteen
- {
- \cs_if_exist:cTF { g_ior_ \int_use:N \l__ior_stream_int _ior }
- {
- \prop_if_in:NVT \g__ior_streams_prop \l__ior_stream_int
- { \__ior_alloc: }
- }
- { \__ior_alloc: }
- }
+ \tex_global:D \tex_chardef:D #1 = \l__ior_stream_tl \scan_stop:
+ \prop_gput:NVn \g__ior_streams_prop #1 {#2}
+ \tex_openin:D #1 #2 \scan_stop:
}
\cs_new_protected:Npn \ior_close:N #1
{
- \__chk_if_exist_cs:N #1
- \int_compare:nNnF #1 < \c_zero
+ \int_compare:nT { \c_minus_one < #1 < \c_sixteen }
{
- \int_compare:nNnF #1 > \c_fifteen
- {
- \tex_closein:D #1
- \prop_gremove:NV \g__ior_streams_prop #1
- \cs_gset_eq:NN #1 \c_term_ior
- }
+ \tex_closein:D #1
+ \prop_gremove:NV \g__ior_streams_prop #1
+ \seq_if_in:NVF \g__ior_streams_seq #1
+ { \seq_gpush:NV \g__ior_streams_seq #1 }
+ \cs_gset_eq:NN #1 \c_term_ior
}
}
\cs_generate_variant:Nn \ior_close:N { c }
@@ -337,16 +281,15 @@
\int_set:Nn \tex_endlinechar:D { \int_use:N \tex_endlinechar:D }
}
}
+\ior_new:N \g__file_internal_ior
\cs_new_eq:NN \c_log_iow \c_minus_one
\cs_new_eq:NN \c_term_iow \c_sixteen
-\cs_new_eq:NN \c__iow_streams_tl \c__ior_streams_tl
+\seq_new:N \g__iow_streams_seq
+\tl_new:N \l__iow_stream_tl
\prop_new:N \g__iow_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 }
-\cs_new_eq:NN \l__iow_stream_int \l__ior_stream_int
-\cs_set_eq:NN \__iow_new:N \newwrite
-\cs_generate_variant:Nn \__iow_new:N { c }
\cs_new_protected:Npn \iow_new:N #1 { \cs_new_eq:NN #1 \c_term_iow }
\cs_generate_variant:Nn \iow_new:N { c }
\cs_new_protected:Npn \iow_open:Nn #1#2
@@ -355,64 +298,30 @@
\cs_new_protected:Npn \__iow_open:Nn #1#2
{
\iow_close:N #1
- \int_set_eq:NN \l__iow_stream_int \c_sixteen
- \tl_map_function:NN \c__iow_streams_tl \__iow_alloc:n
- \int_compare:nNnTF \l__iow_stream_int = \c_sixteen
- { \__msg_kernel_fatal:nn { kernel } { output-streams-exhausted } }
- {
- \__iow_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_new_protected:Npn \__iow_alloc:n #1
- {
- \prop_if_in:NnF \g__iow_streams_prop {#1}
- {
- \int_set:Nn \l__iow_stream_int {#1}
- \tl_map_break:
- }
- }
-\iow_new:N \g__iow_internal_iow
-\cs_new_protected:Npn \__iow_alloc:N #1
- {
- \cs_if_exist:cF { g_iow_ \int_use:N \l__iow_stream_int _iow }
+ \seq_gpop:NNTF \g__iow_streams_seq \l__iow_stream_tl
+ { \__iow_open_stream:Nn #1 {#2} }
{
- \__iow_alloc:
- \int_compare:nNnT \l__iow_stream_int = \c_sixteen
- {
- \__iow_new:N \g__iow_internal_iow
- \int_set:Nn \l__iow_stream_int { \g__iow_internal_iow }
- \cs_gset_eq:cN
- { g_iow_ \int_use:N \l__iow_stream_int _iow } \g__iow_internal_iow
- }
+ \newwrite #1
+ \tl_set:Nx \l__iow_stream_tl { \int_eval:n {#1} }
+ \__iow_open_stream:Nn #1 {#2}
}
- \cs_gset_eq:Nc #1 { g_iow_ \int_use:N \l__iow_stream_int _iow }
}
-\cs_new_protected_nopar:Npn \__iow_alloc:
+\cs_generate_variant:Nn \__iow_open:Nn { No }
+\cs_new_protected:Npn \__iow_open_stream:Nn #1#2
{
- \int_incr:N \l__iow_stream_int
- \int_compare:nNnT \l__iow_stream_int < \c_sixteen
- {
- \cs_if_exist:cTF { g_iow_ \int_use:N \l__iow_stream_int _iow }
- {
- \prop_if_in:NVT \g__iow_streams_prop \l__iow_stream_int
- { \__iow_alloc: }
- }
- { \__iow_alloc: }
- }
+ \tex_global:D \tex_chardef:D #1 = \l__iow_stream_tl \scan_stop:
+ \prop_gput:NVn \g__iow_streams_prop #1 {#2}
+ \tex_immediate:D \tex_openout:D #1 #2 \scan_stop:
}
\cs_new_protected:Npn \iow_close:N #1
{
- \__chk_if_exist_cs:N #1
- \int_compare:nNnF #1 < \c_zero
+ \int_compare:nT { \c_minus_one < #1 < \c_sixteen }
{
- \int_compare:nNnF #1 > \c_fifteen
- {
- \tex_immediate:D \tex_closeout:D #1
- \prop_gremove:NV \g__iow_streams_prop #1
- \cs_gset_eq:NN #1 \c_term_iow
- }
+ \tex_immediate:D \tex_closeout:D #1
+ \prop_gremove:NV \g__iow_streams_prop #1
+ \seq_if_in:NVF \g__iow_streams_seq #1
+ { \seq_gpush:NV \g__iow_streams_seq #1 }
+ \cs_gset_eq:NN #1 \c_term_ior
}
}
\cs_generate_variant:Nn \iow_close:N { c }
@@ -634,9 +543,6 @@
Spaces~are~not~permitted~in~files~loaded~by~LaTeX: \\
Further~errors~may~follow!
}
-\cs_new_protected:Npn \iow_wrap:xnnnN #1#2#3#4#5
- { \iow_wrap:nnnN {#1} {#2} {#4} #5 }
-\cs_new_eq:NN \l_iow_line_length_int \l_iow_line_count_int
\cs_new_eq:NN \ior_to:NN \ior_get:NN
\cs_new_protected_nopar:Npn \ior_gto:NN { \tex_global:D \ior_to:NN }
\cs_new_eq:NN \ior_str_to:NN \ior_get_str:NN
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3fp.sty b/Master/texmf-dist/tex/latex/l3kernel/l3fp.sty
index ec67d73f5d5..6bbe576f511 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3fp.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3fp.sty
@@ -59,7 +59,7 @@
%% -----------------------------------------------------------------------
%%
\RequirePackage{l3bootstrap}
-\GetIdInfo$Id: l3fp.dtx 4305 2012-11-10 08:40:25Z joseph $
+\GetIdInfo$Id: l3fp.dtx 4449 2013-01-19 23:55:05Z bruno $
{L3 Floating points}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -400,7 +400,7 @@
%% -----------------------------------------------------------------------
%%
\cs_new_protected:Npn \fp_flag_off:n #1
- { \cs_set_eq:cN { l__fp_ #1 _flag_token } \c_undefined:D }
+ { \cs_set_eq:cN { l__fp_ #1 _flag_token } \tex_undefined:D }
\cs_new:Npn \fp_flag_on:n #1
{ \exp_args:Nc \use_none:n { l__fp_ #1 _flag_token } }
\prg_new_conditional:Npnn \fp_if_flag_on:n #1 { p , T , F , TF }
@@ -411,10 +411,10 @@
\prg_return_false:
\fi:
}
-\cs_new_eq:NN \l__fp_invalid_operation_flag_token \c_undefined:D
-\cs_new_eq:NN \l__fp_division_by_zero_flag_token \c_undefined:D
-\cs_new_eq:NN \l__fp_overflow_flag_token \c_undefined:D
-\cs_new_eq:NN \l__fp_underflow_flag_token \c_undefined:D
+\cs_new_eq:NN \l__fp_invalid_operation_flag_token \tex_undefined:D
+\cs_new_eq:NN \l__fp_division_by_zero_flag_token \tex_undefined:D
+\cs_new_eq:NN \l__fp_overflow_flag_token \tex_undefined:D
+\cs_new_eq:NN \l__fp_underflow_flag_token \tex_undefined:D
\cs_new_protected:Npn \fp_trap:nn #1#2
{
\cs_if_exist_use:cF { __fp_trap_#1_set_#2: }
@@ -1917,14 +1917,8 @@
%%
%% -----------------------------------------------------------------------
%%
-\cs_new_eq:NN \fp_if_exist:NTF \cs_if_exist:NTF
-\cs_new_eq:NN \fp_if_exist:NT \cs_if_exist:NT
-\cs_new_eq:NN \fp_if_exist:NF \cs_if_exist:NF
-\cs_new_eq:NN \fp_if_exist_p:N \cs_if_exist_p:N
-\cs_new_eq:NN \fp_if_exist:cTF \cs_if_exist:cTF
-\cs_new_eq:NN \fp_if_exist:cT \cs_if_exist:cT
-\cs_new_eq:NN \fp_if_exist:cF \cs_if_exist:cF
-\cs_new_eq:NN \fp_if_exist_p:c \cs_if_exist_p:c
+\prg_new_eq_conditional:NNn \fp_if_exist:N \cs_if_exist:N { TF , T , F , p }
+\prg_new_eq_conditional:NNn \fp_if_exist:c \cs_if_exist:c { TF , T , F , p }
\prg_new_conditional:Npnn \fp_compare:n #1 { p , T , F , TF }
{
\exp_after:wN \__fp_compare_return:w
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3int.sty b/Master/texmf-dist/tex/latex/l3kernel/l3int.sty
index cd2ab964888..b104958c41f 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3int.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3int.sty
@@ -13,7 +13,7 @@
%%
%% Do not distribute a modified version of this file.
%%
-%% File: l3int.dtx Copyright (C) 1990-2012 The LaTeX3 Project
+%% File: l3int.dtx Copyright (C) 1990-2013 The 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
@@ -46,7 +46,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3bootstrap}
-\GetIdInfo$Id: l3int.dtx 4237 2012-09-26 10:18:58Z bruno $
+\GetIdInfo$Id: l3int.dtx 4444 2013-01-13 20:27:20Z bruno $
{L3 Integers}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -173,14 +173,8 @@
\cs_new_protected:Npn \int_gset_eq:NN #1#2 { \tex_global:D #1 = #2 }
\cs_generate_variant:Nn \int_gset_eq:NN { c }
\cs_generate_variant:Nn \int_gset_eq:NN { Nc , cc }
-\cs_new_eq:NN \int_if_exist:NTF \cs_if_exist:NTF
-\cs_new_eq:NN \int_if_exist:NT \cs_if_exist:NT
-\cs_new_eq:NN \int_if_exist:NF \cs_if_exist:NF
-\cs_new_eq:NN \int_if_exist_p:N \cs_if_exist_p:N
-\cs_new_eq:NN \int_if_exist:cTF \cs_if_exist:cTF
-\cs_new_eq:NN \int_if_exist:cT \cs_if_exist:cT
-\cs_new_eq:NN \int_if_exist:cF \cs_if_exist:cF
-\cs_new_eq:NN \int_if_exist_p:c \cs_if_exist_p:c
+\prg_new_eq_conditional:NNn \int_if_exist:N \cs_if_exist:N { TF , T , F , p }
+\prg_new_eq_conditional:NNn \int_if_exist:c \cs_if_exist:c { TF , T , F , p }
\cs_new_protected:Npn \int_add:Nn #1#2
{ \tex_advance:D #1 by \__int_eval:w #2 \__int_eval_end: }
\cs_new_protected:Npn \int_sub:Nn #1#2
@@ -219,46 +213,62 @@
\__prg_compare_error:
}
\cs_new:Npn \__prg_compare_error:Nw
- #1#2 \prg_return_true: \else: \prg_return_false: \fi:
+ #1#2 \q_stop
{
+ { }
+ \c_zero \fi:
\__msg_kernel_expandable_error:nnn
{ kernel } { unknown-comparison } {#1}
\prg_return_false:
}
\prg_new_conditional:Npnn \int_compare:n #1 { p , T , F , TF }
{
- \exp_after:wN \__int_compare_aux:Nw \int_use:N \__int_eval:w #1
- \__prg_compare_error: \__int_eval_end:
- \prg_return_true:
- \else:
- \prg_return_false:
- \fi:
+ \exp_after:wN \__int_compare:w
+ \int_use:N \__int_eval:w #1 \__prg_compare_error:
+ }
+\cs_new:Npn \__int_compare:w #1 \__prg_compare_error:
+ {
+ \exp_after:wN \if_false: \__int_value:w
+ \__int_compare:Nw #1 e { = nd_ } \q_stop
}
-\cs_new:Npn \__int_compare_aux:Nw #1#2 \__prg_compare_error:
+\cs_new:Npn \__int_compare:Nw #1#2 \q_stop
{
- \exp_after:wN \__int_compare_aux:NNw
- \__int_to_roman:w - 0 #2 ?? \q_mark
- #1#2
+ \exp_after:wN \__int_compare:NNw
+ \__int_to_roman:w - 0 #2 \q_mark
+ #1#2 \q_stop
}
-\cs_new:Npn \__int_compare_aux:NNw #1#2#3 \q_mark
+\cs_new:Npn \__int_compare:NNw #1#2#3 \q_mark
{
+ \etex_unexpanded:D
\use:c { __int_compare_ #1 \if_meaning:w = #2 = \fi: :NNw }
\__prg_compare_error:Nw #1
}
+\cs_new:cpn { __int_compare_end_=:NNw } #1#2#3 e #4 \q_stop
+ {
+ {#3} \exp_stop_f:
+ \prg_return_false: \else: \prg_return_true: \fi:
+ }
+\cs_new:Npn \__int_compare:nnN #1#2#3
+ {
+ {#2} \exp_stop_f:
+ \prg_return_false: \exp_after:wN \use_none_delimit_by_q_stop:w
+ \fi:
+ #1 #2 #3 \exp_after:wN \__int_compare:Nw \__int_value:w \__int_eval:w
+ }
\cs_new:cpn { __int_compare_=:NNw } #1#2#3 =
- { \if_int_compare:w #3 = \__int_eval:w }
+ { \__int_compare:nnN { \reverse_if:N \if_int_compare:w } {#3} = }
\cs_new:cpn { __int_compare_<:NNw } #1#2#3 <
- { \if_int_compare:w #3 < \__int_eval:w }
+ { \__int_compare:nnN { \reverse_if:N \if_int_compare:w } {#3} < }
\cs_new:cpn { __int_compare_>:NNw } #1#2#3 >
- { \if_int_compare:w #3 > \__int_eval:w }
+ { \__int_compare:nnN { \reverse_if:N \if_int_compare:w } {#3} > }
\cs_new:cpn { __int_compare_==:NNw } #1#2#3 ==
- { \if_int_compare:w #3 = \__int_eval:w }
+ { \__int_compare:nnN { \reverse_if:N \if_int_compare:w } {#3} = }
\cs_new:cpn { __int_compare_!=:NNw } #1#2#3 !=
- { \reverse_if:N \if_int_compare:w #3 = \__int_eval:w }
+ { \__int_compare:nnN { \if_int_compare:w } {#3} = }
\cs_new:cpn { __int_compare_<=:NNw } #1#2#3 <=
- { \reverse_if:N \if_int_compare:w #3 > \__int_eval:w }
+ { \__int_compare:nnN { \if_int_compare:w } {#3} > }
\cs_new:cpn { __int_compare_>=:NNw } #1#2#3 >=
- { \reverse_if:N \if_int_compare:w #3 < \__int_eval:w }
+ { \__int_compare:nnN { \if_int_compare:w } {#3} < }
\prg_new_conditional:Npnn \int_compare:nNn #1#2#3 { p , T , F , TF }
{
\if_int_compare:w \__int_eval:w #1 #2 \__int_eval:w #3 \__int_eval_end:
@@ -767,11 +777,6 @@
\int_new:N \l_tmpb_int
\int_new:N \g_tmpa_int
\int_new:N \g_tmpb_int
-\cs_new_eq:NN \if_num:w \if_int_compare:w
-\int_new:N \l_tmpc_int
-\cs_new_eq:NN \int_eval:w \__int_eval:w
-\cs_new_eq:NN \int_eval_end: \__int_eval_end:
-\cs_new_eq:NN \int_value:w \__int_value:w
%%
%%
%% End of file `l3int.sty'.
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3keys.sty b/Master/texmf-dist/tex/latex/l3kernel/l3keys.sty
index fd2cac0632c..e232f8e1645 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3keys.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3keys.sty
@@ -13,7 +13,7 @@
%%
%% Do not distribute a modified version of this file.
%%
-%% File: l3keys.dtx Copyright (C) 2006-2012 The LaTeX3 Project
+%% File: l3keys.dtx Copyright (C) 2006-2013 The 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
@@ -46,7 +46,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3bootstrap}
-\GetIdInfo$Id: l3keys.dtx 4256 2012-11-02 08:47:41Z joseph $
+\GetIdInfo$Id: l3keys.dtx 4461 2013-02-24 18:55:17Z joseph $
{L3 Experimental key-value interfaces}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -110,8 +110,7 @@
{ \tl_if_head_eq_meaning:nNTF {#3} \q_no_value }
\cs_new_protected:Npn \__keyval_split_key:n #1
{
- \str_if_eq_x:nnTF
- { \exp_not:N \q_nil } { \exp_not:o { \use_none:nnn #1 \q_nil \q_nil } }
+ \quark_if_nil:oTF { \use_none:nnn #1 \q_nil \q_nil }
{ \tl_set:Nx \l__keyval_key_tl { \exp_not:o { \use_ii:nnn #1 \q_nil } } }
{ \__keyval_split_key:w #1 \q_stop }
}
@@ -699,7 +698,6 @@
The~key~'#1'~must~have~a~value.\\
No~value~was~present:~the~key~will~be~ignored.
}
-\cs_new_eq:NN \c_keys_code_root_tl \c__keys_code_root_tl
%%
%%
%% End of file `l3keys.sty'.
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3msg.sty b/Master/texmf-dist/tex/latex/l3kernel/l3msg.sty
index 584b54ac427..5ceb1e0e81c 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3msg.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3msg.sty
@@ -13,7 +13,7 @@
%%
%% Do not distribute a modified version of this file.
%%
-%% File: l3msg.dtx Copyright (C) 2009-2012 The LaTeX3 Project
+%% File: l3msg.dtx Copyright (C) 2009-2013 The 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
@@ -46,7 +46,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3bootstrap}
-\GetIdInfo$Id: l3msg.dtx 4212 2012-09-09 12:24:04Z bruno $
+\GetIdInfo$Id: l3msg.dtx 4412 2013-01-08 12:23:19Z joseph $
{L3 Messages}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -776,29 +776,6 @@
\\ > \ \ \tl_to_str:n {#1}
\ \ => \ \ \tl_to_str:n {#2}
}
-\cs_new_nopar:Npn \msg_newline: { ^^J }
-\cs_new_nopar:Npn \msg_two_newlines: { ^^J ^^J }
-\cs_generate_variant:Nn \msg_log:n { x }
-\cs_generate_variant:Nn \msg_term:n { x }
-\cs_generate_variant:Nn \msg_interrupt:nnn { xxx }
-\cs_new_protected:Npn \msg_class_set:nn #1#2
- {
- \cs_if_exist:cTF { __msg_ #1 _code:nnnnnn }
- \cs_set_protected:cpn
- \cs_new_protected:cpn
- { __msg_ #1 _code:nnnnnn } ##1##2##3##4##5##6 {#2}
- \prop_clear_new:c { l__msg_redirect_ #1 _prop }
- \cs_set_protected_nopar:cpn { msg_ #1 :nnxxxx }
- { \__msg_use:nnnnnnn {#1} }
- \cs_set_protected:cpx { msg_ #1 :nnxxx } ##1##2##3##4##5
- { \exp_not:c { msg_ #1 :nnxxxx } {##1} {##2} {##3} {##4} {##5} { } }
- \cs_set_protected:cpx { msg_ #1 :nnxx } ##1##2##3##4
- { \exp_not:c { msg_ #1 :nnxxxx } {##1} {##2} {##3} {##4} { } { } }
- \cs_set_protected:cpx { msg_ #1 :nnx } ##1##2##3
- { \exp_not:c { msg_ #1 :nnxxxx } {##1} {##2} {##3} { } { } { } }
- \cs_set_protected:cpx { msg_ #1 :nn } ##1##2
- { \exp_not:c { msg_ #1 :nnxxxx } {##1} {##2} { } { } { } { } }
- }
%%
%%
%% End of file `l3msg.sty'.
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3prg.sty b/Master/texmf-dist/tex/latex/l3kernel/l3prg.sty
index 4a544ab6720..957a8300b4c 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3prg.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3prg.sty
@@ -13,7 +13,7 @@
%%
%% Do not distribute a modified version of this file.
%%
-%% File: l3prg.dtx Copyright (C) 2005-2012 The LaTeX3 Project
+%% File: l3prg.dtx Copyright (C) 2005-2013 The 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
@@ -46,7 +46,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3bootstrap}
-\GetIdInfo$Id: l3prg.dtx 4339 2012-11-24 19:16:43Z joseph $
+\GetIdInfo$Id: l3prg.dtx 4459 2013-02-13 09:21:15Z will $
{L3 Control structures}
%%
\ProvidesExplPackage
@@ -114,14 +114,8 @@
\bool_new:N \l_tmpb_bool
\bool_new:N \g_tmpa_bool
\bool_new:N \g_tmpb_bool
-\cs_new_eq:NN \bool_if_exist:NTF \cs_if_exist:NTF
-\cs_new_eq:NN \bool_if_exist:NT \cs_if_exist:NT
-\cs_new_eq:NN \bool_if_exist:NF \cs_if_exist:NF
-\cs_new_eq:NN \bool_if_exist_p:N \cs_if_exist_p:N
-\cs_new_eq:NN \bool_if_exist:cTF \cs_if_exist:cTF
-\cs_new_eq:NN \bool_if_exist:cT \cs_if_exist:cT
-\cs_new_eq:NN \bool_if_exist:cF \cs_if_exist:cF
-\cs_new_eq:NN \bool_if_exist_p:c \cs_if_exist_p:c
+\prg_new_eq_conditional:NNn \bool_if_exist:N \cs_if_exist:N { TF , T , F , p }
+\prg_new_eq_conditional:NNn \bool_if_exist:c \cs_if_exist:c { TF , T , F , p }
\prg_new_conditional:Npnn \bool_if:n #1 { T , F , TF }
{
\if_predicate:w \bool_if_p:n {#1}
@@ -339,15 +333,6 @@
}
}
\int_new:N \g__prg_map_int
-\cs_new_eq:NN \prg_case_int:nnn \int_case:nnn
-\cs_new_eq:NN \prg_case_str:nnn \str_case:nnn
-\cs_new_eq:NN \prg_case_str:onn \str_case:onn
-\cs_new_eq:NN \prg_case_str:xxn \str_case_x:nnn
-\cs_new_eq:NN \prg_case_tl:Nnn \tl_case:Nnn
-\cs_new_eq:NN \prg_case_tl:cnn \tl_case:cnn
-\cs_new_eq:NN \prg_stepwise_function:nnnN \int_step_function:nnnN
-\cs_new_eq:NN \prg_stepwise_inline:nnnn \int_step_inline:nnnn
-\cs_new_eq:NN \prg_stepwise_variable:nnnNn \int_step_variable:nnnNn
%%
%%
%% End of file `l3prg.sty'.
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3prop.sty b/Master/texmf-dist/tex/latex/l3kernel/l3prop.sty
index 916ff713332..85cff451ddb 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3prop.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3prop.sty
@@ -13,7 +13,7 @@
%%
%% Do not distribute a modified version of this file.
%%
-%% File: l3prop.dtx Copyright (C) 1990-2012 The LaTeX3 Project
+%% File: l3prop.dtx Copyright (C) 1990-2013 The 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
@@ -46,25 +46,24 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3bootstrap}
-\GetIdInfo$Id: l3prop.dtx 4212 2012-09-09 12:24:04Z bruno $
+\GetIdInfo$Id: l3prop.dtx 4423 2013-01-09 00:05:30Z bruno $
{L3 Property lists}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
\__expl_package_check:
-\quark_new:N \q__prop
-\tl_const:Nn \c_empty_prop { \q__prop }
-\cs_new_protected:Npn \prop_new:N #1 { \cs_new_eq:NN #1 \c_empty_prop }
-\cs_new_protected:Npn \prop_new:c #1 { \cs_new_eq:cN {#1} \c_empty_prop }
-\cs_new_protected:Npn \prop_clear:N #1 { \cs_set_eq:NN #1 \c_empty_prop }
-\cs_generate_variant:Nn \prop_clear:N { c }
-\cs_new_protected:Npn \prop_gclear:N #1 { \cs_gset_eq:NN #1 \c_empty_prop }
-\cs_generate_variant:Nn \prop_gclear:N { c }
-\cs_new_protected:Npn \prop_clear_new:N #1
- { \prop_if_exist:NTF #1 { \prop_clear:N #1 } { \prop_new:N #1 } }
-\cs_generate_variant:Nn \prop_clear_new:N { c }
-\cs_new_protected:Npn \prop_gclear_new:N #1
- { \prop_if_exist:NTF #1 { \prop_gclear:N #1 } { \prop_new:N #1 } }
-\cs_generate_variant:Nn \prop_gclear_new:N { c }
+\__scan_new:N \s__prop
+\tl_new:N \l__prop_internal_tl
+\cs_new_eq:NN \c_empty_prop \c_empty_tl
+\cs_new_eq:NN \prop_new:N \tl_new:N
+\cs_new_eq:NN \prop_new:c \tl_new:c
+\cs_new_eq:NN \prop_clear:N \tl_clear:N
+\cs_new_eq:NN \prop_clear:c \tl_clear:c
+\cs_new_eq:NN \prop_gclear:N \tl_gclear:N
+\cs_new_eq:NN \prop_gclear:c \tl_gclear:c
+\cs_new_eq:NN \prop_clear_new:N \tl_clear_new:N
+\cs_new_eq:NN \prop_clear_new:c \tl_clear_new:c
+\cs_new_eq:NN \prop_gclear_new:N \tl_gclear_new:N
+\cs_new_eq:NN \prop_gclear_new:c \tl_gclear_new:c
\cs_new_eq:NN \prop_set_eq:NN \tl_set_eq:NN
\cs_new_eq:NN \prop_set_eq:Nc \tl_set_eq:Nc
\cs_new_eq:NN \prop_set_eq:cN \tl_set_eq:cN
@@ -79,22 +78,27 @@
\prop_new:N \g_tmpb_prop
\cs_new_protected:Npn \__prop_split:NnTF #1#2
{ \exp_args:NNo \__prop_split_aux:NnTF #1 { \tl_to_str:n {#2} } }
-\cs_new_protected:Npn \__prop_split_aux:NnTF #1#2
+\cs_new_protected:Npn \__prop_split_aux:NnTF #1#2#3#4
{
- \cs_set_protected:Npn \__prop_split_aux:w
- ##1 \q__prop #2 \q__prop ##2 ##3 ##4 \q_mark ##5 \q_stop
- { \__prop_split_aux:nnnn ##3 { {##1 \q__prop } {##2} {##4} } }
- \exp_after:wN \__prop_split_aux:w #1 \q_mark
- \q__prop #2 \q__prop { } { ? \use_ii:nn { } } \q_mark \q_stop
+ \cs_set:Npn \__prop_split_aux:w ##1
+ \s__prop #2 \s__prop ##2 ##3 \q_mark ##4 ##5 \q_stop
+ { ##4 {#3} {#4} }
+ \exp_after:wN \__prop_split_aux:w #1 \q_mark \use_i:nn
+ \s__prop #2 \s__prop { } \q_mark \use_ii:nn \q_stop
}
-\cs_new:Npn \__prop_split_aux:nnnn #1#2#3#4 { #3 #2 }
-\cs_new_protected:Npn \__prop_split_aux:w { }
+\cs_new:Npn \__prop_split_aux:w { }
\cs_new_protected:Npn \prop_remove:Nn #1#2
- { \__prop_split:NnTF #1 {#2} { \__prop_remove:NNnnn \tl_set:Nn #1 } { } }
+ {
+ \__prop_split:NnTF #1 {#2}
+ { \tl_set:Nn #1 { ##1 ##3 } }
+ { }
+ }
\cs_new_protected:Npn \prop_gremove:Nn #1#2
- { \__prop_split:NnTF #1 {#2} { \__prop_remove:NNnnn \tl_gset:Nn #1 } { } }
-\cs_new_protected:Npn \__prop_remove:NNnnn #1#2#3#4#5
- { #1 #2 { #3 #5 } }
+ {
+ \__prop_split:NnTF #1 {#2}
+ { \tl_gset:Nn #1 { ##1 ##3 } }
+ { }
+ }
\cs_generate_variant:Nn \prop_remove:Nn { NV }
\cs_generate_variant:Nn \prop_remove:Nn { c , cV }
\cs_generate_variant:Nn \prop_gremove:Nn { NV }
@@ -102,30 +106,29 @@
\cs_new_protected:Npn \prop_get:NnN #1#2#3
{
\__prop_split:NnTF #1 {#2}
- { \__prop_get:Nnnn #3 }
+ { \tl_set:Nn #3 {##2} }
{ \tl_set:Nn #3 { \q_no_value } }
}
-\cs_new_protected:Npn \__prop_get:Nnnn #1#2#3#4
- { \tl_set:Nn #1 {#3} }
\cs_generate_variant:Nn \prop_get:NnN { NV , No }
\cs_generate_variant:Nn \prop_get:NnN { c , cV , co }
\cs_new_protected:Npn \prop_pop:NnN #1#2#3
{
\__prop_split:NnTF #1 {#2}
- { \__prop_pop:NNNnnn \tl_set:Nn #1 #3 }
+ {
+ \tl_set:Nn #3 {##2}
+ \tl_set:Nn #1 { ##1 ##3 }
+ }
{ \tl_set:Nn #3 { \q_no_value } }
}
\cs_new_protected:Npn \prop_gpop:NnN #1#2#3
{
\__prop_split:NnTF #1 {#2}
- { \__prop_pop:NNNnnn \tl_gset:Nn #1 #3 }
+ {
+ \tl_set:Nn #3 {##2}
+ \tl_gset:Nn #1 { ##1 ##3 }
+ }
{ \tl_set:Nn #3 { \q_no_value } }
}
-\cs_new_protected:Npn \__prop_pop:NNNnnn #1#2#3#4#5#6
- {
- \tl_set:Nn #3 {#5}
- #1 #2 { #4 #6 }
- }
\cs_generate_variant:Nn \prop_pop:NnN { No }
\cs_generate_variant:Nn \prop_pop:NnN { c , co }
\cs_generate_variant:Nn \prop_gpop:NnN { No }
@@ -133,45 +136,40 @@
\prg_new_protected_conditional:Npnn \prop_pop:NnN #1#2#3 { T , F , TF }
{
\__prop_split:NnTF #1 {#2}
- { \__prop_pop_true:NNNnnn \tl_set:Nn #1 #3 }
+ {
+ \tl_set:Nn #3 {##2}
+ \tl_set:Nn #1 { ##1 ##3 }
+ \prg_return_true:
+ }
{ \prg_return_false: }
}
\prg_new_protected_conditional:Npnn \prop_gpop:NnN #1#2#3 { T , F , TF }
{
\__prop_split:NnTF #1 {#2}
- { \__prop_pop_true:NNNnnn \tl_gset:Nn #1 #3 }
+ {
+ \tl_set:Nn #3 {##2}
+ \tl_gset:Nn #1 { ##1 ##3 }
+ \prg_return_true:
+ }
{ \prg_return_false: }
}
-\cs_new_protected:Npn \__prop_pop_true:NNNnnn #1#2#3#4#5#6
- {
- \tl_set:Nn #3 {#5}
- #1 #2 { #4 #6 }
- \prg_return_true:
- }
\cs_generate_variant:Nn \prop_pop:NnNT { c }
\cs_generate_variant:Nn \prop_pop:NnNF { c }
\cs_generate_variant:Nn \prop_pop:NnNTF { c }
\cs_generate_variant:Nn \prop_gpop:NnNT { c }
\cs_generate_variant:Nn \prop_gpop:NnNF { c }
\cs_generate_variant:Nn \prop_gpop:NnNTF { c }
-\cs_new_protected:Npn \prop_put:Nnn
+\cs_new_protected_nopar:Npn \prop_put:Nnn
{ \__prop_put:NNNnn \tl_set:Nx \tl_put_right:Nx }
-\cs_new_protected:Npn \prop_gput:Nnn
+\cs_new_protected_nopar:Npn \prop_gput:Nnn
{ \__prop_put:NNNnn \tl_gset:Nx \tl_gput_right:Nx }
\cs_new_protected:Npn \__prop_put:NNNnn #1#2#3#4#5
{
+ \tl_set:Nn \l__prop_internal_tl
+ { \s__prop \tl_to_str:n {#4} \s__prop { \exp_not:n {#5} } }
\__prop_split:NnTF #3 {#4}
- { \__prop_put:NNnnnnn #1 #3 {#4} {#5} }
- { #2 #3 { \tl_to_str:n {#4} \exp_not:n { \q__prop {#5} \q__prop } } }
- }
-\cs_new_protected:Npn \__prop_put:NNnnnnn #1#2#3#4#5#6#7
- {
- #1 #2
- {
- \exp_not:n {#5}
- \tl_to_str:n {#3} \exp_not:n { \q__prop {#4} \q__prop }
- \exp_not:n {#7}
- }
+ { #1 #3 { \exp_not:n {##1} \l__prop_internal_tl \exp_not:n {##3} } }
+ { #2 #3 { \l__prop_internal_tl } }
}
\cs_generate_variant:Nn \prop_put:Nnn
{ NnV , Nno , Nnx , NV , NVV , No , Noo }
@@ -187,44 +185,29 @@
{ \__prop_put_if_new:NNnn \tl_gput_right:Nx }
\cs_new_protected:Npn \__prop_put_if_new:NNnn #1#2#3#4
{
+ \tl_set:Nn \l__prop_internal_tl
+ { \s__prop \tl_to_str:n {#3} \s__prop \exp_not:n { {#4} } }
\__prop_split:NnTF #2 {#3}
- { \use_none:nnn }
- {
- #1 #2
- { \tl_to_str:n {#3} \exp_not:n { \q__prop {#4} \q__prop } }
- }
+ { }
+ { #1 #2 { \l__prop_internal_tl } }
}
\cs_generate_variant:Nn \prop_put_if_new:Nnn { c }
\cs_generate_variant:Nn \prop_gput_if_new:Nnn { c }
-\cs_new_eq:NN \prop_if_exist:NTF \cs_if_exist:NTF
-\cs_new_eq:NN \prop_if_exist:NT \cs_if_exist:NT
-\cs_new_eq:NN \prop_if_exist:NF \cs_if_exist:NF
-\cs_new_eq:NN \prop_if_exist_p:N \cs_if_exist_p:N
-\cs_new_eq:NN \prop_if_exist:cTF \cs_if_exist:cTF
-\cs_new_eq:NN \prop_if_exist:cT \cs_if_exist:cT
-\cs_new_eq:NN \prop_if_exist:cF \cs_if_exist:cF
-\cs_new_eq:NN \prop_if_exist_p:c \cs_if_exist_p:c
-\prg_new_conditional:Npnn \prop_if_empty:N #1 { p, T , F , TF }
- {
- \if_meaning:w #1 \c_empty_prop
- \prg_return_true:
- \else:
- \prg_return_false:
- \fi:
- }
-\cs_generate_variant:Nn \prop_if_empty_p:N {c}
-\cs_generate_variant:Nn \prop_if_empty:NTF {c}
-\cs_generate_variant:Nn \prop_if_empty:NT {c}
-\cs_generate_variant:Nn \prop_if_empty:NF {c}
+\prg_new_eq_conditional:NNn \prop_if_exist:N \cs_if_exist:N { TF , T , F , p }
+\prg_new_eq_conditional:NNn \prop_if_exist:c \cs_if_exist:c { TF , T , F , p }
+\prg_new_eq_conditional:NNn \prop_if_empty:N \tl_if_empty:N
+ { p , T , F , TF }
+\prg_new_eq_conditional:NNn \prop_if_empty:c \tl_if_empty:c
+ { p , T , F , TF }
\prg_new_conditional:Npnn \prop_if_in:Nn #1#2 { p , T , F , TF }
{
\exp_last_unbraced:Noo \__prop_if_in:nwn
{ \tl_to_str:n {#2} } #1
- \tl_to_str:n {#2} \q__prop { }
- \q_recursion_tail % could be any cs != \q__prop
+ \s__prop \tl_to_str:n {#2} \s__prop { }
+ \q_recursion_tail
\__prg_break_point:
}
-\cs_new:Npn \__prop_if_in:nwn #1 \q__prop #2 \q__prop #3
+\cs_new:Npn \__prop_if_in:nwn #1 \s__prop #2 \s__prop #3
{
\str_if_eq_x:nnTF {#1} {#2}
{ \__prop_if_in:N }
@@ -232,7 +215,7 @@
}
\cs_new:Npn \__prop_if_in:N #1
{
- \if_meaning:w \q__prop #1
+ \if_meaning:w \s__prop #1
\prg_return_true:
\else:
\prg_return_false:
@@ -250,14 +233,12 @@
\prg_new_protected_conditional:Npnn \prop_get:NnN #1#2#3 { T , F , TF }
{
\__prop_split:NnTF #1 {#2}
- { \__prop_get_true:Nnnn #3 }
+ {
+ \tl_set:Nn #3 {##2}
+ \prg_return_true:
+ }
{ \prg_return_false: }
}
-\cs_new_protected:Npn \__prop_get_true:Nnnn #1#2#3#4
- {
- \tl_set:Nn #1 {#3}
- \prg_return_true:
- }
\cs_generate_variant:Nn \prop_get:NnNT { NV , No }
\cs_generate_variant:Nn \prop_get:NnNF { NV , No }
\cs_generate_variant:Nn \prop_get:NnNTF { NV , No }
@@ -267,12 +248,14 @@
\cs_new:Npn \prop_map_function:NN #1#2
{
\exp_last_unbraced:NNo \__prop_map_function:Nwn #2
- #1 \q_recursion_tail \q__prop { }
+ #1 \s__prop \q_recursion_tail \s__prop { }
\__prg_break_point:Nn \prop_map_break: { }
}
-\cs_new:Npn \__prop_map_function:Nwn #1 \q__prop #2 \q__prop #3
+\cs_new:Npn \__prop_map_function:Nwn #1 \s__prop #2 \s__prop #3
{
- \__quark_if_recursion_tail_break:nN {#2} \prop_map_break:
+ \if_meaning:w \q_recursion_tail #2
+ \exp_after:wN \prop_map_break:
+ \fi:
#1 {#2} {#3}
\__prop_map_function:Nwn #1
}
@@ -285,7 +268,7 @@
\exp_last_unbraced:Nco \__prop_map_function:Nwn
{ __prg_map_ \int_use:N \g__prg_map_int :w }
#1
- \q_recursion_tail \q__prop { }
+ \s__prop \q_recursion_tail \s__prop { }
\__prg_break_point:Nn \prop_map_break: { \int_gdecr:N \g__prg_map_int }
}
\cs_generate_variant:Nn \prop_map_inline:Nn { c }
@@ -299,14 +282,6 @@
{ \prop_map_function:NN #1 \__msg_show_item:nn }
}
\cs_generate_variant:Nn \prop_show:N { c }
-\cs_new_eq:NN \prop_del:Nn \prop_remove:Nn
-\cs_new_eq:NN \prop_del:NV \prop_remove:NV
-\cs_new_eq:NN \prop_del:cn \prop_remove:cn
-\cs_new_eq:NN \prop_del:cV \prop_remove:cV
-\cs_new_eq:NN \prop_gdel:Nn \prop_gremove:Nn
-\cs_new_eq:NN \prop_gdel:NV \prop_gremove:NV
-\cs_new_eq:NN \prop_gdel:cn \prop_gremove:cn
-\cs_new_eq:NN \prop_gdel:cV \prop_gremove:cV
%%
%%
%% End of file `l3prop.sty'.
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3seq.sty b/Master/texmf-dist/tex/latex/l3kernel/l3seq.sty
index 55cb5f18fb0..b80717c08ec 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3seq.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3seq.sty
@@ -13,7 +13,7 @@
%%
%% Do not distribute a modified version of this file.
%%
-%% File: l3seq.dtx Copyright (C) 1990-2012 The LaTeX3 Project
+%% File: l3seq.dtx Copyright (C) 1990-2013 The 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
@@ -46,7 +46,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3bootstrap}
-\GetIdInfo$Id: l3seq.dtx 4339 2012-11-24 19:16:43Z joseph $
+\GetIdInfo$Id: l3seq.dtx 4434 2013-01-12 09:33:40Z bruno $
{L3 Sequences and stacks}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -111,20 +111,12 @@
{ \__seq_wrap_item:n {#1} }
\cs_generate_variant:Nn \seq_set_split:Nnn { NnV }
\cs_generate_variant:Nn \seq_gset_split:Nnn { NnV }
-\cs_new_protected:Npn \seq_concat:NNN #1#2#3
- { \tl_set:Nx #1 { \exp_not:o {#2} \exp_not:o {#3} } }
-\cs_new_protected:Npn \seq_gconcat:NNN #1#2#3
- { \tl_gset:Nx #1 { \exp_not:o {#2} \exp_not:o {#3} } }
-\cs_generate_variant:Nn \seq_concat:NNN { ccc }
-\cs_generate_variant:Nn \seq_gconcat:NNN { ccc }
-\cs_new_eq:NN \seq_if_exist:NTF \cs_if_exist:NTF
-\cs_new_eq:NN \seq_if_exist:NT \cs_if_exist:NT
-\cs_new_eq:NN \seq_if_exist:NF \cs_if_exist:NF
-\cs_new_eq:NN \seq_if_exist_p:N \cs_if_exist_p:N
-\cs_new_eq:NN \seq_if_exist:cTF \cs_if_exist:cTF
-\cs_new_eq:NN \seq_if_exist:cT \cs_if_exist:cT
-\cs_new_eq:NN \seq_if_exist:cF \cs_if_exist:cF
-\cs_new_eq:NN \seq_if_exist_p:c \cs_if_exist_p:c
+\cs_new_eq:NN \seq_concat:NNN \tl_concat:NNN
+\cs_new_eq:NN \seq_gconcat:NNN \tl_gconcat:NNN
+\cs_new_eq:NN \seq_concat:ccc \tl_concat:ccc
+\cs_new_eq:NN \seq_gconcat:ccc \tl_gconcat:ccc
+\prg_new_eq_conditional:NNn \seq_if_exist:N \cs_if_exist:N { TF , T , F , p }
+\prg_new_eq_conditional:NNn \seq_if_exist:c \cs_if_exist:c { TF , T , F , p }
\cs_new_protected:Npn \seq_put_left:Nn #1#2
{ \tl_put_left:Nn #1 { \__seq_item:n {#2} } }
\cs_new_protected:Npn \seq_put_right:Nn #1#2
@@ -441,10 +433,6 @@
\seq_new:N \l_tmpb_seq
\seq_new:N \g_tmpa_seq
\seq_new:N \g_tmpb_seq
-\cs_new_eq:NN \seq_length:N \seq_count:N
-\cs_new_eq:NN \seq_length:c \seq_count:c
-\cs_new:Npn \seq_use:N #1 { \seq_map_function:NN #1 \use:n }
-\cs_generate_variant:Nn \seq_use:N { c }
%%
%%
%% End of file `l3seq.sty'.
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3skip.sty b/Master/texmf-dist/tex/latex/l3kernel/l3skip.sty
index c9e6836ca2b..20f3c09ebcd 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3skip.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3skip.sty
@@ -14,7 +14,7 @@
%% Do not distribute a modified version of this file.
%%
%% File: l3skip.dtx Copyright (C) 2004-2011 Frank Mittelbach, The LaTeX3 Project
-%% (C) 2012 The LaTeX3 Project
+%% (C) 2012,2013 The 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
@@ -47,7 +47,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3bootstrap}
-\GetIdInfo$Id: l3skip.dtx 4260 2012-11-04 17:20:25Z joseph $
+\GetIdInfo$Id: l3skip.dtx 4444 2013-01-13 20:27:20Z bruno $
{L3 Dimensions and skips}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -77,14 +77,8 @@
{ \dim_if_exist:NTF #1 { \dim_gzero:N #1 } { \dim_new:N #1 } }
\cs_generate_variant:Nn \dim_zero_new:N { c }
\cs_generate_variant:Nn \dim_gzero_new:N { c }
-\cs_new_eq:NN \dim_if_exist:NTF \cs_if_exist:NTF
-\cs_new_eq:NN \dim_if_exist:NT \cs_if_exist:NT
-\cs_new_eq:NN \dim_if_exist:NF \cs_if_exist:NF
-\cs_new_eq:NN \dim_if_exist_p:N \cs_if_exist_p:N
-\cs_new_eq:NN \dim_if_exist:cTF \cs_if_exist:cTF
-\cs_new_eq:NN \dim_if_exist:cT \cs_if_exist:cT
-\cs_new_eq:NN \dim_if_exist:cF \cs_if_exist:cF
-\cs_new_eq:NN \dim_if_exist_p:c \cs_if_exist_p:c
+\prg_new_eq_conditional:NNn \dim_if_exist:N \cs_if_exist:N { TF , T , F , p }
+\prg_new_eq_conditional:NNn \dim_if_exist:c \cs_if_exist:c { TF , T , F , p }
\cs_new_protected:Npn \dim_set:Nn #1#2
{ #1 ~ \__dim_eval:w #2 \__dim_eval_end: }
\cs_new_protected:Npn \dim_gset:Nn { \tex_global:D \dim_set:Nn }
@@ -148,40 +142,40 @@
}
\prg_new_conditional:Npnn \dim_compare:n #1 { p , T , F , TF }
{
- \exp_after:wN \__dim_compare_aux:w \dim_use:N \__dim_eval:w #1
- \__prg_compare_error: \__dim_eval_end:
- \prg_return_true:
- \else:
- \prg_return_false:
- \fi:
+ \exp_after:wN \__dim_compare:w
+ \dim_use:N \__dim_eval:w #1 \__prg_compare_error:
}
-\exp_args:Nno \use:nn
- { \cs_new:Npn \__dim_compare_aux:w #1 }
- { \tl_to_str:n { pt } }
- #2 \__prg_compare_error:
+\cs_new:Npn \__dim_compare:w #1 \__prg_compare_error:
{
- \exp_after:wN \__dim_compare_aux:NNw #2 ?? \q_mark
- #1 pt #2
+ \exp_after:wN \if_false: \tex_romannumeral:D -`0
+ \__dim_compare:wNN #1 ? { = \__dim_compare_end:w \else: } \q_stop
}
-\cs_new:Npn \__dim_compare_aux:NNw #1#2#3 \q_mark
+\exp_args:Nno \use:nn
+ { \cs_new:Npn \__dim_compare:wNN #1 }
+ { \tl_to_str:n {pt} }
+ #2#3
{
- \use:c { __dim_compare_ #1 \if_meaning:w = #2 = \fi: :NNw }
- \__prg_compare_error:Nw #1
+ \if_meaning:w = #3
+ \use:c { __dim_compare_#2:w }
+ \fi:
+ #1 pt \exp_stop_f:
+ \prg_return_false:
+ \exp_after:wN \use_none_delimit_by_q_stop:w
+ \fi:
+ \reverse_if:N \if_dim:w #1 pt #2
+ \exp_after:wN \__dim_compare:wNN
+ \dim_use:N \__dim_eval:w #3
}
-\cs_new:cpn { __dim_compare_=:NNw } #1#2#3 =
- { \if_dim:w #3 = \__dim_eval:w }
-\cs_new:cpn { __dim_compare_<:NNw } #1#2#3 <
- { \if_dim:w #3 < \__dim_eval:w }
-\cs_new:cpn { __dim_compare_>:NNw } #1#2#3 >
- { \if_dim:w #3 > \__dim_eval:w }
-\cs_new:cpn { __dim_compare_==:NNw } #1#2#3 ==
- { \if_dim:w #3 = \__dim_eval:w }
-\cs_new:cpn { __dim_compare_!=:NNw } #1#2#3 !=
- { \reverse_if:N \if_dim:w #3 = \__dim_eval:w }
-\cs_new:cpn { __dim_compare_<=:NNw } #1#2#3 <=
- { \reverse_if:N \if_dim:w #3 > \__dim_eval:w }
-\cs_new:cpn { __dim_compare_>=:NNw } #1#2#3 >=
- { \reverse_if:N \if_dim:w #3 < \__dim_eval:w }
+\cs_new:cpn { __dim_compare_ ! :w }
+ #1 \reverse_if:N #2 ! #3 = { #1 #2 = #3 }
+\cs_new:cpn { __dim_compare_ = :w }
+ #1 \__dim_eval:w = { #1 \__dim_eval:w }
+\cs_new:cpn { __dim_compare_ < :w }
+ #1 \reverse_if:N #2 < #3 = { #1 #2 > #3 }
+\cs_new:cpn { __dim_compare_ > :w }
+ #1 \reverse_if:N #2 > #3 = { #1 #2 < #3 }
+\cs_new:Npn \__dim_compare_end:w #1 \prg_return_false: #2 \q_stop
+ { #1 \prg_return_false: \else: \prg_return_true: \fi: }
\cs_new:Npn \dim_case:nnn #1
{
\tex_romannumeral:D
@@ -305,14 +299,8 @@
{ \skip_if_exist:NTF #1 { \skip_gzero:N #1 } { \skip_new:N #1 } }
\cs_generate_variant:Nn \skip_zero_new:N { c }
\cs_generate_variant:Nn \skip_gzero_new:N { c }
-\cs_new_eq:NN \skip_if_exist:NTF \cs_if_exist:NTF
-\cs_new_eq:NN \skip_if_exist:NT \cs_if_exist:NT
-\cs_new_eq:NN \skip_if_exist:NF \cs_if_exist:NF
-\cs_new_eq:NN \skip_if_exist_p:N \cs_if_exist_p:N
-\cs_new_eq:NN \skip_if_exist:cTF \cs_if_exist:cTF
-\cs_new_eq:NN \skip_if_exist:cT \cs_if_exist:cT
-\cs_new_eq:NN \skip_if_exist:cF \cs_if_exist:cF
-\cs_new_eq:NN \skip_if_exist_p:c \cs_if_exist_p:c
+\prg_new_eq_conditional:NNn \skip_if_exist:N \cs_if_exist:N { TF , T , F , p }
+\prg_new_eq_conditional:NNn \skip_if_exist:c \cs_if_exist:c { TF , T , F , p }
\cs_new_protected:Npn \skip_set:Nn #1#2
{ #1 ~ \etex_glueexpr:D #2 \scan_stop: }
\cs_new_protected:Npn \skip_gset:Nn { \tex_global:D \skip_set:Nn }
@@ -400,14 +388,8 @@
{ \muskip_if_exist:NTF #1 { \muskip_gzero:N #1 } { \muskip_new:N #1 } }
\cs_generate_variant:Nn \muskip_zero_new:N { c }
\cs_generate_variant:Nn \muskip_gzero_new:N { c }
-\cs_new_eq:NN \muskip_if_exist:NTF \cs_if_exist:NTF
-\cs_new_eq:NN \muskip_if_exist:NT \cs_if_exist:NT
-\cs_new_eq:NN \muskip_if_exist:NF \cs_if_exist:NF
-\cs_new_eq:NN \muskip_if_exist_p:N \cs_if_exist_p:N
-\cs_new_eq:NN \muskip_if_exist:cTF \cs_if_exist:cTF
-\cs_new_eq:NN \muskip_if_exist:cT \cs_if_exist:cT
-\cs_new_eq:NN \muskip_if_exist:cF \cs_if_exist:cF
-\cs_new_eq:NN \muskip_if_exist_p:c \cs_if_exist_p:c
+\prg_new_eq_conditional:NNn \muskip_if_exist:N \cs_if_exist:N { TF , T , F , p }
+\prg_new_eq_conditional:NNn \muskip_if_exist:c \cs_if_exist:c { TF , T , F , p }
\cs_new_protected:Npn \muskip_set:Nn #1#2
{ #1 ~ \etex_muexpr:D #2 \scan_stop: }
\cs_new_protected:Npn \muskip_gset:Nn { \tex_global:D \muskip_set:Nn }
@@ -443,25 +425,6 @@
\muskip_new:N \l_tmpb_muskip
\muskip_new:N \g_tmpa_muskip
\muskip_new:N \g_tmpb_muskip
-\prg_new_conditional:Npnn \skip_if_infinite_glue:n #1 { p , T , F , TF }
- { \skip_if_finite:nTF {#1} \prg_return_false: \prg_return_true: }
-\cs_new_eq:NN \prg_case_dim:nnn \dim_case:nnn
-\cs_new_eq:NN \dim_eval:w \__dim_eval:w
-\cs_new_eq:NN \dim_eval_end: \__dim_eval_end:
-\cs_new_protected_nopar:Npn \dim_set_max:Nn
- { \__dim_set_max:NNNn < \dim_set:Nn }
-\cs_new_protected_nopar:Npn \dim_gset_max:Nn
- { \__dim_set_max:NNNn < \dim_gset:Nn }
-\cs_new_protected_nopar:Npn \dim_set_min:Nn
- { \__dim_set_max:NNNn > \dim_set:Nn }
-\cs_new_protected_nopar:Npn \dim_gset_min:Nn
- { \__dim_set_max:NNNn > \dim_gset:Nn }
-\cs_new_protected:Npn \__dim_set_max:NNNn #1#2#3#4
- { \dim_compare:nNnT {#3} #1 {#4} { #2 #3 {#4} } }
-\cs_generate_variant:Nn \dim_set_max:Nn { c }
-\cs_generate_variant:Nn \dim_gset_max:Nn { c }
-\cs_generate_variant:Nn \dim_set_min:Nn { c }
-\cs_generate_variant:Nn \dim_gset_min:Nn { c }
%%
%%
%% End of file `l3skip.sty'.
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3tl.sty b/Master/texmf-dist/tex/latex/l3kernel/l3tl.sty
index 6035dfe2f07..28148389931 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3tl.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3tl.sty
@@ -13,7 +13,7 @@
%%
%% Do not distribute a modified version of this file.
%%
-%% File: l3tl.dtx Copyright (C) 1990-2012 The LaTeX3 Project
+%% File: l3tl.dtx Copyright (C) 1990-2013 The 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
@@ -46,7 +46,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3bootstrap}
-\GetIdInfo$Id: l3tl.dtx 4339 2012-11-24 19:16:43Z joseph $
+\GetIdInfo$Id: l3tl.dtx 4415 2013-01-08 12:32:51Z bruno $
{L3 Token lists}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -95,14 +95,8 @@
{ \tl_gset:Nx #1 { \exp_not:o {#2} \exp_not:o {#3} } }
\cs_generate_variant:Nn \tl_concat:NNN { ccc }
\cs_generate_variant:Nn \tl_gconcat:NNN { ccc }
-\cs_new_eq:NN \tl_if_exist:NTF \cs_if_exist:NTF
-\cs_new_eq:NN \tl_if_exist:NT \cs_if_exist:NT
-\cs_new_eq:NN \tl_if_exist:NF \cs_if_exist:NF
-\cs_new_eq:NN \tl_if_exist_p:N \cs_if_exist_p:N
-\cs_new_eq:NN \tl_if_exist:cTF \cs_if_exist:cTF
-\cs_new_eq:NN \tl_if_exist:cT \cs_if_exist:cT
-\cs_new_eq:NN \tl_if_exist:cF \cs_if_exist:cF
-\cs_new_eq:NN \tl_if_exist_p:c \cs_if_exist_p:c
+\prg_new_eq_conditional:NNn \tl_if_exist:N \cs_if_exist:N { TF , T , F , p }
+\prg_new_eq_conditional:NNn \tl_if_exist:c \cs_if_exist:c { TF , T , F , p }
\tl_const:Nn \c_empty_tl { }
\tl_const:Nx \c_job_name_tl { \tex_jobname:D }
\tl_const:Nn \c_space_tl { ~ }
@@ -743,7 +737,7 @@
}
\cs_new_protected:Npn \tl_show:N #1
{
- \cs_if_exist:NTF #1
+ \tl_if_exist:NTF #1
{ \cs_show:N #1 }
{
\__msg_kernel_error:nnx { kernel } { variable-not-defined }
@@ -757,21 +751,6 @@
\tl_new:N \g_tmpb_tl
\tl_new:N \l_tmpa_tl
\tl_new:N \l_tmpb_tl
-\cs_new_eq:NN \tl_length_tokens:n \tl_count_tokens:n
-\cs_new_eq:NN \tl_length:N \tl_count:N
-\cs_new_eq:NN \tl_length:c \tl_count:c
-\cs_new_eq:NN \tl_length:n \tl_count:n
-\cs_new_eq:NN \tl_length:V \tl_count:V
-\cs_new_eq:NN \tl_length:o \tl_count:o
-\prg_new_conditional:Npnn \tl_if_empty:x #1 { p , T , F , TF }
- { \__str_if_eq_x_return:nn { } {#1} }
-\prg_new_eq_conditional:NNn \tl_if_head_group:n \tl_if_head_is_group:n
- { p , T , F , TF }
-\prg_new_eq_conditional:NNn \tl_if_head_N_type:n \tl_if_head_is_N_type:n
- { p , T , F , TF }
-\prg_new_eq_conditional:NNn \tl_if_head_space:n \tl_if_head_is_space:n
- { p , T , F , TF }
-\cs_new:Npn \tl_tail:w #1#2 \q_stop {#2}
%%
%%
%% End of file `l3tl.sty'.
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3token.sty b/Master/texmf-dist/tex/latex/l3kernel/l3token.sty
index c4b3a28e6a5..5dd39858b49 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3token.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3token.sty
@@ -13,7 +13,7 @@
%%
%% Do not distribute a modified version of this file.
%%
-%% File: l3token.dtx Copyright (C) 2005-2012 The LaTeX3 Project
+%% File: l3token.dtx Copyright (C) 2005-2013 The 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
@@ -46,7 +46,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3bootstrap}
-\GetIdInfo$Id: l3token.dtx 4384 2012-12-20 15:47:56Z bruno $
+\GetIdInfo$Id: l3token.dtx 4428 2013-01-10 13:23:29Z bruno $
{L3 Experimental token manipulation}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -617,15 +617,13 @@
\cs_new_protected_nopar:Npn \__peek_ignore_spaces_execute_branches:
{
\if_meaning:w \l_peek_token \c_space_token
- \tex_afterassignment:D \__peek_ignore_spaces_execute_branches_aux:
- \exp_after:wN \cs_set_eq:NN
- \exp_after:wN \__peek_tmp:w
+ \exp_after:wN \peek_after:Nw
+ \exp_after:wN \__peek_ignore_spaces_execute_branches:
+ \tex_romannumeral:D -`0
\else:
\exp_after:wN \__peek_execute_branches:
\fi:
}
-\cs_new_protected_nopar:Npn \__peek_ignore_spaces_execute_branches_aux:
- { \peek_after:Nw \__peek_ignore_spaces_execute_branches: }
\group_begin:
\cs_set:Npn \__peek_def:nnnn #1#2#3#4
{
diff --git a/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty b/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
index 7411941082b..eff969849a0 100644
--- a/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
+++ b/Master/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
@@ -13,7 +13,7 @@
%%
%% Do not distribute a modified version of this file.
%%
-%% File: l3keys2e.dtx (C) Copyright 2009,2011,2012 The LaTeX3 Project
+%% File: l3keys2e.dtx (C) Copyright 2009,2011-2013 The 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
@@ -46,8 +46,8 @@
%%
%% -----------------------------------------------------------------------
%%
-\RequirePackage{expl3}[2012/12/21]
-\@ifpackagelater{expl3}{2012/12/21}
+\RequirePackage{expl3}[2013/03/12]
+\@ifpackagelater{expl3}{2013/03/12}
{}
{%
\PackageError{l3keys2e}{Support package l3kernel too old}
@@ -59,15 +59,15 @@
}%
\endinput
}
-\GetIdInfo$Id: l3keys2e.dtx 4390 2012-12-21 06:59:20Z joseph $
+\GetIdInfo$Id: l3keys2e.dtx 4467 2013-03-12 08:29:05Z joseph $
{LaTeX2e option processing using LaTeX3 keys}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
-\clist_new:N \__keys_latexe_options_clist
+\clist_new:N \l__keys_latexe_options_clist
\bool_new:N \l__keys_process_class_bool
\cs_new_protected:Npn \__keys_latexe_options:n #1
{
- \clist_clear:N \__keys_latexe_options_clist
+ \clist_clear:N \l__keys_latexe_options_clist
\__keys_latexe_options_global:n {#1}
\__keys_latexe_options_local:
\keys_if_exist:nnF {#1} { unknown }
@@ -81,7 +81,7 @@
}
}
}
- \keys_set:nV {#1} \__keys_latexe_options_clist
+ \keys_set:nV {#1} \l__keys_latexe_options_clist
\AtEndOfPackage { \cs_set_eq:NN \@unprocessedoptions \scan_stop: }
}
\cs_new_protected:Npn \__keys_latexe_options_global:n #1
@@ -99,12 +99,12 @@
\cs_new_protected:Npn \__keys_latexe_options_class:n #1
{
\keys_if_exist:nnTF {#1} { unknown }
- { \clist_put_right:No \__keys_latexe_options_clist \@classoptionslist }
+ { \clist_put_right:No \l__keys_latexe_options_clist \@classoptionslist }
{
\clist_map_inline:Nn \@classoptionslist
{
\keys_if_exist:nnTF {#1} { \__keys_latexe_remove_equals:n {##1} }
- { \clist_put_right:Nn \__keys_latexe_options_clist {##1} }
+ { \clist_put_right:Nn \l__keys_latexe_options_clist {##1} }
{ \clist_put_right:Nn \@unusedoptionlist {##1} }
}
}
@@ -115,7 +115,7 @@
{
\keys_if_exist:nnT {#1} { \__keys_latexe_remove_equals:n {##1} }
{
- \clist_put_right:Nn \__keys_latexe_options_clist {##1}
+ \clist_put_right:Nn \l__keys_latexe_options_clist {##1}
\clist_remove_all:Nn \@unusedoptionlist {##1}
}
}
@@ -126,7 +126,7 @@
{
\cs_if_exist:cT { opt@ \@currname . \@currext }
{
- \exp_args:NNc \clist_put_right:NV \__keys_latexe_options_clist
+ \exp_args:NNc \clist_put_right:NV \l__keys_latexe_options_clist
{ opt@ \@currname . \@currext }
}
}
diff --git a/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty b/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
index 16f16a26a13..fd2d7b22112 100644
--- a/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
+++ b/Master/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
@@ -17,7 +17,7 @@
%% David Carlisle
%% (C) Copyright 2004-2008 Frank Mittelbach,
%% The LaTeX3 Project
-%% (C) Copyright 2009-2012 The LaTeX3 Project
+%% (C) Copyright 2009-2013 The 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
@@ -50,8 +50,8 @@
%%
%% -----------------------------------------------------------------------
%%
-\RequirePackage{expl3}[2012/12/21]
-\@ifpackagelater{expl3}{2012/12/21}
+\RequirePackage{expl3}[2013/03/12]
+\@ifpackagelater{expl3}{2013/03/12}
{}
{%
\PackageError{xparse}{Support package l3kernel too old}
@@ -63,7 +63,7 @@
}%
\endinput
}
-\GetIdInfo$Id: xparse.dtx 4390 2012-12-21 06:59:20Z joseph $
+\GetIdInfo$Id: xparse.dtx 4467 2013-03-12 08:29:05Z joseph $
{L3 Experimental document command parser}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -666,7 +666,15 @@
\tl_if_in:nnTF {####1} {#1}
{ \__xparse_grab_D_nested:NNnnN #1 #2 {####1} {#3} #4 }
{
- \__xparse_add_arg:o { \use_none:n ####1 }
+ \tl_if_blank:oTF { \use_none:n ####1 }
+ { \__xparse_add_arg:o { \use_none:n ####1 } }
+ {
+ \str_if_eq_x:nnTF
+ { \exp_not:o { \use_none:n ####1 } }
+ { { \exp_not:o { \use_ii:nnn ####1 \q_nil } } }
+ { \__xparse_add_arg:o { \use_ii:nn ####1 } }
+ { \__xparse_add_arg:o { \use_none:n ####1 } }
+ }
#3 \l__xparse_args_tl
}
}
@@ -1131,7 +1139,15 @@
\exp_args:No \tl_if_empty:oTF
{ #3 { \use_none:nnn } #2 \q__xparse #5 #4 \q__xparse #5 }
{
- \__xparse_put_arg_expandable:ow { \use_none:nn #1#2 }
+ \tl_if_blank:oTF { \use_none:nn #1#2 }
+ { \__xparse_put_arg_expandable:ow { } }
+ {
+ \str_if_eq_x:nnTF
+ { \exp_not:o { \use_none:nn #1#2 } }
+ { { \exp_not:o { \use_iii:nnnn #1#2 \q_nil } } }
+ { \__xparse_put_arg_expandable:ow { \use_iii:nnn #1#2 } }
+ { \__xparse_put_arg_expandable:ow { \use_none:nn #1#2 } }
+ }
#6 \q__xparse #7
}
{
@@ -1155,7 +1171,18 @@
{ #4 {#3} \q__xparse #5 {#6} }
}
\cs_new:Npn \__xparse_expandable_grab_D_alt:Nwn #1#2 \q__xparse #3
- { \__xparse_put_arg_expandable:ow { \use_none:n #3 } #2 \q__xparse #1 }
+ {
+ \tl_if_blank:oTF { \use_none:nn #1#2 }
+ { \__xparse_put_arg_expandable:ow { } }
+ {
+ \str_if_eq_x:nnTF
+ { \exp_not:o { \use_none:n #3 } }
+ { { \exp_not:o { \use_ii:nnn #3 \q_nil } } }
+ { \__xparse_put_arg_expandable:ow { \use_ii:nn #3 } }
+ { \__xparse_put_arg_expandable:ow { \use_none:n #3 } }
+ }
+ #2 \q__xparse #1
+ }
\cs_new:Npn \__xparse_expandable_grab_m:w #1 \q__xparse #2
{ #2 { \__xparse_expandable_grab_m_aux:wNn #1 \q__xparse #2 } }
\cs_new:Npn \__xparse_expandable_grab_m_aux:wNn #1 \q__xparse #2#3
@@ -1578,14 +1605,20 @@
\cs_new_eq:NN \GetDocumentEnvironmmentArgSpec \__xparse_get_arg_spec:n
\cs_new_eq:NN \ShowDocumentCommandArgSpec \__xparse_show_arg_spec:N
\cs_new_eq:NN \ShowDocumentEnvironmentArgSpec \__xparse_show_arg_spec:n
-\DeclareOption { log-declarations = true } { }
-\DeclareOption { log-declarations = false }
+\clist_new:N \l__xparse_options_clist
+\DeclareOption* { \clist_put_right:NV \l__xparse_options_clist \CurrentOption }
+\ProcessOptions \relax
+\keys_define:nn { xparse }
+ {
+ log-declarations .bool_set:N = \l__xparse_log_bool ,
+ log-declarations .initial:n = true
+ }
+\keys_set:nV { xparse } \l__xparse_options_clist
+\bool_if:NF \l__xparse_log_bool
{
\msg_redirect_module:nnn { LaTeX / xparse } { info } { none }
\msg_redirect_module:nnn { LaTeX / xparse } { warning } { none }
}
-\DeclareOption { log-declarations } { }
-\ProcessOptions \scan_stop:
%%
%%
%% End of file `xparse.sty'.
diff --git a/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty b/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty
index 7c33f8c0803..38767bd6e67 100644
--- a/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty
+++ b/Master/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.sty
@@ -17,7 +17,7 @@
%% David Carlisle
%% (C) Copyright 2004-2010 Frank Mittelbach,
%% The LaTeX3 Project
-%% (C) Copyright 2011,2012 The LaTeX3 Project
+%% (C) Copyright 2011-2013 The 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
@@ -50,8 +50,8 @@
%%
%% -----------------------------------------------------------------------
%%
-\RequirePackage{expl3}[2012/12/21]
-\@ifpackagelater{expl3}{2012/12/21}
+\RequirePackage{expl3}[2013/03/12]
+\@ifpackagelater{expl3}{2013/03/12}
{}
{%
\PackageError{xtemplate}{Support package l3kernel too old}
@@ -63,7 +63,7 @@
}%
\endinput
}
-\GetIdInfo$Id: xtemplate.dtx 4390 2012-12-21 06:59:20Z joseph $
+\GetIdInfo$Id: xtemplate.dtx 4467 2013-03-12 08:29:05Z joseph $
{L3 Experimental prototype document functions}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}