summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/expl3.sty15
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3basics.sty6
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3box.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3clist.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3coffins.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3doc.cls322
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3expan.sty3
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3file.sty568
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3int.sty40
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3io.sty533
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3luatex.sty4
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3msg.sty28
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3prg.sty18
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3prop.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3quark.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3skip.sty2
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3tl.sty16
-rw-r--r--Master/texmf-dist/tex/latex/l3kernel/l3token.sty22
18 files changed, 793 insertions, 794 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
index 31d7c78ee60..28dfab3ab00 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty
@@ -59,8 +59,8 @@
}
\def\ExplFileName{expl3}
\def\ExplFileDescription{L3 Experimental code bundle wrapper}
-\def\ExplFileDate{2012/02/08}
-\def\ExplFileVersion{3343}
+\def\ExplFileDate{2012/02/26}
+\def\ExplFileVersion{3471}
\RequirePackage{etex}
\reserveinserts{32}
\ProvidesExplPackage
@@ -155,19 +155,11 @@
\cs_check_exists:N #1
\cs_set_eq:NN #1
}
- \cs_undefine:N \bool_set_eq:cN
- \cs_undefine:N \bool_set_eq:Nc
- \cs_undefine:N \bool_set_eq:cc
- \cs_generate_variant:Nn \bool_set_eq:NN { c , Nc , cc }
\cs_set_protected:Npn \bool_gset_eq:NN #1
{
\cs_check_exists:N #1
- \cs_set_eq:NN #1
+ \cs_gset_eq:NN #1
}
- \cs_undefine:N \bool_gset_eq:cN
- \cs_undefine:N \bool_gset_eq:Nc
- \cs_undefine:N \bool_gset_eq:cc
- \cs_generate_variant:Nn \bool_gset_eq:NN { c , Nc , cc }
\cs_set_protected:Npn \bool_set:Nn #1#2
{
\cs_check_exists:N #1
@@ -184,7 +176,6 @@
l3token,
l3prop,
l3msg,
- l3io,
l3file,
l3skip,
l3keys,
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3basics.sty b/Master/texmf-dist/tex/latex/l3kernel/l3basics.sty
index 4ea5a1ce780..2193b30348f 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3basics.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3basics.sty
@@ -46,7 +46,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3basics.dtx 3317 2012-02-06 12:26:40Z bruno $
+\GetIdInfo$Id: l3basics.dtx 3460 2012-02-26 12:16:41Z will $
{L3 Experimental basic definitions}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -451,8 +451,8 @@
\msg_kernel_error:nnxx { kernel } { command-already-defined }
{ \token_to_str:N #1 } { \token_to_meaning:N #1 }
}
- \iow_log:x { Defining~\token_to_str:N #1~ \msg_line_context: }
- }
+ \iow_log:x { Defining~\token_to_str:N #1~ \msg_line_context: }
+ }
\fi:
\cs_set_protected_nopar:Npn \chk_if_free_cs:c
{ \exp_args:Nc \chk_if_free_cs:N }
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3box.sty b/Master/texmf-dist/tex/latex/l3kernel/l3box.sty
index 9176a912928..1fe36dc7ca3 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3box.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3box.sty
@@ -46,7 +46,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3box.dtx 3158 2012-01-09 00:47:42Z bruno $
+\GetIdInfo$Id: l3box.dtx 3432 2012-02-18 12:16:20Z joseph $
{L3 Experimental boxes}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3clist.sty b/Master/texmf-dist/tex/latex/l3kernel/l3clist.sty
index bf523e186e1..7fc71a96c04 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3clist.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3clist.sty
@@ -48,7 +48,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3clist.dtx 3157 2012-01-09 00:42:07Z bruno $
+\GetIdInfo$Id: l3clist.dtx 3460 2012-02-26 12:16:41Z will $
{L3 Experimental comma separated lists}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3coffins.sty b/Master/texmf-dist/tex/latex/l3kernel/l3coffins.sty
index c13164ef700..5c5ea863483 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3coffins.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3coffins.sty
@@ -47,7 +47,7 @@
%% -----------------------------------------------------------------------
%%
\RequirePackage{l3names}
-\GetIdInfo$Id: l3coffins.dtx 3155 2012-01-08 22:53:03Z bruno $
+\GetIdInfo$Id: l3coffins.dtx 3460 2012-02-26 12:16:41Z will $
{L3 Experimental coffin code layer}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
index 33821fa37f4..e01b5752fd5 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls
@@ -52,7 +52,7 @@
\let \filedateOld \ExplFileDate
\let \fileversionOld \ExplFileVersion
\let \filedescriptionOld \ExplFileDescription
-\GetIdInfo$Id: l3doc.dtx 3255 2012-01-28 20:31:12Z joseph $
+\GetIdInfo$Id: l3doc.dtx 3464 2012-02-26 15:30:29Z bruno $
{L3 Experimental documentation class}
\ProvidesExplClass
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -125,7 +125,22 @@
\ProcessOptions
\LoadClass{article}
\RequirePackage{doc}
-\RequirePackage{array,alphalph,booktabs,color,colortbl,fixltx2e,enumitem,pifont,textcomp,trace,underscore,csquotes,fancyvrb}
+\RequirePackage
+ {
+ array,
+ alphalph,
+ booktabs,
+ color,
+ colortbl,
+ fixltx2e,
+ enumitem,
+ pifont,
+ textcomp,
+ trace,
+ underscore,
+ csquotes,
+ fancyvrb
+ }
\raggedbottom
\fvset{gobble=2}
\cs_set_eq:NN \verbatim \Verbatim
@@ -302,15 +317,14 @@
\coffin_clear:N \l_doc_syntax_coffin
\coffin_clear:N \l_doc_names_coffin
- \bool_gset_false:N \l_doc_meta_TF_bool
- \bool_gset_false:N \l_doc_meta_pTF_bool
- \bool_gset_false:N \l_doc_meta_EXP_bool
- \bool_gset_false:N \l_doc_meta_rEXP_bool
+ \bool_set_false:N \l_doc_meta_TF_bool
+ \bool_set_false:N \l_doc_meta_pTF_bool
+ \bool_set_false:N \l_doc_meta_EXP_bool
+ \bool_set_false:N \l_doc_meta_rEXP_bool
\keys_set:nn { l3doc/function } {#1}
- \char_set_catcode_active:N \<
- \cs_set_eq:NN < \doc_open_meta:n
+ \char_set_active_eq:NN < \doc_open_meta:w
\group_begin:
\MakePrivateLetters
@@ -324,10 +338,6 @@
}
{
\vcoffin_set_end:
- \hcoffin_set:Nn \l_doc_names_coffin
- {
- \exp_args:NV \function_typeset:n \l_doc_function_input_tl
- }
\bool_if:NTF \l_doc_long_name_bool
{
\coffin_join:NnnNnnnn
@@ -387,40 +397,20 @@
}
\cs_gset_nopar:Npn \function_typeset:n #1
{
-
- \cs_set_nopar:Npn \nextnewline{\cs_gset_nopar:Npn\nextnewline{\\}}
\tl_gclear:N \g_doc_macro_tl
- \prop_clear:N \l_doc_functions_block_prop
-
+ % populate "\l_doc_functions_block_prop" with info on the functions present:
\clist_map_function:nN {#1} \doc_parse_functions:n
\small\ttfamily
\begin{tabular}{ @{} l @{} r @{} }
\toprule
- \prop_map_function:NN \l_doc_functions_block_prop \doc_show_functions:nn
- \\
-
- \bool_if:nF { \tl_if_empty_p:N \l_doc_date_added_tl &&
- \tl_if_empty_p:N \l_doc_date_updated_tl }
- { \midrule }
-
- \tl_if_empty:NF \l_doc_date_added_tl
- {
- \multicolumn{2}{@{}r@{}}
- { \scriptsize New:\,\l_doc_date_added_tl } \\
- }
-
- \tl_if_empty:NF \l_doc_date_updated_tl
- {
- \multicolumn{2}{@{}r@{}}
- { \scriptsize Updated:\,\l_doc_date_updated_tl } \\
- }
+ \prop_map_function:NN \l_doc_functions_block_prop \doc_typeset_functions:nn
+ \doc_typeset_dates:
\bottomrule
\end{tabular}
\normalfont\normalsize
}
-
\prop_new:N \l_doc_functions_block_prop
\cs_generate_variant:Nn \prop_put:Nnn {Nxx}
\cs_new:Nn \doc_parse_functions:n
@@ -429,10 +419,10 @@
{
\tl_gset_eq:NN \l_doc_function_name_prefix_tl \@backslashchar
% for the weird functions named "\::N" and so on:
-\exp_args:Nx \tl_if_head_eq_charcode:nNTF { \cs_to_str:N #1 } {:}
+\exp_args:Nx \tl_if_head_eq_charcode:nNTF { \cs_to_str:N #1 } { : }
{
% again, no variants:
-\prop_put:Nxx \l_doc_functions_block_prop { \cs_to_str:N #1 } { }
+\prop_put:Nxx \l_doc_functions_block_prop { \cs_to_str:N #1 } { {-1} {} }
}
{
% finally, for regular old csnames:
@@ -442,12 +432,19 @@
{
\prop_put:Nxx \l_doc_functions_block_prop
{ \cs_get_function_name:N #1 }
-{ \l_doc_tmp_tl , \cs_get_function_signature:N #1 }
+{
+ \l_doc_tmp_tl ,
+ {\cs_get_arg_count_from_signature:N #1}
+ {\cs_get_function_signature:N #1}
+}
}
{
\prop_put:Nxx \l_doc_functions_block_prop
{ \cs_get_function_name:N #1 }
-{ \cs_get_function_signature:N #1 }
+{
+ {\cs_get_arg_count_from_signature:N #1}
+ {\cs_get_function_signature:N #1}
+}
}
}
}
@@ -455,105 +452,121 @@
{
% for now don't bother splitting into variants:
\tl_gclear:N \l_doc_function_name_prefix_tl
-\prop_put:Nxx \l_doc_functions_block_prop { #1 } { }
+\prop_put:Nxx \l_doc_functions_block_prop { #1 } { {-1} {} }
}
}
-\cs_new:Nn \doc_show_functions:nn
+\cs_new:Nn \doc_typeset_functions:nn
{
\clist_gset:Nn \l_doc_variants_clist {#2}
\clist_gpop:NN \l_doc_variants_clist \l_doc_tmp_tl
- \exp_args:Nx \doc_showmacro:n
- { \exp_not:c {#1 \tl_if_empty:NF \l_doc_tmp_tl { : \l_doc_tmp_tl } } }
+ \exp_args:Nc \doc_typeset_functions_aux:N
+ {
+ #1
+ \int_compare:nT { \exp_after:wN \use_i:nn \l_doc_tmp_tl > -1 } {:}
+ \int_compare:nT { \exp_after:wN \use_i:nn \l_doc_tmp_tl > 0 }
+ { \exp_after:wN \use_ii:nn \l_doc_tmp_tl }
+ }
+ \\
}
-\cs_new_nopar:Nn \doc_showmacro:n {
+\cs_new_nopar:Nn \doc_typeset_functions_aux:N
+{
\bool_if:NT \l_doc_meta_pTF_bool {
\tl_set:Nx \l_doc_pTF_name_tl { \doc_predicate_from_base:N #1 }
- \doc_special_main_index:o { \token_to_str:N \l_doc_pTF_name_tl }
- \seq_gput_right:Nx \g_doc_functions_seq { \tl_to_str:N \l_doc_pTF_name_tl }
+ \doc_special_main_index:o { \tl_to_str:N \l_doc_pTF_name_tl }
+ \seq_gput_right:Nx \g_doc_functions_seq { \l_doc_function_name_prefix_tl \l_doc_pTF_name_tl }
}
\bool_if:NTF \l_doc_meta_TF_bool {
\doc_special_main_index:o { \token_to_str:N #1 TF }
- \seq_gput_right:Nx \g_doc_functions_seq { \tl_to_str:n { #1 TF } }
- \seq_gput_right:Nx \g_doc_functions_seq { \tl_to_str:n { #1 T } }
- \seq_gput_right:Nx \g_doc_functions_seq { \tl_to_str:n { #1 F } }
+ \seq_gput_right:Nx \g_doc_functions_seq { \token_to_str:N #1 TF }
}{
\doc_special_main_index:o { \token_to_str:N #1 }
- \seq_gput_right:Nx \g_doc_functions_seq { \tl_to_str:n { #1 } }
+ \seq_gput_right:Nx \g_doc_functions_seq { \tl_to_str:n {#1} }
}
\bool_if:NTF \l_doc_meta_pTF_bool {
+
\bool_gset_false:N \l_doc_meta_TF_bool
- \exp_args:Nc \doc_showmacro_aux_ii:N \l_doc_pTF_name_tl
+ \exp_args:Nc \doc_typeset_function_block:N { \l_doc_pTF_name_tl }
\bool_gset_true:N \l_doc_meta_TF_bool
- \exp_args:Nc \doc_showmacro_aux_ii:N { \cs_to_str:N #1 }
+
+ \\
+ \doc_typeset_function_block:N #1
+
}{
\exp_args:Nx \tl_if_head_eq_charcode:nNTF { \exp_after:wN \use_none:n \token_to_str:N #1 } {:}
- { \doc_showmacro_aux_iii:N #1 }
- { \doc_showmacro_aux_ii:N #1 }
+ { \doc_show_macro_unusual:N #1 }
+ { \doc_typeset_function_block:N #1 }
}
}
-\cs_set_nopar:Nn \doc_showmacro_aux_ii:N {
- \nextnewline
+\cs_set_nopar:Nn \doc_typeset_function_block:N {
\tl_gset:Nx \l_doc_function_name_tl { \cs_get_function_name:N #1 }
\tl_gset:Nx \l_doc_function_sig_tl { \cs_get_function_signature:N #1 }
\tl_gset:Nx \g_doc_macro_tl { \l_doc_function_name_prefix_tl \l_doc_function_name_tl }
- \g_doc_macro_tl
- \int_compare:nT { \cs_get_arg_count_from_signature:N #1 >= 0 }
- { : \l_doc_function_sig_tl }
-
+ \doc_typeset_function_basename:N #1
\bool_if:NT \l_doc_meta_TF_bool { \doc_typeset_TF: }
+ \doc_typeset_expandability:
+ \clist_if_empty:NF \l_doc_variants_clist { \doc_typeset_variants: }
+ \bool_if:NT \g_doc_full_bool { \doc_label_function: }
- &
- \bool_if:NT \l_doc_meta_EXP_bool {
- \hspace{\tabcolsep}
- \hyperlink{expstar} {$\star$}
- }
- \bool_if:NT \l_doc_meta_rEXP_bool {
- \hspace{\tabcolsep}
- \hyperlink{rexpstar} {\ding{73}} % hollow star
- }
-
- \clist_if_empty:NF \l_doc_variants_clist
- {
- \\
- \doc_typeset_aux:n \g_doc_macro_tl :
- \int_compare:nTF { \clist_length:N \l_doc_variants_clist == 1 }
- { \l_doc_variants_clist }
- {
- \textrm(
- \clist_pop:NN \l_doc_variants_clist \l_doc_tmp_tl
- \l_doc_tmp_tl
- \clist_map_inline:Nn \l_doc_variants_clist {\textrm|##1}
- \textrm)
- }
- \bool_if:NT \l_doc_meta_TF_bool { \doc_typeset_TF: }
- &
- \bool_if:NT \l_doc_meta_EXP_bool {
- \hspace{\tabcolsep}
- \hyperlink{expstar} {$\star$}
+}
+\cs_set:Nn \doc_typeset_function_basename:N
+ {
+ \g_doc_macro_tl
+ \int_compare:nT { \cs_get_arg_count_from_signature:N #1 > -1 } { : }
+ \int_compare:nT { \cs_get_arg_count_from_signature:N #1 > 0 }
+ { \l_doc_function_sig_tl }
}
- \bool_if:NT \l_doc_meta_rEXP_bool {
- \hspace{\tabcolsep}
- \hyperlink{rexpstar} {\ding{73}} % hollow star
+\cs_set:Nn \doc_typeset_expandability:
+ {
+ &
+ \bool_if:NT \l_doc_meta_EXP_bool {
+ \hspace{\tabcolsep}
+ \hyperlink{expstar} {$\star$}
+ }
+ \bool_if:NT \l_doc_meta_rEXP_bool {
+ \hspace{\tabcolsep}
+ \hyperlink{rexpstar} {\ding{73}} % hollow star
+ }
}
+\cs_set:Nn \doc_typeset_variants:
+ {
+ \\
+ \doc_typeset_aux:n \g_doc_macro_tl :
+ \int_compare:nTF { \clist_length:N \l_doc_variants_clist == 1 }
+ { \exp_after:wN \use_ii:nn \l_doc_variants_clist }
+ {
+ \textrm(
+ \clist_pop:NN \l_doc_variants_clist \l_doc_tmp_tl
+ \exp_after:wN \use_ii:nn \l_doc_tmp_tl
+ \clist_map_inline:Nn \l_doc_variants_clist {\textrm| \use_ii:nn ##1}
+ \textrm)
+ }
+ \bool_if:NT \l_doc_meta_TF_bool { \doc_typeset_TF: }
+ &
+ \bool_if:NT \l_doc_meta_EXP_bool {
+ \hspace{\tabcolsep}
+ \hyperlink{expstar} {$\star$}
}
-
- \exp_args:NNf \tl_replace_all:Nnn \g_doc_macro_tl {\token_to_str:N _} {/}
- \exp_args:NNf \tl_replace_all:Nnn \g_doc_macro_tl {\@backslashchar} {}
- \bool_if:NT \g_doc_full_bool {
+ \bool_if:NT \l_doc_meta_rEXP_bool {
+ \hspace{\tabcolsep}
+ \hyperlink{rexpstar} {\ding{73}} % hollow star
+ }
+ }
+\cs_set:Nn \doc_label_function:
+ {
+ \exp_args:NNf \tl_replace_all:Nnn \g_doc_macro_tl {\token_to_str:N _} {/}
+ \exp_args:NNf \tl_replace_all:Nnn \g_doc_macro_tl {\@backslashchar} {}
\exp_args:Nx \label
{
doc/function//\g_doc_macro_tl
\tl_if_empty:NF \l_doc_function_sig_tl { : \l_doc_function_sig_tl }
}
}
-}
-\cs_set_nopar:Nn \doc_showmacro_aux_iii:N {
- \nextnewline
+\cs_set_nopar:Nn \doc_show_macro_unusual:N {
\tl_gset:Nx \g_doc_macro_tl { \token_to_str:N #1}
\token_to_str:N #1 &
@@ -563,6 +576,24 @@
\exp_args:Nx \label { doc/function//\g_doc_macro_tl }
}
}
+\cs_set:Nn \doc_typeset_dates:
+ {
+ \bool_if:nF { \tl_if_empty_p:N \l_doc_date_added_tl &&
+ \tl_if_empty_p:N \l_doc_date_updated_tl }
+ { \midrule }
+
+ \tl_if_empty:NF \l_doc_date_added_tl
+ {
+ \multicolumn{2}{@{}r@{}}
+ { \scriptsize New:\,\l_doc_date_added_tl } \\
+ }
+
+ \tl_if_empty:NF \l_doc_date_updated_tl
+ {
+ \multicolumn{2}{@{}r@{}}
+ { \scriptsize Updated:\,\l_doc_date_updated_tl } \\
+ }
+ }
\newenvironment{syntax}{
\small\ttfamily
\bool_if:NTF \l_doc_long_name_bool
@@ -591,44 +622,62 @@
\coffin_gset_eq:NN \l_doc_syntax_coffin \l_doc_syntax_coffin
\ignorespacesafterend
}
-\tl_map_inline:nn {0123456789} { \cs_gset_eq:cN {char_other_#1} #1 }
-\group_begin:
- \tl_map_inline:nn {0123456789} { \char_set_catcode_active:N #1 }
- \cs_new:Npn \doc_open_meta:n {
+\cs_new:Npn \doc_ensuremath_sb:n #1
+ {
+ \ensuremath{\sb{#1}}
+ }
+\cs_set_eq:NN \doc_meta:n \meta
+\cs_set:Npn \meta
+ {
\group_begin:
- \tl_map_function:nN {0123456789} \doc_assign_num:n
+ \char_set_active_eq:NN _ \doc_ensuremath_sb:n
+ \doc_close_meta:n
+ }
+\cs_new:Npn \doc_open_meta:w
+ {
+ \group_begin:
+ \char_set_active_eq:NN _ \doc_ensuremath_sb:n
\doc_close_meta:w
}
- \cs_new:Npn \Arg {
+\cs_new:Npn \Arg
+ {
\texttt{ \char`\{ }
\group_begin:
- \tl_map_function:nN {0123456789} \doc_assign_num:n
+ \char_set_active_eq:NN _ \doc_ensuremath_sb:n
\doc_close_Arg:n
}
-\group_end:
-\cs_new_nopar:Npn \doc_close_meta:w #1> { \meta {#1} \group_end: }
+\cs_new_nopar:Npn \doc_close_meta:n #1 { \doc_meta:n {#1} \group_end: }
+\cs_new_nopar:Npn \doc_close_meta:w #1> { \doc_meta:n {#1} \group_end: }
\cs_new_nopar:Npn \doc_close_Arg:n #1 {
- \meta {#1}
+ \doc_meta:n {#1}
\group_end:
\texttt{ \char`\} }
}
-\cs_new_nopar:Npn \doc_assign_num:n #1 {
- \cs_set_eq:cc { \string #1 } { char_other_\string #1 }
- \char_set_catcode_active:N #1
- \cs_set_nopar:Npn #1 { \unskip \, $ {} \sb { \use:c { char_other_\string #1 } } $ }
-}
+\keys_define:nn { l3doc/macro }
+ {
+ aux .code:n =
+ { \bool_set_true:N \l_doc_macro_aux_bool } ,
+ internal .code:n =
+ { \bool_set_true:N \l_doc_macro_internal_bool } ,
+ var .code:n =
+ { \bool_set_true:N \l_doc_macro_var_bool } ,
+ TF .code:n =
+ { \bool_set_true:N \l_doc_macro_TF_bool } ,
+ pTF .code:n =
+ { \bool_set_true:N \l_doc_macro_pTF_bool } ,
+ }
\renewcommand \macro [1][] {
\int_compare:nNnTF \currentgrouplevel=2
{ \int_gzero:N \g_doc_nested_macro_int }
{ \int_incr:N \g_doc_nested_macro_int }
- \bool_set_false:N \l_doc_macro_aux_bool
- \bool_set_false:N \l_doc_macro_internal_bool
- \bool_set_false:N \l_doc_macro_TF_bool
- \bool_set_false:N \l_doc_macro_pTF_bool
- \bool_set_false:N \l_doc_macro_var_bool
- \bool_set_false:N \l_doc_tested_bool
+ \bool_gset_false:N \l_doc_macro_aux_bool
+ \bool_gset_false:N \l_doc_macro_internal_bool
+ \bool_gset_false:N \l_doc_macro_TF_bool
+ \bool_gset_false:N \l_doc_macro_pTF_bool
+ \bool_gset_false:N \l_doc_macro_var_bool
+ \bool_gset_false:N \l_doc_tested_bool
\cs_set_eq:NN \doc_macroname_prefix:n \use:n
\cs_set_eq:NN \doc_macroname_suffix: \c_empty_tl
@@ -668,24 +717,23 @@
{
\clist_map_inline:Nn \l_doc_macro_input_clist
{
- \exp_args:Nf \doc_macro_single { \doc_predicate_from_base:w ##1 }
+ \exp_args:Nx \doc_macro_single:n { \doc_predicate_from_base:w ##1 \q_nil }
}
\bool_set_true:N \l_doc_macro_TF_bool
- \clist_map_function:NN \l_doc_macro_input_clist \doc_macro_single
+ \clist_map_function:NN \l_doc_macro_input_clist \doc_macro_single:n
\bool_set_false:N \l_doc_macro_TF_bool
}
- { \clist_map_function:NN \l_doc_macro_input_clist \doc_macro_single }
+ { \clist_map_function:NN \l_doc_macro_input_clist \doc_macro_single:n }
}
-\cs_set_nopar:Npn \doc_macro_opt_aux: { \bool_set_true:N \l_doc_macro_aux_bool }
-\cs_set_nopar:Npn \doc_macro_opt_internal: { \bool_set_true:N \l_doc_macro_internal_bool }
-\cs_set_nopar:Npn \doc_macro_opt_TF: { \bool_set_true:N \l_doc_macro_TF_bool }
-\cs_set_nopar:Npn \doc_macro_opt_pTF: { \bool_set_true:N \l_doc_macro_pTF_bool }
-\cs_set_nopar:Npn \doc_macro_opt_var: { \bool_set_true:N \l_doc_macro_var_bool }
\cs_set:Nn \doc_predicate_from_base:N
{
\cs_get_function_name:N #1 _p: \cs_get_function_signature:N #1
}
-\cs_set_nopar:Npn \doc_macro_single #1 {
+\cs_set:Npn \doc_predicate_from_base:w #1 : #2 \q_nil
+ {
+ #1 _p: #2
+ }
+\cs_set_nopar:Npn \doc_macro_single:n #1 {
\int_incr:N \l_doc_macro_int
\tl_set:Nx \saved@macroname { \token_to_str:N #1 }
\topsep\MacroTopsep
@@ -815,34 +863,38 @@
}
{ \prop_gput:NVn \g_doc_missing_tests_prop \l_doc_macro_input_clist {#1} }
}
+\cs_set:Nn \doc_macro_wrap:n
+ {
+ #1 \bool_if:NT \l_doc_macro_TF_bool {TF}
+ }
\cs_set:Nn \doc_texttt_comma:n {\,,~\texttt{#1}}
\cs_set:Npn \endmacro {
\int_compare:nT {\g_doc_nested_macro_int<1}
{
- \par\nobreak{\footnotesize(\emph{
+ \par\nobreak\noindent{\footnotesize(\emph{
End~ definition~ for~
\prg_case_int:nnn { \clist_length:N \l_doc_macro_input_clist }
{
- {1} { \texttt{ \clist_use:N \l_doc_macro_input_clist }. }
+ {1} { \texttt{ \doc_macro_wrap:n { \clist_use:N \l_doc_macro_input_clist } }. }
{2}
{
\tl_set:Nx \l_clist_first_tl { \clist_item:Nn \l_doc_macro_input_clist {0} }
\tl_set:Nx \l_clist_last_tl { \clist_item:Nn \l_doc_macro_input_clist {1} }
- \texttt{\l_clist_first_tl}\,~ and~ \texttt{\l_clist_last_tl}\,.
+ \texttt{\doc_macro_wrap:n\l_clist_first_tl}\,~ and~ \texttt{\doc_macro_wrap:n\l_clist_last_tl}\,.
}
{3}
{
\tl_set:Nx \l_clist_first_tl { \clist_item:Nn \l_doc_macro_input_clist {0} }
\tl_set:Nx \l_clist_mid_tl { \clist_item:Nn \l_doc_macro_input_clist {1} }
\tl_set:Nx \l_clist_last_tl { \clist_item:Nn \l_doc_macro_input_clist {2} }
- \texttt{\l_clist_first_tl}\,,~
- \texttt{\l_clist_mid_tl}\,,~
- and~ \texttt{\l_clist_last_tl}\,.
+ \texttt{\doc_macro_wrap:n\l_clist_first_tl}\,,~
+ \texttt{\doc_macro_wrap:n\l_clist_mid_tl}\,,~
+ and~ \texttt{\doc_macro_wrap:n\l_clist_last_tl}\,.
}
}
{
\tl_set:Nx \l_clist_first_tl { \clist_item:Nn \l_doc_macro_input_clist {0} }
- \texttt{\l_clist_first_tl}\,~and~others.
+ \texttt{\doc_macro_wrap:n\l_clist_first_tl}\,~and~others.
}
\bool_if:nT {
!\l_doc_macro_aux_bool &&
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3expan.sty b/Master/texmf-dist/tex/latex/l3kernel/l3expan.sty
index f3bf00e9997..d6463b70fac 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3expan.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3expan.sty
@@ -46,7 +46,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3expan.dtx 3196 2012-01-15 09:44:05Z joseph $
+\GetIdInfo$Id: l3expan.dtx 3460 2012-02-26 12:16:41Z will $
{L3 Experimental argument expansion}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -286,6 +286,7 @@
\cs_new_nopar:Npn \exp_last_unbraced:Nno { \::n \::o_unbraced \::: }
\cs_new_nopar:Npn \exp_last_unbraced:Noo { \::o \::o_unbraced \::: }
\cs_new_nopar:Npn \exp_last_unbraced:Nfo { \::f \::o_unbraced \::: }
+\cs_new_nopar:Npn \exp_last_unbraced:NnNo { \::n \::N \::o_unbraced \::: }
\cs_new_protected_nopar:Npn \exp_last_unbraced:Nx { \::x_unbraced \::: }
\cs_new:Npn \exp_last_two_unbraced:Noo #1#2#3
{ \exp_after:wN \exp_last_two_unbraced_aux:noN \exp_after:wN {#3} {#2} #1 }
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3file.sty b/Master/texmf-dist/tex/latex/l3kernel/l3file.sty
index f79666e640a..25eda0dc609 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) 2009-2012 The LaTeX3 Project
+%% File: l3file.dtx Copyright (C) 1990-2012 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{l3names}
-\GetIdInfo$Id: l3file.dtx 3287 2012-01-31 22:08:14Z joseph $
- {L3 Experimental file operations}
+\GetIdInfo$Id: l3file.dtx 3464 2012-02-26 15:30:29Z bruno $
+ {L3 Experimental file and I/O operations}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
\package_check_loaded_expl:
@@ -59,19 +59,27 @@
\seq_new:N \l_file_search_path_seq
\seq_new:N \l_file_internal_saved_path_seq
\seq_new:N \l_file_internal_seq
-\ior_new:N \g_file_internal_ior
-\cs_new_protected:Npn \file_add_path:nN #1
+\cs_new_protected:Npn \file_name_sanitize:nn #1#2
{
\group_begin:
- \tl_to_str_active_safe:Nx \l_file_internal_name_tl {#1}
- \tl_if_in:NnT \l_file_internal_name_tl { ~ }
+ \seq_map_inline:Nn \l_char_active_seq
+ { \cs_set_nopar:Npx ##1 { \token_to_str:N ##1 } }
+ \tl_set:Nx \l_file_internal_name_tl {#1}
+ \tl_set:Nx \l_file_internal_name_tl
+ { \tl_to_str:N \l_file_internal_name_tl }
+ \tl_if_in:NnTF \l_file_internal_name_tl { ~ }
{
- \msg_kernel_error:nnx { io } { space-in-file-name }
+ \msg_kernel_error:nnx { file } { space-in-file-name }
{ \l_file_internal_name_tl }
}
- \exp_args:NNo \group_end:
- \file_add_path_aux:nN \l_file_internal_name_tl
+ \use:x
+ {
+ \group_end:
+ \exp_not:n {#2} { \l_file_internal_name_tl }
+ }
}
+\cs_new_protected:Npn \file_add_path:nN #1
+ { \file_name_sanitize:nn {#1} { \file_add_path_aux:nN } }
\cs_new_protected:Npn \file_add_path_aux:nN #1#2
{
\ior_open_unsafe:Nn \g_file_internal_ior {#1}
@@ -84,7 +92,7 @@
}
\cs_new_protected:Npn \file_add_path_search:nN #1#2
{
- \tl_clear:N #2
+ \tl_set:Nn #2 { \q_no_value }
\cs_if_exist:NT \input@path
{
\seq_set_eq:NN \l_file_internal_saved_path_seq \l_file_search_path_seq
@@ -105,91 +113,529 @@
{ \seq_set_eq:NN \l_file_search_path_seq \l_file_internal_saved_path_seq }
\ior_close:N \g_file_internal_ior
}
-\prg_new_protected_conditional:Nnn \file_if_exist:n { T , F , TF }
+\prg_new_protected_conditional:Npnn \file_if_exist:n #1 { T , F , TF }
{
\file_add_path:nN {#1} \l_file_internal_name_tl
- \tl_if_empty:NTF \l_file_internal_name_tl
+ \quark_if_no_value:NTF \l_file_internal_name_tl
{ \prg_return_false: }
{ \prg_return_true: }
}
\cs_new_protected:Npn \file_input:n #1
{
\file_add_path:nN {#1} \l_file_internal_name_tl
- \tl_if_empty:NF \l_file_internal_name_tl
+ \quark_if_no_value:NTF \l_file_internal_name_tl
+ { \file_name_sanitize:nn {#1} { \file_input_error:n } }
+ { \file_input_aux:V \l_file_internal_name_tl }
+ }
+\cs_new_protected:Npn \file_input_aux:n #1
+ {
+ \@addtofilelist {#1}
+ \seq_gpush:Nn \g_file_stack_seq \g_file_current_name_tl
+ \tl_gset:Nn \g_file_current_name_tl {#1}
+ \tex_input:D #1 \c_space_tl
+ \seq_gpop:NN \g_file_stack_seq \g_file_current_name_tl
+ }
+\cs_generate_variant:Nn \file_input_aux:n { V }
+\cs_new_protected:Npn \file_input_error:n #1
+ { \msg_kernel_error:nnx { file } { file-not-found } {#1} }
+\cs_new_protected:Npn \file_path_include:n #1
+ {
+ \seq_if_in:NnF \l_file_search_path_seq {#1}
+ { \seq_put_right:Nn \l_file_search_path_seq {#1} }
+ }
+\cs_new_protected:Npn \file_path_remove:n #1
+ { \seq_remove_all:Nn \l_file_search_path_seq {#1} }
+\cs_new_protected_nopar:Npn \file_list:
+ {
+ \seq_remove_duplicates:N \g_file_record_seq
+ \iow_log:n { *~File~List~* }
+ \seq_map_inline:Nn \g_file_record_seq { \iow_log:n {##1} }
+ \iow_log:n { ************* }
+ }
+\AtBeginDocument
+ {
+ \seq_set_from_clist:NN \l_file_internal_seq \@filelist
+ \seq_gconcat:NNN \g_file_record_seq \g_file_record_seq \l_file_internal_seq
+ }
+\cs_new_eq:NN \c_term_ior \c_sixteen
+\cs_new_eq:NN \c_log_iow \c_minus_one
+\cs_new_eq:NN \c_term_iow \c_sixteen
+\tl_const:Nn \c_iow_streams_tl
+ {
+ \c_zero
+ \c_one
+ \c_two
+ \c_three
+ \c_four
+ \c_five
+ \c_six
+ \c_seven
+ \c_eight
+ \c_nine
+ \c_ten
+ \c_eleven
+ \c_twelve
+ \c_thirteen
+ \c_fourteen
+ \c_fifteen
+ }
+\cs_new_eq:NN \c_ior_streams_tl \c_iow_streams_tl
+\prop_new:N \g_iow_streams_prop
+\prop_new:N \g_ior_streams_prop
+\prop_put:Nnn \g_iow_streams_prop { 0 } { LaTeX2e~reserved }
+\prop_put:Nnn \g_iow_streams_prop { 1 } { LaTeX2e~reserved }
+\prop_put:Nnn \g_iow_streams_prop { 2 } { LaTeX2e~reserved }
+\prop_put:Nnn \g_ior_streams_prop { 0 } { LaTeX2e~reserved }
+\int_new:N \l_iow_stream_int
+\cs_new_eq:NN \l_ior_stream_int \l_iow_stream_int
+\cs_set_eq:NN \iow_raw_new:N \newwrite
+\cs_set_eq:NN \ior_raw_new:N \newread
+\cs_generate_variant:Nn \ior_raw_new:N { c }
+\cs_generate_variant:Nn \iow_raw_new:N { c }
+\cs_new_protected:Npn \ior_new:N #1 { \cs_new_eq:NN #1 \c_term_ior }
+\cs_generate_variant:Nn \ior_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 }
+\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 }
+\cs_new_protected:Npn \iow_open:Nn #1#2
+ { \file_name_sanitize:nn {#2} { \iow_open_unsafe:Nn #1 } }
+\cs_generate_variant:Nn \iow_open:Nn { c }
+\cs_new_protected:Npn \ior_open_aux:Nn #1#2
+ {
+ \file_add_path:nN {#2} \l_file_name_internal_tl
+ \quark_if_no_value:NTF \l_file_internal_name_tl
+ { \file_input_error:n {#2} }
+ { \ior_open_unsafe:No #1 \l_file_name_internal_tl }
+ }
+\prg_new_protected_conditional:Npnn \ior_open:Nn #1#2 { T , F , TF }
+ { \file_name_sanitize:nn {#2} { \ior_open_aux:NnTF #1 } }
+\cs_new_protected:Npn \ior_open_aux:NnTF #1#2
+ {
+ \file_add_path:nN {#2} \l_file_name_internal_tl
+ \quark_if_no_value:NTF \l_file_internal_name_tl
+ { \prg_return_false: }
{
- \@addtofilelist {#1}
- \seq_gpush:NV \g_file_stack_seq \g_file_current_name_tl
- \tl_gset:Nn \g_file_current_name_tl {#1}
- \exp_after:wN \tex_input:D \l_file_internal_name_tl \c_space_tl
- \seq_gpop:NN \g_file_stack_seq \g_file_current_name_tl
+ \ior_open_unsafe:No #1 \l_file_name_internal_tl
+ \prg_return_true:
}
}
-\cs_new_protected:Npn \file_split_path_name_ext:nNNN #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_unsafe:Nn #1#2
{
- \group_begin:
- \tl_to_str_active_safe:Nx \l_file_internal_name_tl {#1}
- \tl_if_in:NnT \l_file_internal_name_tl { ~ }
- {
- \msg_kernel_error:nnx { io } { space-in-file-name }
- { \l_file_internal_name_tl }
- }
- \exp_args:NNo \group_end:
- \file_split_path_name_ext_aux:nNNN \l_file_internal_name_tl
+ \ior_close:N #1
+ \int_set:Nn \l_ior_stream_int \c_sixteen
+ \tl_map_function:NN \c_ior_streams_tl \ior_alloc_read:n
+ \int_compare:nNnTF \l_ior_stream_int = \c_sixteen
+ { \msg_kernel_fatal:nn { ior } { streams-exhausted } }
+ {
+ \ior_stream_alloc:N #1
+ \prop_gput:NVn \g_ior_streams_prop \l_ior_stream_int {#2}
+ \tex_openin:D #1#2 \scan_stop:
+ }
}
-\cs_new_protected:Npn \file_split_path_name_ext_aux:nNNN #1#2#3#4
+\cs_generate_variant:Nn \ior_open_unsafe:Nn { No }
+\cs_new_protected:Npn \iow_open_unsafe:Nn #1#2
{
- \tl_clear:N #2
- \tl_clear:N #3
- \file_split_path:wNNN #1 / \q_nil / \q_stop #2#3#4
+ \iow_close:N #1
+ \int_set:Nn \l_iow_stream_int \c_sixteen
+ \tl_map_function:NN \c_iow_streams_tl \iow_alloc_write:n
+ \int_compare:nNnTF \l_iow_stream_int = \c_sixteen
+ { \msg_kernel_fatal:nn { iow } { streams-exhausted } }
+ {
+ \iow_stream_alloc:N #1
+ \prop_gput:NVn \g_iow_streams_prop \l_iow_stream_int {#2}
+ \tex_immediate:D \tex_openout:D #1#2 \scan_stop:
+ }
}
-\cs_new_protected:Npn \file_split_path:wNNN #1 / #2 / #3 \q_stop #4
+\cs_new_protected:Npn \iow_alloc_write:n #1
{
- \quark_if_nil:nTF {#2}
- { \file_split_name_ext:wNN #1 . \q_nil . \q_stop }
+ \prop_if_in:NnF \g_iow_streams_prop {#1}
{
- \tl_put_right:Nn #4 { #1 / }
- \file_split_path:wNNN #2 / #3 \q_stop #4
+ \int_set:Nn \l_iow_stream_int {#1}
+ \tl_map_break:
}
}
-\cs_new_protected:Npn \file_split_name_ext:wNN #1 . #2 . #3 \q_stop #4#5
+\cs_new_protected:Npn \ior_alloc_read:n #1
{
- \quark_if_nil:nTF {#2}
+ \prop_if_in:NnF \g_iow_streams_prop {#1}
{
- \tl_if_empty:NTF #4
+ \int_set:Nn \l_ior_stream_int {#1}
+ \tl_map_break:
+ }
+ }
+\iow_new:N \g_iow_internal_iow
+\ior_new:N \g_ior_internal_ior
+\cs_new_protected:Npn \iow_stream_alloc:N #1
+ {
+ \cs_if_exist:cTF { g_iow_ \int_use:N \l_iow_stream_int _iow }
+ { \cs_gset_eq:Nc #1 { g_iow_ \int_use:N \l_iow_stream_int _iow } }
+ {
+ \iow_stream_alloc_aux:
+ \int_compare:nNnT \l_iow_stream_int = \c_sixteen
{
- \tl_set:Nn #4 {#1}
- \tl_clear:N #5
+ \iow_raw_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
}
- { \tl_set:Nn #5 {#1} }
+ \cs_gset_eq:Nc #1 { g_iow_ \int_use:N \l_iow_stream_int _iow }
+ }
+ }
+\cs_new_protected_nopar:Npn \iow_stream_alloc_aux:
+ {
+ \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_stream_alloc_aux: }
+ }
+ { \iow_stream_alloc_aux: }
}
+ }
+\cs_new_protected:Npn \ior_stream_alloc:N #1
+ {
+ \cs_if_exist:cTF { g_ior_ \int_use:N \l_ior_stream_int _ior }
+ { \cs_gset_eq:Nc #1 { g_ior_ \int_use:N \l_ior_stream_int _ior } }
{
- \tl_put_right:Nx #4
+ \ior_stream_alloc_aux:
+ \int_compare:nNnT \l_ior_stream_int = \c_sixteen
{
- \tl_if_empty:NF #4 { . }
- #1
+ \ior_raw_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_iow_stream_int _ior } \g_ior_internal_ior
}
- \file_split_name_ext:wNN #2 . #3 \q_stop #4#5
+ \cs_gset_eq:Nc #1 { g_ior_ \int_use:N \l_ior_stream_int _ior }
}
}
-\cs_new_protected:Npn \file_path_include:n #1
+\cs_new_protected_nopar:Npn \ior_stream_alloc_aux:
{
- \seq_if_in:NnF \l_file_search_path_seq {#1}
- { \seq_put_right:Nn \l_file_search_path_seq {#1} }
+ \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_stream_alloc_aux: }
+ }
+ { \ior_stream_alloc_aux: }
+ }
}
-\cs_new_protected:Npn \file_path_remove:n #1
- { \seq_remove_all:Nn \l_file_search_path_seq {#1} }
-\cs_new_protected_nopar:Npn \file_list:
+\cs_new_protected:Npn \ior_close:N #1
{
- \seq_remove_duplicates:N \g_file_record_seq
- \iow_log:n { *~File~List~* }
- \seq_map_inline:Nn \g_file_record_seq { \iow_log:n {##1} }
- \iow_log:n { ************* }
+ \cs_if_exist:NT #1
+ {
+ \int_compare:nNnF #1 = \c_minus_one
+ {
+ \int_compare:nNnF #1 = \c_sixteen
+ { \tex_closein:D #1 }
+ \prop_gdel:NV \g_ior_streams_prop #1
+ \cs_gset_eq:NN #1 \c_term_ior
+ }
+ }
}
-\AtBeginDocument
+\cs_new_protected:Npn \iow_close:N #1
{
- \seq_set_from_clist:NN \l_file_internal_seq \@filelist
- \seq_gconcat:NNN \g_file_record_seq \g_file_record_seq \l_file_internal_seq
+ \cs_if_exist:NT #1
+ {
+ \int_compare:nNnF #1 = \c_minus_one
+ {
+ \int_compare:nNnF #1 = \c_sixteen
+ { \tex_closein:D #1 }
+ \prop_gdel:NV \g_iow_streams_prop #1
+ \cs_gset_eq:NN #1 \c_term_iow
+ }
+ }
+ }
+\cs_generate_variant:Nn \ior_close:N { c }
+\cs_generate_variant:Nn \iow_close:N { c }
+\cs_new_protected_nopar:Npn \ior_list_streams:
+ { \ior_list_streams_aux:Nn \g_ior_streams_prop { ior } }
+\cs_new_protected_nopar:Npn \iow_list_streams:
+ { \ior_list_streams_aux:Nn \g_iow_streams_prop { iow } }
+\cs_new_protected:Npn \ior_list_streams_aux:Nn #1#2
+ {
+ \msg_aux_use:nn { LaTeX / #2 }
+ { \prop_if_empty:NTF #1 { show-no-stream } { show-open-streams } }
+ \msg_aux_show:x
+ { \prop_map_function:NN #1 \msg_aux_show_unbraced:nn }
+ }
+\msg_kernel_new:nnnn { iow } { streams-exhausted }
+ { Output~streams~exhausted }
+ {
+ TeX~can~only~open~up~to~16~output~streams~at~one~time.\\
+ All~16 are currently~in~use,~and~something~wanted~to~open
+ another~one.
+ }
+\msg_kernel_new:nnnn { ior } { streams-exhausted }
+ { Input~streams~exhausted }
+ {
+ TeX~can~only~open~up~to~16~input~streams~at~one~time.\\
+ All~16 are currently~in~use,~and~something~wanted~to~open
+ another~one.
+ }
+\cs_new_eq:NN \iow_shipout_x:Nn \tex_write:D
+\cs_generate_variant:Nn \iow_shipout_x:Nn { Nx }
+\cs_new_protected:Npn \iow_shipout:Nn #1#2
+ { \iow_shipout_x:Nn #1 { \exp_not:n {#2} } }
+\cs_generate_variant:Nn \iow_shipout:Nn { Nx }
+\cs_new_protected_nopar:Npn \iow_now:Nx { \tex_immediate:D \iow_shipout_x:Nn }
+\cs_new_protected:Npn \iow_now:Nn #1#2
+ { \iow_now:Nx #1 { \exp_not:n {#2} } }
+\cs_set_protected_nopar:Npn \iow_log:x { \iow_now:Nx \c_log_iow }
+\cs_new_protected_nopar:Npn \iow_log:n { \iow_now:Nn \c_log_iow }
+\cs_set_protected_nopar:Npn \iow_term:x { \iow_now:Nx \c_term_iow }
+\cs_new_protected_nopar:Npn \iow_term:n { \iow_now:Nn \c_term_iow }
+\cs_new_nopar:Npn \iow_newline: { ^^J }
+\cs_new_eq:NN \iow_char:N \cs_to_str:N
+\int_new:N \l_iow_line_length_int
+\int_set:Nn \l_iow_line_length_int { 78 }
+\int_new:N \l_iow_target_length_int
+\int_new:N \l_iow_current_line_int
+\int_new:N \l_iow_current_word_int
+\int_new:N \l_iow_current_indentation_int
+\tl_new:N \l_iow_current_line_tl
+\tl_new:N \l_iow_current_word_tl
+\tl_new:N \l_iow_current_indentation_tl
+\tl_new:N \l_iow_wrap_tl
+\tl_new:N \l_iow_wrapped_tl
+\bool_new:N \l_iow_line_start_bool
+\group_begin:
+ \char_set_catcode_other:N \*
+ \char_set_lccode:nn {`\*} {`\ }
+ \tl_to_lowercase:n { \tl_const:Nn \c_catcode_other_space_tl { * } }
+\group_end:
+\group_begin:
+ \int_set_eq:NN \tex_escapechar:D \c_minus_one
+ \tl_const:Nx \c_iow_wrap_marker_tl
+ { \tl_to_str:n { \^^I \^^O \^^W \^^_ \^^W \^^R \^^A \^^P } }
+ \cs_set:Npn \iow_wrap_new_marker:n #1
+ {
+ \tl_const:cx { c_iow_wrap_ #1 _marker_tl }
+ {
+ \c_catcode_other_space_tl
+ \c_iow_wrap_marker_tl
+ \c_catcode_other_space_tl
+ #1
+ \c_catcode_other_space_tl
+ }
+ }
+ \iow_wrap_new_marker:n { end }
+ \iow_wrap_new_marker:n { newline }
+ \iow_wrap_new_marker:n { indent }
+ \iow_wrap_new_marker:n { unindent }
+\group_end:
+\cs_new_protected:Npn \iow_indent:n #1 { }
+\cs_new:Npx \iow_indent_expandable:n #1
+ {
+ \c_iow_wrap_indent_marker_tl
+ #1
+ \c_iow_wrap_unindent_marker_tl
+ }
+\cs_new_protected:Npn \iow_wrap:xnnnN #1#2#3#4#5
+ {
+ \group_begin:
+ \int_set:Nn \l_iow_target_length_int { \l_iow_line_length_int - ( #3 ) }
+ \int_zero:N \l_iow_current_indentation_int
+ \tl_clear:N \l_iow_current_indentation_tl
+ \int_zero:N \l_iow_current_line_int
+ \tl_clear:N \l_iow_current_line_tl
+ \tl_clear:N \l_iow_wrap_tl
+ \bool_set_true:N \l_iow_line_start_bool
+ \int_set_eq:NN \tex_escapechar:D \c_minus_one
+ \cs_set_nopar:Npx \{ { \token_to_str:N \{ }
+ \cs_set_nopar:Npx \# { \token_to_str:N \# }
+ \cs_set_nopar:Npx \} { \token_to_str:N \} }
+ \cs_set_nopar:Npx \% { \token_to_str:N \% }
+ \cs_set_nopar:Npx \~ { \token_to_str:N \~ }
+ \int_set:Nn \tex_escapechar:D { 92 }
+ \cs_set_eq:NN \\ \c_iow_wrap_newline_marker_tl
+ \cs_set_eq:NN \ \c_catcode_other_space_tl
+ \cs_set_eq:NN \iow_indent:n \iow_indent_expandable:n
+ #4
+ \protected@edef \l_iow_wrap_tl {#1}
+ \cs_set:Npn \\ { \iow_newline: #2 }
+ \use:x
+ {
+ \iow_wrap_loop:w
+ \tl_to_str:N \l_iow_wrap_tl
+ \tl_to_str:N \c_iow_wrap_end_marker_tl
+ \c_space_tl \c_space_tl
+ \exp_not:N \q_stop
+ }
+ \exp_args:NNo \group_end:
+ #5 \l_iow_wrapped_tl
+ }
+\cs_new_protected:Npn \iow_wrap_loop:w #1 ~ %
+ {
+ \tl_set:Nn \l_iow_current_word_tl {#1}
+ \tl_if_eq:NNTF \l_iow_current_word_tl \c_iow_wrap_marker_tl
+ { \iow_wrap_special:w }
+ { \iow_wrap_word: }
+ }
+\cs_new_protected_nopar:Npn \iow_wrap_word:
+ {
+ \int_set:Nn \l_iow_current_word_int
+ { \str_length_skip_spaces:N \l_iow_current_word_tl }
+ \int_add:Nn \l_iow_current_line_int { \l_iow_current_word_int }
+ \int_compare:nNnTF \l_iow_current_line_int < \l_iow_target_length_int
+ { \iow_wrap_word_fits: }
+ { \iow_wrap_word_newline: }
+ \iow_wrap_loop:w
+ }
+\cs_new_protected_nopar:Npn \iow_wrap_word_fits:
+ {
+ \bool_if:NTF \l_iow_line_start_bool
+ {
+ \bool_set_false:N \l_iow_line_start_bool
+ \tl_put_right:Nx \l_iow_current_line_tl
+ { \l_iow_current_indentation_tl \l_iow_current_word_tl }
+ \int_add:Nn \l_iow_current_line_int
+ { \l_iow_current_indentation_int }
+ }
+ {
+ \tl_put_right:Nx \l_iow_current_line_tl
+ { ~ \l_iow_current_word_tl }
+ \int_incr:N \l_iow_current_line_int
+ }
+ }
+\cs_new_protected_nopar:Npn \iow_wrap_word_newline:
+ {
+ \tl_put_right:Nx \l_iow_wrapped_tl
+ { \l_iow_current_line_tl \\ }
+ \int_set:Nn \l_iow_current_line_int
+ {
+ \l_iow_current_word_int
+ + \l_iow_current_indentation_int
+ }
+ \tl_set:Nx \l_iow_current_line_tl
+ { \l_iow_current_indentation_tl \l_iow_current_word_tl }
+ }
+\cs_new_protected:Npn \iow_wrap_special:w #1 ~ #2 ~ #3 ~ %
+ {
+ \use:c { iow_wrap_#1: }
+ \str_if_eq:xxTF { #2~#3 } { ~ \c_iow_wrap_marker_tl }
+ { \iow_wrap_special:w }
+ { \iow_wrap_loop:w #2 ~ #3 ~ }
+ }
+\cs_new_protected_nopar:Npn \iow_wrap_newline:
+ {
+ \tl_put_right:Nx \l_iow_wrapped_tl
+ { \l_iow_current_line_tl \\ }
+ \int_zero:N \l_iow_current_line_int
+ \tl_clear:N \l_iow_current_line_tl
+ \bool_set_true:N \l_iow_line_start_bool
+ }
+\cs_new_protected_nopar:Npx \iow_wrap_indent:
+ {
+ \int_add:Nn \l_iow_current_indentation_int \c_four
+ \tl_put_right:Nx \exp_not:N \l_iow_current_indentation_tl
+ { \c_space_tl \c_space_tl \c_space_tl \c_space_tl }
+ }
+\cs_new_protected_nopar:Npn \iow_wrap_unindent:
+ {
+ \int_sub:Nn \l_iow_current_indentation_int \c_four
+ \tl_set:Nx \l_iow_current_indentation_tl
+ { \prg_replicate:nn \l_iow_current_indentation_int { ~ } }
+ }
+\cs_new_protected_nopar:Npn \iow_wrap_end:
+ {
+ \tl_put_right:Nx \l_iow_wrapped_tl
+ { \l_iow_current_line_tl }
+ \use_none_delimit_by_q_stop:w
+ }
+\cs_new_nopar:Npn \str_length_skip_spaces:N
+ { \exp_args:No \str_length_skip_spaces:n }
+\cs_new:Npn \str_length_skip_spaces:n #1
+ {
+ \int_value:w \int_eval:w
+ \exp_after:wN \str_length_loop:NNNNNNNNN \tl_to_str:n {#1}
+ { X8 } { X7 } { X6 } { X5 } { X4 } { X3 } { X2 } { X1 } { X0 } \q_stop
+ \int_eval_end:
+ }
+\cs_new:Npn \str_length_loop:NNNNNNNNN #1#2#3#4#5#6#7#8#9
+ {
+ \if_catcode:w X #9
+ \exp_after:wN \use_none_delimit_by_q_stop:w
+ \else:
+ 9 +
+ \exp_after:wN \str_length_loop:NNNNNNNNN
+ \fi:
+ }
+\cs_new_eq:NN \if_eof:w \tex_ifeof:D
+\prg_new_conditional:Nnn \ior_if_eof:N { p , T , F , TF }
+ {
+ \cs_if_exist:NTF #1
+ {
+ \if_int_compare:w #1 = \c_sixteen
+ \prg_return_true:
+ \else:
+ \if_eof:w #1
+ \prg_return_true:
+ \else:
+ \prg_return_false:
+ \fi:
+ \fi:
+ }
+ { \prg_return_true: }
+ }
+\cs_new_protected:Npn \ior_to:NN #1#2
+ { \tex_read:D #1 to #2 }
+\cs_new_protected:Npn \ior_gto:NN #1#2
+ { \tex_global:D \tex_read:D #1 to #2 }
+\cs_new_protected:Npn \ior_str_to:NN #1#2
+ { \etex_readline:D #1 to #2 }
+\cs_new_protected:Npn \ior_str_gto:NN #1#2
+ { \tex_global:D \etex_readline:D #1 to #2 }
+\cs_new_protected_nopar:Npn \ior_map_inline:Nn
+ { \ior_map_inline_aux:NNn \ior_to:NN }
+\cs_new_protected_nopar:Npn \ior_str_map_inline:Nn
+ { \ior_map_inline_aux:NNn \ior_str_to:NN }
+\cs_new_protected_nopar:Npn \ior_map_inline_aux:NNn
+ {
+ \exp_args:Nc \ior_map_inline_aux:NNNn
+ { ior_map_ \int_use:N \g_prg_map_int :n }
+ }
+\cs_new_protected:Npn \ior_map_inline_aux:NNNn #1#2#3#4
+ {
+ \cs_set:Npn #1 ##1 {#4}
+ \int_gincr:N \g_prg_map_int
+ \ior_if_eof:NF #3 { \ior_map_inline_loop:NNN #1#2#3 }
+ \prg_break_point:n { \int_gdecr:N \g_prg_map_int }
+ }
+\cs_new_protected:Npn \ior_map_inline_loop:NNN #1#2#3
+ {
+ #2 #3 \l_ior_internal_tl
+ \ior_if_eof:NF #3
+ {
+ \exp_args:No #1 \l_ior_internal_tl
+ \ior_map_inline_loop:NNN #1#2#3
+ }
+ }
+\tl_new:N \l_ior_internal_tl
+\msg_kernel_new:nnnn { file } { file-not-found }
+ { Space~in~file~name~'#1'. }
+ {
+ Spaces~are~not~permitted~in~files~loaded~by~LaTeX: \\
+ Further~errors~may~follow!
+ }
+\msg_kernel_new:nnnn { file } { space-in-file-name }
+ { Space~in~file~name~'#1'. }
+ {
+ Spaces~are~not~permitted~in~files~loaded~by~LaTeX: \\
+ Further~errors~may~follow!
}
+\cs_new_protected:Npn \iow_now_when_avail:Nn #1
+ { \cs_if_free:NTF #1 { \use_none:n } { \iow_now:Nn #1 } }
+\cs_new_protected:Npn \iow_now_when_avail:Nx #1
+ { \cs_if_free:NTF #1 { \use_none:n } { \iow_now:Nx #1 } }
%%
%%
%% End of file `l3file.sty'.
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3int.sty b/Master/texmf-dist/tex/latex/l3kernel/l3int.sty
index 2747a0afeeb..f12cda36783 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3int.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3int.sty
@@ -46,7 +46,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3int.dtx 3315 2012-02-06 11:17:04Z bruno $
+\GetIdInfo$Id: l3int.dtx 3460 2012-02-26 12:16:41Z will $
{L3 Experimental integers}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -90,29 +90,25 @@
}
\cs_new:Npn \int_div_truncate:nn #1#2
{
- \int_value:w \int_eval:w
- \if_int_compare:w \int_eval:w #1 = \c_zero
- 0
- \else:
- ( #1 % )
- \if_int_compare:w \int_eval:w #1 < \c_zero
- \if_int_compare:w \int_eval:w #2 < \c_zero
- - ( #2 + % )
- \else:
- + ( #2 - % )
- \fi:
- \else:
- \if_int_compare:w \int_eval:w #2 < \c_zero
- + ( #2 + % )
- \else:
- - ( #2 - % )
- \fi:
- \fi: % ( (
- 1 ) / 2 )
- \fi:
- / ( #2 )
+ \int_use:N \int_eval:w
+ \exp_after:wN \int_div_truncate_aux:NwNw
+ \int_use:N \int_eval:w #1 \exp_after:wN ;
+ \int_use:N \int_eval:w #2 ;
\int_eval_end:
}
+\cs_new:Npn \int_div_truncate_aux:NwNw #1#2; #3#4;
+ {
+ \if_meaning:w 0 #1
+ \c_zero
+ \else:
+ (
+ #1#2
+ \if_meaning:w - #1 + \else: - \fi:
+ ( \if_meaning:w - #3 - \fi: #3#4 - \c_one ) / \c_two
+ )
+ \fi:
+ / #3#4
+ }
\cs_new:Npn \int_div_round:nn #1#2 { \int_eval:n { ( #1 ) / ( #2 ) } }
\cs_new:Npn \int_mod:nn #1#2
{
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3io.sty b/Master/texmf-dist/tex/latex/l3kernel/l3io.sty
deleted file mode 100644
index 47f29f44e8a..00000000000
--- a/Master/texmf-dist/tex/latex/l3kernel/l3io.sty
+++ /dev/null
@@ -1,533 +0,0 @@
-%%
-%% This is file `l3io.sty',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% l3io.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: l3io.dtx Copyright (C) 1990-2012 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 "l3kernel 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{l3names}
-\GetIdInfo$Id: l3io.dtx 3245 2012-01-28 02:58:37Z bruno $
- {L3 Experimental input-output operations}
-\ProvidesExplPackage
- {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
-\package_check_loaded_expl:
-\cs_new_eq:NN \if_eof:w \tex_ifeof:D
-\cs_new_eq:NN \c_term_ior \c_sixteen
-\cs_new_eq:NN \c_log_iow \c_minus_one
-\cs_new_eq:NN \c_term_iow \c_sixteen
-\tl_const:Nn \c_iow_streams_tl
- {
- \c_zero
- \c_one
- \c_two
- \c_three
- \c_four
- \c_five
- \c_six
- \c_seven
- \c_eight
- \c_nine
- \c_ten
- \c_eleven
- \c_twelve
- \c_thirteen
- \c_fourteen
- \c_fifteen
- }
-\cs_new_eq:NN \c_ior_streams_tl \c_iow_streams_tl
-\prop_new:N \g_iow_streams_prop
-\prop_new:N \g_ior_streams_prop
-\prop_put:Nnn \g_iow_streams_prop { 0 } { LaTeX2e~reserved }
-\prop_put:Nnn \g_iow_streams_prop { 1 } { LaTeX2e~reserved }
-\prop_put:Nnn \g_iow_streams_prop { 2 } { LaTeX2e~reserved }
-\prop_put:Nnn \g_ior_streams_prop { 0 } { LaTeX2e~reserved }
-\tl_new:N \l_ior_internal_tl
-\tl_new:N \l_iow_internal_tl
-\int_new:N \l_iow_stream_int
-\cs_new_eq:NN \l_ior_stream_int \l_iow_stream_int
-\cs_set_eq:NN \iow_raw_new:N \newwrite
-\cs_set_eq:NN \ior_raw_new:N \newread
-\cs_generate_variant:Nn \ior_raw_new:N { c }
-\cs_generate_variant:Nn \iow_raw_new:N { c }
-\cs_new_protected:Npn \ior_new:N #1 { \cs_new_eq:NN #1 \c_term_ior }
-\cs_generate_variant:Nn \ior_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 \ior_open:Nn #1#2
- {
- \group_begin:
- \tl_to_str_active_safe:Nx \l_ior_internal_tl {#2}
- \tl_if_in:NnT \l_ior_internal_tl { ~ }
- {
- \msg_kernel_error:nnx { io } { space-in-file-name }
- { \l_ior_internal_tl }
- }
- \exp_args:NNNo \group_end:
- \ior_open_unsafe:Nn #1 \l_ior_internal_tl
- }
-\cs_generate_variant:Nn \ior_open:Nn { c }
-\cs_new_protected:Npn \iow_open:Nn #1#2
- {
- \group_begin:
- \tl_to_str_active_safe:Nx \l_iow_internal_tl {#2}
- \tl_if_in:NnT \l_iow_internal_tl { ~ }
- {
- \msg_kernel_error:nnx { io } { space-in-file-name }
- { \l_iow_internal_tl }
- }
- \exp_args:NNNo \group_end:
- \iow_open_unsafe:Nn #1 \l_iow_internal_tl
- }
-\cs_generate_variant:Nn \iow_open:Nn { c }
-\cs_new_protected:Npn \ior_open_unsafe:Nn #1#2
- {
- \ior_close:N #1
- \int_set:Nn \l_ior_stream_int \c_sixteen
- \tl_map_function:NN \c_ior_streams_tl \ior_alloc_read:n
- \int_compare:nNnTF \l_ior_stream_int = \c_sixteen
- { \msg_kernel_fatal:nn { ior } { streams-exhausted } }
- {
- \ior_stream_alloc:N #1
- \prop_gput:NVn \g_ior_streams_prop \l_ior_stream_int {#2}
- \tex_openin:D #1#2 \scan_stop:
- }
- }
-\cs_new_protected:Npn \iow_open_unsafe:Nn #1#2
- {
- \iow_close:N #1
- \int_set:Nn \l_iow_stream_int \c_sixteen
- \tl_map_function:NN \c_iow_streams_tl \iow_alloc_write:n
- \int_compare:nNnTF \l_iow_stream_int = \c_sixteen
- { \msg_kernel_fatal:nn { iow } { streams-exhausted } }
- {
- \iow_stream_alloc:N #1
- \prop_gput:NVn \g_iow_streams_prop \l_iow_stream_int {#2}
- \tex_immediate:D \tex_openout:D #1#2 \scan_stop:
- }
- }
-\cs_new_protected:Npn \iow_alloc_write:n #1
- {
- \prop_if_in:NnF \g_iow_streams_prop {#1}
- {
- \int_set:Nn \l_iow_stream_int {#1}
- \tl_map_break:
- }
- }
-\cs_new_protected:Npn \ior_alloc_read:n #1
- {
- \prop_if_in:NnF \g_iow_streams_prop {#1}
- {
- \int_set:Nn \l_ior_stream_int {#1}
- \tl_map_break:
- }
- }
-\iow_new:N \g_iow_internal_iow
-\ior_new:N \g_ior_internal_ior
-\cs_new_protected:Npn \iow_stream_alloc:N #1
- {
- \cs_if_exist:cTF { g_iow_ \int_use:N \l_iow_stream_int _iow }
- { \cs_gset_eq:Nc #1 { g_iow_ \int_use:N \l_iow_stream_int _iow } }
- {
- \iow_stream_alloc_aux:
- \int_compare:nNnT \l_iow_stream_int = \c_sixteen
- {
- \iow_raw_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
- }
- \cs_gset_eq:Nc #1 { g_iow_ \int_use:N \l_iow_stream_int _iow }
- }
- }
-\cs_new_protected_nopar:Npn \iow_stream_alloc_aux:
- {
- \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_stream_alloc_aux: }
- }
- { \iow_stream_alloc_aux: }
- }
- }
-\cs_new_protected:Npn \ior_stream_alloc:N #1
- {
- \cs_if_exist:cTF { g_ior_ \int_use:N \l_ior_stream_int _ior }
- { \cs_gset_eq:Nc #1 { g_ior_ \int_use:N \l_ior_stream_int _ior } }
- {
- \ior_stream_alloc_aux:
- \int_compare:nNnT \l_ior_stream_int = \c_sixteen
- {
- \ior_raw_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_iow_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_stream_alloc_aux:
- {
- \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_stream_alloc_aux: }
- }
- { \ior_stream_alloc_aux: }
- }
- }
-\cs_new_protected:Npn \ior_close:N #1
- {
- \cs_if_exist:NT #1
- {
- \int_compare:nNnF #1 = \c_minus_one
- {
- \int_compare:nNnF #1 = \c_sixteen
- { \tex_closein:D #1 }
- \prop_gdel:NV \g_ior_streams_prop #1
- \cs_gset_eq:NN #1 \c_term_ior
- }
- }
- }
-\cs_new_protected:Npn \iow_close:N #1
- {
- \cs_if_exist:NT #1
- {
- \int_compare:nNnF #1 = \c_minus_one
- {
- \int_compare:nNnF #1 = \c_sixteen
- { \tex_closein:D #1 }
- \prop_gdel:NV \g_iow_streams_prop #1
- \cs_gset_eq:NN #1 \c_term_iow
- }
- }
- }
-\cs_generate_variant:Nn \ior_close:N { c }
-\cs_generate_variant:Nn \iow_close:N { c }
-\cs_new_protected_nopar:Npn \ior_list_streams:
- { \ior_list_streams_aux:Nn \g_ior_streams_prop { ior } }
-\cs_new_protected_nopar:Npn \iow_list_streams:
- { \ior_list_streams_aux:Nn \g_iow_streams_prop { iow } }
-\cs_new_protected:Npn \ior_list_streams_aux:Nn #1#2
- {
- \msg_aux_use:nn { LaTeX / #2 }
- { \prop_if_empty:NTF #1 { show-no-stream } { show-open-streams } }
- \msg_aux_show:x
- { \prop_map_function:NN #1 \msg_aux_show_unbraced:nn }
- }
-\msg_kernel_new:nnnn { iow } { streams-exhausted }
- { Output~streams~exhausted }
- {
- TeX~can~only~open~up~to~16~output~streams~at~one~time.\\
- All~16 are currently~in~use,~and~something~wanted~to~open
- another~one.
- }
-\msg_kernel_new:nnnn { ior } { streams-exhausted }
- { Input~streams~exhausted }
- {
- TeX~can~only~open~up~to~16~input~streams~at~one~time.\\
- All~16 are currently~in~use,~and~something~wanted~to~open
- another~one.
- }
-\cs_new_eq:NN \iow_shipout_x:Nn \tex_write:D
-\cs_generate_variant:Nn \iow_shipout_x:Nn { Nx }
-\cs_new_protected:Npn \iow_shipout:Nn #1#2
- { \iow_shipout_x:Nn #1 { \exp_not:n {#2} } }
-\cs_generate_variant:Nn \iow_shipout:Nn { Nx }
-\cs_new_protected_nopar:Npn \iow_now:Nx { \tex_immediate:D \iow_shipout_x:Nn }
-\cs_new_protected:Npn \iow_now:Nn #1#2
- { \iow_now:Nx #1 { \exp_not:n {#2} } }
-\cs_set_protected_nopar:Npn \iow_log:x { \iow_now:Nx \c_log_iow }
-\cs_new_protected_nopar:Npn \iow_log:n { \iow_now:Nn \c_log_iow }
-\cs_set_protected_nopar:Npn \iow_term:x { \iow_now:Nx \c_term_iow }
-\cs_new_protected_nopar:Npn \iow_term:n { \iow_now:Nn \c_term_iow }
-\cs_new_protected:Npn \iow_now_when_avail:Nn #1
- { \cs_if_free:NTF #1 { \use_none:n } { \iow_now:Nn #1 } }
-\cs_new_protected:Npn \iow_now_when_avail:Nx #1
- { \cs_if_free:NTF #1 { \use_none:n } { \iow_now:Nx #1 } }
-\cs_new_nopar:Npn \iow_newline: { ^^J }
-\cs_new_eq:NN \iow_char:N \cs_to_str:N
-\int_new:N \l_iow_line_length_int
-\int_set:Nn \l_iow_line_length_int { 78 }
-\int_new:N \l_iow_target_length_int
-\int_new:N \l_iow_current_line_int
-\int_new:N \l_iow_current_word_int
-\int_new:N \l_iow_current_indentation_int
-\tl_new:N \l_iow_current_line_tl
-\tl_new:N \l_iow_current_word_tl
-\tl_new:N \l_iow_current_indentation_tl
-\tl_new:N \l_iow_wrap_tl
-\tl_new:N \l_iow_wrapped_tl
-\bool_new:N \l_iow_line_start_bool
-\group_begin:
- \char_set_catcode_other:N \*
- \char_set_lccode:nn {`\*} {`\ }
- \tl_to_lowercase:n { \tl_const:Nn \c_catcode_other_space_tl { * } }
-\group_end:
-\group_begin:
- \int_set_eq:NN \tex_escapechar:D \c_minus_one
- \tl_const:Nx \c_iow_wrap_marker_tl
- { \tl_to_str:n { \^^I \^^O \^^W \^^_ \^^W \^^R \^^A \^^P } }
- \cs_set:Npn \iow_wrap_new_marker:n #1
- {
- \tl_const:cx { c_iow_wrap_ #1 _marker_tl }
- {
- \c_catcode_other_space_tl
- \c_iow_wrap_marker_tl
- \c_catcode_other_space_tl
- #1
- \c_catcode_other_space_tl
- }
- }
- \iow_wrap_new_marker:n { end }
- \iow_wrap_new_marker:n { newline }
- \iow_wrap_new_marker:n { indent }
- \iow_wrap_new_marker:n { unindent }
-\group_end:
-\cs_new_protected:Npn \iow_indent:n #1 { }
-\cs_new:Npx \iow_indent_expandable:n #1
- {
- \c_iow_wrap_indent_marker_tl
- #1
- \c_iow_wrap_unindent_marker_tl
- }
-\cs_new_protected:Npn \iow_wrap:xnnnN #1#2#3#4#5
- {
- \group_begin:
- \int_set:Nn \l_iow_target_length_int { \l_iow_line_length_int - ( #3 ) }
- \int_zero:N \l_iow_current_indentation_int
- \tl_clear:N \l_iow_current_indentation_tl
- \int_zero:N \l_iow_current_line_int
- \tl_clear:N \l_iow_current_line_tl
- \tl_clear:N \l_iow_wrap_tl
- \bool_set_true:N \l_iow_line_start_bool
- \int_set_eq:NN \tex_escapechar:D \c_minus_one
- \cs_set_nopar:Npx \{ { \token_to_str:N \{ }
- \cs_set_nopar:Npx \# { \token_to_str:N \# }
- \cs_set_nopar:Npx \} { \token_to_str:N \} }
- \cs_set_nopar:Npx \% { \token_to_str:N \% }
- \cs_set_nopar:Npx \~ { \token_to_str:N \~ }
- \int_set:Nn \tex_escapechar:D { 92 }
- \cs_set_eq:NN \\ \c_iow_wrap_newline_marker_tl
- \cs_set_eq:NN \ \c_catcode_other_space_tl
- \cs_set_eq:NN \iow_indent:n \iow_indent_expandable:n
- #4
- \protected@edef \l_iow_wrap_tl {#1}
- \cs_set:Npn \\ { \iow_newline: #2 }
- \use:x
- {
- \iow_wrap_loop:w
- \tl_to_str:N \l_iow_wrap_tl
- \tl_to_str:N \c_iow_wrap_end_marker_tl
- \c_space_tl \c_space_tl
- \exp_not:N \q_stop
- }
- \exp_args:NNo \group_end:
- #5 \l_iow_wrapped_tl
- }
-\cs_new_protected:Npn \iow_wrap_loop:w #1 ~ %
- {
- \tl_set:Nn \l_iow_current_word_tl {#1}
- \tl_if_eq:NNTF \l_iow_current_word_tl \c_iow_wrap_marker_tl
- { \iow_wrap_special:w }
- { \iow_wrap_word: }
- }
-\cs_new_protected_nopar:Npn \iow_wrap_word:
- {
- \int_set:Nn \l_iow_current_word_int
- { \str_length_skip_spaces:N \l_iow_current_word_tl }
- \int_add:Nn \l_iow_current_line_int { \l_iow_current_word_int }
- \int_compare:nNnTF \l_iow_current_line_int < \l_iow_target_length_int
- { \iow_wrap_word_fits: }
- { \iow_wrap_word_newline: }
- \iow_wrap_loop:w
- }
-\cs_new_protected_nopar:Npn \iow_wrap_word_fits:
- {
- \bool_if:NTF \l_iow_line_start_bool
- {
- \bool_set_false:N \l_iow_line_start_bool
- \tl_put_right:Nx \l_iow_current_line_tl
- { \l_iow_current_indentation_tl \l_iow_current_word_tl }
- \int_add:Nn \l_iow_current_line_int
- { \l_iow_current_indentation_int }
- }
- {
- \tl_put_right:Nx \l_iow_current_line_tl
- { ~ \l_iow_current_word_tl }
- \int_incr:N \l_iow_current_line_int
- }
- }
-\cs_new_protected_nopar:Npn \iow_wrap_word_newline:
- {
- \tl_put_right:Nx \l_iow_wrapped_tl
- { \l_iow_current_line_tl \\ }
- \int_set:Nn \l_iow_current_line_int
- {
- \l_iow_current_word_int
- + \l_iow_current_indentation_int
- }
- \tl_set:Nx \l_iow_current_line_tl
- { \l_iow_current_indentation_tl \l_iow_current_word_tl }
- }
-\cs_new_protected:Npn \iow_wrap_special:w #1 ~ #2 ~ #3 ~ %
- {
- \use:c { iow_wrap_#1: }
- \str_if_eq:xxTF { #2~#3 } { ~ \c_iow_wrap_marker_tl }
- { \iow_wrap_special:w }
- { \iow_wrap_loop:w #2 ~ #3 ~ }
- }
-\cs_new_protected_nopar:Npn \iow_wrap_newline:
- {
- \tl_put_right:Nx \l_iow_wrapped_tl
- { \l_iow_current_line_tl \\ }
- \int_zero:N \l_iow_current_line_int
- \tl_clear:N \l_iow_current_line_tl
- \bool_set_true:N \l_iow_line_start_bool
- }
-\cs_new_protected_nopar:Npx \iow_wrap_indent:
- {
- \int_add:Nn \l_iow_current_indentation_int \c_four
- \tl_put_right:Nx \exp_not:N \l_iow_current_indentation_tl
- { \c_space_tl \c_space_tl \c_space_tl \c_space_tl }
- }
-\cs_new_protected_nopar:Npn \iow_wrap_unindent:
- {
- \int_sub:Nn \l_iow_current_indentation_int \c_four
- \tl_set:Nx \l_iow_current_indentation_tl
- { \prg_replicate:nn \l_iow_current_indentation_int { ~ } }
- }
-\cs_new_protected_nopar:Npn \iow_wrap_end:
- {
- \tl_put_right:Nx \l_iow_wrapped_tl
- { \l_iow_current_line_tl }
- \use_none_delimit_by_q_stop:w
- }
-\cs_new_nopar:Npn \str_length_skip_spaces:N
- { \exp_args:No \str_length_skip_spaces:n }
-\cs_new:Npn \str_length_skip_spaces:n #1
- {
- \int_value:w \int_eval:w
- \exp_after:wN \str_length_loop:NNNNNNNNN \tl_to_str:n {#1}
- {X8}{X7}{X6}{X5}{X4}{X3}{X2}{X1}{X0} \q_stop
- \int_eval_end:
- }
-\cs_new:Npn \str_length_loop:NNNNNNNNN #1#2#3#4#5#6#7#8#9
- {
- \if_catcode:w X #9
- \exp_after:wN \use_none_delimit_by_q_stop:w
- \else:
- 9 +
- \exp_after:wN \str_length_loop:NNNNNNNNN
- \fi:
- }
-\prg_new_conditional:Nnn \ior_if_eof:N { p , T , F , TF }
- {
- \cs_if_exist:NTF #1
- {
- \if_int_compare:w #1 = \c_sixteen
- \prg_return_true:
- \else:
- \if_eof:w #1
- \prg_return_true:
- \else:
- \prg_return_false:
- \fi:
- \fi:
- }
- { \prg_return_true: }
- }
-\cs_new_protected:Npn \ior_to:NN #1#2
- { \tex_read:D #1 to #2 }
-\cs_new_protected:Npn \ior_gto:NN #1#2
- { \tex_global:D \tex_read:D #1 to #2 }
-\cs_new_protected:Npn \ior_str_to:NN #1#2
- { \etex_readline:D #1 to #2 }
-\cs_new_protected:Npn \ior_str_gto:NN #1#2
- { \tex_global:D \etex_readline:D #1 to #2 }
-\cs_new_protected_nopar:Npn \ior_map_inline:nn
- { \ior_map_inline_aux:Nnn \ior_to:NN }
-\cs_new_protected_nopar:Npn \ior_str_map_inline:nn
- { \ior_map_inline_aux:Nnn \ior_str_to:NN }
-\cs_new_protected_nopar:Npn \ior_map_inline_aux:Nnn
- {
- \exp_args:Ncc \ior_map_inline_aux:NNNnn
- { g_ior_map_ \int_use:N \g_prg_map_int _ior }
- { ior_map_ \int_use:N \g_prg_map_int :n }
- }
-\cs_new_protected:Npn \ior_map_inline_aux:NNNnn #1#2#3#4#5
- {
- \cs_if_exist:NF #1 { \ior_new:N #1 }
- \cs_set:Npn #2 ##1 {#5}
- \ior_open:Nn #1 {#4}
- \int_gincr:N \g_prg_map_int
- \ior_if_eof:NF #1 { \ior_map_inline_loop:NNN #1#2#3 }
- \prg_break_point:n
- {
- \int_gdecr:N \g_prg_map_int
- \ior_close:N #1
- }
- }
-\cs_new_protected:Npn \ior_map_inline_loop:NNN #1#2#3
- {
- #3 #1 \l_ior_internal_tl
- \ior_if_eof:NF #1
- {
- \exp_args:No #2 \l_ior_internal_tl
- \ior_map_inline_loop:NNN #1#2#3
- }
- }
-\msg_kernel_new:nnnn { io } { space-in-file-name }
- { Space~in~file~name~'#1'. }
- {
- Spaces~are~not~permitted~in~files~loaded~by~LaTeX: \\
- Further~errors~may~follow!
- }
-%%
-%%
-%% End of file `l3io.sty'.
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3luatex.sty b/Master/texmf-dist/tex/latex/l3kernel/l3luatex.sty
index 9643cba784c..7655ba4ae08 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3luatex.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3luatex.sty
@@ -46,7 +46,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3luatex.dtx 3158 2012-01-09 00:47:42Z bruno $
+\GetIdInfo$Id: l3luatex.dtx 3355 2012-02-09 07:18:22Z joseph $
{L3 Experimental LuaTeX-specific functions}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -94,7 +94,7 @@
\tex_global:D \tex_chardef:D #1 \g_cctab_allocate_int
\luatex_initcatcodetable:D #1
}
- { \msg_kernel_fatal:nnx { alloc } { out-of-registers } { cctab } }
+ { \msg_kernel_fatal:nnx { kernel } { out-of-registers } { cctab } }
}
\luatex_if_engine:F
{
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3msg.sty b/Master/texmf-dist/tex/latex/l3kernel/l3msg.sty
index 1531c7a39b1..af40a84ac92 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3msg.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3msg.sty
@@ -46,7 +46,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3msg.dtx 3316 2012-02-06 12:24:43Z bruno $
+\GetIdInfo$Id: l3msg.dtx 3470 2012-02-26 19:10:24Z bruno $
{L3 Experimental messages}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -54,13 +54,28 @@
\tl_new:N \l_msg_internal_tl
\tl_const:Nn \c_msg_text_prefix_tl { msg~text~>~ }
\tl_const:Nn \c_msg_more_text_prefix_tl { msg~extra~text~>~ }
-\cs_new_protected:Npn \msg_new:nnnn #1#2
+\cs_new_protected:Npn \chk_if_free_msg:nn #1#2
{
- \cs_if_exist:cT { \c_msg_text_prefix_tl #1 / #2 }
+ \cs_if_free:cF { \c_msg_text_prefix_tl #1 / #2 }
{
\msg_kernel_error:nnxx { msg } { message-already-defined }
{#1} {#2}
}
+ }
+\tex_ifodd:D \l@expl@log@functions@bool
+ \cs_gset_protected:Npn \chk_if_free_msg:nn #1#2
+ {
+ \cs_if_free:cF { \c_msg_text_prefix_tl #1 / #2 }
+ {
+ \msg_kernel_error:nnxx { msg } { message-already-defined }
+ {#1} {#2}
+ }
+ \iow_log:x { Defining~message~#1/#2~ \msg_line_context: }
+ }
+\fi:
+\cs_new_protected:Npn \msg_new:nnnn #1#2
+ {
+ \chk_if_free_msg:nn {#1} {#2}
\msg_gset:nnnn {#1} {#2}
}
\cs_new_protected:Npn \msg_new:nnn #1#2#3
@@ -534,6 +549,13 @@
LaTeX~has~been~asked~to~use~a~command~#1,~but~this~has~not~
been~defined~yet.
}
+\msg_kernel_new:nnnn { kernel } { out-of-registers }
+ { No~room~for~a~new~#1. }
+ {
+ TeX~only~supports~\int_use:N \c_max_register_int \
+ of~each~type.~All~the~#1~registers~have~been~used.~
+ This~run~will~be~aborted~now.
+ }
\msg_kernel_new:nnnn { kernel } { variable-not-defined }
{ Variable~#1~undefined. }
{
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3prg.sty b/Master/texmf-dist/tex/latex/l3kernel/l3prg.sty
index 8c3e0e70b3f..4fc7acdcdbb 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3prg.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3prg.sty
@@ -46,7 +46,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3prg.dtx 3338 2012-02-08 08:21:42Z joseph $
+\GetIdInfo$Id: l3prg.dtx 3464 2012-02-26 15:30:29Z bruno $
{L3 Experimental control structures}
%%
\ProvidesExplPackage
@@ -94,6 +94,22 @@
\cs_generate_variant:Nn \bool_if:NT { c }
\cs_generate_variant:Nn \bool_if:NF { c }
\cs_generate_variant:Nn \bool_if:NTF { c }
+\cs_new_protected:Npn \bool_show:N #1
+ {
+ \cs_if_exist:NTF #1
+ { \bool_show:n {#1} }
+ {
+ \msg_kernel_error:nnx { kernel } { variable-not-defined }
+ { \token_to_str:N #1 }
+ }
+ }
+\cs_new_protected:Npn \bool_show:n #1
+ {
+ \bool_if:nTF {#1}
+ { \msg_aux_show:x { > true } }
+ { \msg_aux_show:x { > false } }
+ }
+\cs_generate_variant:Nn \bool_show:N { c }
\bool_new:N \l_tmpa_bool
\bool_new:N \g_tmpa_bool
\prg_new_conditional:Npnn \bool_if:n #1 { T , F , TF }
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3prop.sty b/Master/texmf-dist/tex/latex/l3kernel/l3prop.sty
index c58cff46737..169d5ffe5d6 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3prop.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3prop.sty
@@ -46,7 +46,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3prop.dtx 3158 2012-01-09 00:47:42Z bruno $
+\GetIdInfo$Id: l3prop.dtx 3460 2012-02-26 12:16:41Z will $
{L3 Experimental property lists}
%%
\ProvidesExplPackage
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3quark.sty b/Master/texmf-dist/tex/latex/l3kernel/l3quark.sty
index 344873f2405..e22e215617a 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3quark.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3quark.sty
@@ -46,7 +46,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3quark.dtx 3148 2012-01-08 15:42:18Z bruno $
+\GetIdInfo$Id: l3quark.dtx 3384 2012-02-12 13:13:11Z will $
{L3 Experimental quarks}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3skip.sty b/Master/texmf-dist/tex/latex/l3kernel/l3skip.sty
index 8fdb538a031..5ba6dec68d7 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3skip.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3skip.sty
@@ -47,7 +47,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3skip.dtx 3313 2012-02-06 11:15:21Z bruno $
+\GetIdInfo$Id: l3skip.dtx 3460 2012-02-26 12:16:41Z will $
{L3 Experimental dimensions and skips}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3tl.sty b/Master/texmf-dist/tex/latex/l3kernel/l3tl.sty
index 95b2d84cd8a..59e810e8aa5 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3tl.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3tl.sty
@@ -46,7 +46,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3tl.dtx 3316 2012-02-06 12:24:43Z bruno $
+\GetIdInfo$Id: l3tl.dtx 3460 2012-02-26 12:16:41Z will $
{L3 Experimental token lists}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -486,7 +486,9 @@
\cs_new:Npn \tl_tail:n #1
{ \etex_unexpanded:D \tl_tail_aux:w #1 \q_mark { } \q_mark \q_stop }
\cs_new:Npn \tl_tail_aux:w #1 #2 \q_mark #3 \q_stop { {#2} }
+\cs_new_nopar:Npn \tl_head:N { \exp_args:No \tl_head:n }
\cs_generate_variant:Nn \tl_head:n { V , v , f }
+\cs_new_nopar:Npn \tl_tail:N { \exp_args:No \tl_tail:n }
\cs_generate_variant:Nn \tl_tail:n { V , v , f }
\cs_new:Npn \str_head:n #1
{
@@ -602,18 +604,6 @@
{ \exp_after:wN \c_zero \exp_after:wN \prg_return_false: }
\exp_after:wN \use_none:n \exp_after:wN { \if_false: } \fi:
}
-\cs_new_protected:Npn \tl_to_str_active_safe:Nx #1#2
- {
- \group_begin:
- \seq_map_inline:Nn \l_char_active_seq
- { \cs_set_nopar:Npx ##1 { \token_to_str:N ##1 } }
- \use:x
- {
- \group_end:
- \tl_set:Nn \exp_not:N #1 {#2}
- }
- \tl_set:Nx #1 { \tl_to_str:N #1 }
- }
\cs_new_protected:Npn \tl_show:N #1 { \cs_show:N #1 }
\cs_generate_variant:Nn \tl_show:N { c }
\cs_new_eq:NN \tl_show:n \etex_showtokens:D
diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3token.sty b/Master/texmf-dist/tex/latex/l3kernel/l3token.sty
index 3bab1bd32dd..04531db0274 100644
--- a/Master/texmf-dist/tex/latex/l3kernel/l3token.sty
+++ b/Master/texmf-dist/tex/latex/l3kernel/l3token.sty
@@ -46,7 +46,7 @@
%%
%% -----------------------------------------------------------------------
\RequirePackage{l3names}
-\GetIdInfo$Id: l3token.dtx 3316 2012-02-06 12:24:43Z bruno $
+\GetIdInfo$Id: l3token.dtx 3460 2012-02-26 12:16:41Z will $
{L3 Experimental token manipulation}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
@@ -181,7 +181,7 @@
\seq_set_from_clist:Nn \l_char_active_seq
}
}
- { { " , $ , & , ^ , _ , ~ } }
+ { { " , $ , & , ^ , _ , ~ } } %$
\seq_new:N \l_char_special_seq
\seq_set_from_clist:Nn \l_char_special_seq
{ \ , \" , \# , \$ , \% , \& , \\ , \^ , \_ , \{ , \} , \~ }
@@ -367,6 +367,24 @@
% }
}
\cs_new:Npn \token_if_int_register_aux:w #1 COUXY #2 \q_stop { #1 ~ }
+ \prg_new_conditional:Npnn \token_if_muskip_register:N #1 { p , T , F , TF }
+ {
+ \if_meaning:w \tex_muskip:D #1
+ \prg_return_false:
+ \else:
+ \if_meaning:w \tex_muskipdef:D #1
+ \prg_return_false:
+ \else:
+ \str_if_eq_return:xx
+ {
+ \exp_after:wN \token_if_muskip_register_aux:w
+ \token_to_meaning:N #1 MUSKIP \q_stop
+ }
+ { \token_to_str:N \ }
+ \fi:
+ \fi:
+ }
+ \cs_new:Npn \token_if_muskip_register_aux:w #1 MUSKIP #2 \q_stop { #1 ~ }
\prg_new_conditional:Npnn \token_if_skip_register:N #1 { p , T , F , TF }
{
\if_meaning:w \tex_skip:D #1