From 06f92e7988867477e0e8ba1b2dea3752d90f7fbe Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 23 Apr 2012 23:35:34 +0000 Subject: l3kernel 3570 (23apr12) git-svn-id: svn://tug.org/texlive/trunk@26111 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/l3kernel/expl3.sty | 4 +- Master/texmf-dist/tex/latex/l3kernel/l3basics.sty | 109 +++++----- Master/texmf-dist/tex/latex/l3kernel/l3box.sty | 24 +-- Master/texmf-dist/tex/latex/l3kernel/l3clist.sty | 10 +- Master/texmf-dist/tex/latex/l3kernel/l3coffins.sty | 13 +- Master/texmf-dist/tex/latex/l3kernel/l3doc.cls | 4 +- Master/texmf-dist/tex/latex/l3kernel/l3file.sty | 50 +++-- Master/texmf-dist/tex/latex/l3kernel/l3fp.sty | 14 +- Master/texmf-dist/tex/latex/l3kernel/l3int.sty | 117 +++++----- Master/texmf-dist/tex/latex/l3kernel/l3keys.sty | 29 +-- Master/texmf-dist/tex/latex/l3kernel/l3msg.sty | 237 +++++++++++++-------- Master/texmf-dist/tex/latex/l3kernel/l3names.sty | 4 +- Master/texmf-dist/tex/latex/l3kernel/l3prg.sty | 12 +- Master/texmf-dist/tex/latex/l3kernel/l3prop.sty | 14 +- Master/texmf-dist/tex/latex/l3kernel/l3seq.sty | 10 +- Master/texmf-dist/tex/latex/l3kernel/l3skip.sty | 140 ++++++++---- Master/texmf-dist/tex/latex/l3kernel/l3tl.sty | 16 +- Master/texmf-dist/tex/latex/l3kernel/l3token.sty | 4 +- 18 files changed, 469 insertions(+), 342 deletions(-) (limited to 'Master/texmf-dist/tex/latex') diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3.sty b/Master/texmf-dist/tex/latex/l3kernel/expl3.sty index 28dfab3ab00..f264342f725 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/26} -\def\ExplFileVersion{3471} +\def\ExplFileDate{2012/04/23} +\def\ExplFileVersion{3570} \RequirePackage{etex} \reserveinserts{32} \ProvidesExplPackage diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3basics.sty b/Master/texmf-dist/tex/latex/l3kernel/l3basics.sty index 2193b30348f..182505d931f 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 3460 2012-02-26 12:16:41Z will $ +\GetIdInfo$Id: l3basics.dtx 3491 2012-03-04 06:13:18Z bruno $ {L3 Experimental basic definitions} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} @@ -67,13 +67,13 @@ \tex_let:D \if_mode_inner: \tex_ifinner:D \tex_let:D \if_cs_exist:N \etex_ifdefined:D \tex_let:D \if_cs_exist:w \etex_ifcsname:D +\tex_let:D \cs:w \tex_csname:D +\tex_let:D \cs_end: \tex_endcsname:D \tex_let:D \exp_after:wN \tex_expandafter:D \tex_let:D \exp_not:N \tex_noexpand:D \tex_let:D \exp_not:n \etex_unexpanded:D \tex_let:D \token_to_meaning:N \tex_meaning:D \tex_let:D \token_to_str:N \tex_string:D -\tex_let:D \cs:w \tex_csname:D -\tex_let:D \cs_end: \tex_endcsname:D \tex_let:D \cs_meaning:N \tex_meaning:D \tex_let:D \cs_show:N \tex_show:D \tex_let:D \scan_stop: \tex_relax:D @@ -398,11 +398,11 @@ { \prg_return_true: } } \cs_set:Npn \cs_if_exist_use:NTF #1#2 - { \cs_if_exist:NTF #1 { #1 #2} } + { \cs_if_exist:NTF #1 { #1 #2 } } \cs_set:Npn \cs_if_exist_use:NF #1 { \cs_if_exist:NTF #1 { #1 } } \cs_set:Npn \cs_if_exist_use:NT #1 #2 - { \cs_if_exist:NTF #1 { #1#2 } { } } + { \cs_if_exist:NTF #1 { #1 #2 } { } } \cs_set:Npn \cs_if_exist_use:N #1 { \cs_if_exist:NTF #1 { #1 } { } } \cs_set:Npn \cs_if_exist_use:cTF #1#2 @@ -512,6 +512,10 @@ \cs_new_protected_nopar:Npn \cs_set_eq:cN { \exp_args:Nc \cs_set_eq:NN } \cs_new_protected_nopar:Npn \cs_set_eq:Nc { \exp_args:NNc \cs_set_eq:NN } \cs_new_protected_nopar:Npn \cs_set_eq:cc { \exp_args:Ncc \cs_set_eq:NN } +\cs_new_protected_nopar:Npn \cs_gset_eq:NN { \tex_global:D \cs_set_eq:NN } +\cs_new_protected_nopar:Npn \cs_gset_eq:Nc { \exp_args:NNc \cs_gset_eq:NN } +\cs_new_protected_nopar:Npn \cs_gset_eq:cN { \exp_args:Nc \cs_gset_eq:NN } +\cs_new_protected_nopar:Npn \cs_gset_eq:cc { \exp_args:Ncc \cs_gset_eq:NN } \cs_new_protected:Npn \cs_new_eq:NN #1 { \chk_if_free_cs:N #1 @@ -520,10 +524,6 @@ \cs_new_protected_nopar:Npn \cs_new_eq:cN { \exp_args:Nc \cs_new_eq:NN } \cs_new_protected_nopar:Npn \cs_new_eq:Nc { \exp_args:NNc \cs_new_eq:NN } \cs_new_protected_nopar:Npn \cs_new_eq:cc { \exp_args:Ncc \cs_new_eq:NN } -\cs_new_protected_nopar:Npn \cs_gset_eq:NN { \tex_global:D \cs_set_eq:NN } -\cs_new_protected_nopar:Npn \cs_gset_eq:Nc { \exp_args:NNc \cs_gset_eq:NN } -\cs_new_protected_nopar:Npn \cs_gset_eq:cN { \exp_args:Nc \cs_gset_eq:NN } -\cs_new_protected_nopar:Npn \cs_gset_eq:cc { \exp_args:Ncc \cs_gset_eq:NN } \cs_new_protected:Npn \cs_undefine:N #1 { \cs_gset_eq:NN #1 \c_undefined:D } \cs_new_protected:Npn \cs_undefine:c #1 @@ -587,11 +587,11 @@ } \cs_set:Npn \cs_tmp:w #1#2#3 { - \cs_set_protected:cpx { cs_ #1 : #2 } ##1##2 + \cs_new_protected:cpx { cs_ #1 : #2 } ##1##2 { \exp_not:N \cs_generate_from_arg_count:NNnn ##1 \exp_after:wN \exp_not:N \cs:w cs_#1 : #3 \cs_end: - { \exp_not:N\cs_get_arg_count_from_signature:N ##1 }{##2} + { \exp_not:N \cs_get_arg_count_from_signature:N ##1 }{##2} } } \cs_tmp:w { set } { Nn } { Npn } @@ -610,21 +610,22 @@ \cs_tmp:w { gset_protected } { Nx } { Npx } \cs_tmp:w { gset_protected_nopar } { Nn } { Npn } \cs_tmp:w { gset_protected_nopar } { Nx } { Npx } -\cs_tmp:w { new } { Nn } { Npn } -\cs_tmp:w { new } { Nx } { Npx } -\cs_tmp:w { new_nopar } { Nn } { Npn } -\cs_tmp:w { new_nopar } { Nx } { Npx } -\cs_tmp:w { new_protected } { Nn } { Npn } -\cs_tmp:w { new_protected } { Nx } { Npx } -\cs_tmp:w { new_protected_nopar } { Nn } { Npn } -\cs_tmp:w { new_protected_nopar } { Nx } { Npx } +\cs_tmp:w { new } { Nn } { Npn } +\cs_tmp:w { new } { Nx } { Npx } +\cs_tmp:w { new_nopar } { Nn } { Npn } +\cs_tmp:w { new_nopar } { Nx } { Npx } +\cs_tmp:w { new_protected } { Nn } { Npn } +\cs_tmp:w { new_protected } { Nx } { Npx } +\cs_tmp:w { new_protected_nopar } { Nn } { Npn } +\cs_tmp:w { new_protected_nopar } { Nx } { Npx } \cs_set:Npn \cs_tmp:w #1#2#3 { - \cs_set_protected:cpx {cs_#1:#2}##1##2{ - \exp_not:N\cs_generate_from_arg_count:cNnn {##1} - \exp_after:wN \exp_not:N \cs:w cs_#1:#3 \cs_end: - { \exp_not:N \cs_get_arg_count_from_signature:c {##1} } {##2} - } + \cs_new_protected:cpx {cs_#1:#2} ##1##2 + { + \exp_not:N \cs_generate_from_arg_count:cNnn {##1} + \exp_after:wN \exp_not:N \cs:w cs_#1:#3 \cs_end: + { \exp_not:N \cs_get_arg_count_from_signature:c {##1} } {##2} + } } \cs_tmp:w { set } { cn } { Npn } \cs_tmp:w { set } { cx } { Npx } @@ -642,14 +643,14 @@ \cs_tmp:w { gset_protected } { cx } { Npx } \cs_tmp:w { gset_protected_nopar } { cn } { Npn } \cs_tmp:w { gset_protected_nopar } { cx } { Npx } -\cs_tmp:w { new } { cn } { Npn } -\cs_tmp:w { new } { cx } { Npx } -\cs_tmp:w { new_nopar } { cn } { Npn } -\cs_tmp:w { new_nopar } { cx } { Npx } -\cs_tmp:w { new_protected } { cn } { Npn } -\cs_tmp:w { new_protected } { cx } { Npx } -\cs_tmp:w { new_protected_nopar } { cn } { Npn } -\cs_tmp:w { new_protected_nopar } { cx } { Npx } +\cs_tmp:w { new } { cn } { Npn } +\cs_tmp:w { new } { cx } { Npx } +\cs_tmp:w { new_nopar } { cn } { Npn } +\cs_tmp:w { new_nopar } { cx } { Npx } +\cs_tmp:w { new_protected } { cn } { Npn } +\cs_tmp:w { new_protected } { cx } { Npx } +\cs_tmp:w { new_protected_nopar } { cn } { Npn } +\cs_tmp:w { new_protected_nopar } { cx } { Npx } \prg_new_conditional:Npnn \cs_if_eq:NN #1#2 { p , T , F , TF } { \if_meaning:w #1#2 @@ -670,11 +671,11 @@ \cs_new:Npn \kernel_register_show:N #1 { \cs_if_exist:NTF #1 - { \tex_showthe:D \use:n #1 } - { - \msg_kernel_error:nnx { kernel } { variable-not-defined } - { \token_to_str:N #1 } - } + { \tex_showthe:D \use:n {#1} } + { + \msg_kernel_error:nnx { kernel } { variable-not-defined } + { \token_to_str:N #1 } + } } \cs_new_nopar:Npn \kernel_register_show:c { \exp_args:Nc \kernel_register_show:N } @@ -692,32 +693,32 @@ \cs_new_eq:NN \xetex_if_engine_p: \c_false_bool \cs_if_exist:NT \xetex_XeTeXversion:D { - \cs_set_eq:NN \pdftex_if_engine:T \use_none:n - \cs_set_eq:NN \pdftex_if_engine:F \use:n - \cs_set_eq:NN \pdftex_if_engine:TF \use_ii:nn - \cs_set_eq:NN \xetex_if_engine:T \use:n - \cs_set_eq:NN \xetex_if_engine:F \use_none:n - \cs_set_eq:NN \xetex_if_engine:TF \use_i:nn - \cs_set_eq:NN \pdftex_if_engine_p: \c_false_bool - \cs_set_eq:NN \xetex_if_engine_p: \c_true_bool + \cs_gset_eq:NN \pdftex_if_engine:T \use_none:n + \cs_gset_eq:NN \pdftex_if_engine:F \use:n + \cs_gset_eq:NN \pdftex_if_engine:TF \use_ii:nn + \cs_gset_eq:NN \xetex_if_engine:T \use:n + \cs_gset_eq:NN \xetex_if_engine:F \use_none:n + \cs_gset_eq:NN \xetex_if_engine:TF \use_i:nn + \cs_gset_eq:NN \pdftex_if_engine_p: \c_false_bool + \cs_gset_eq:NN \xetex_if_engine_p: \c_true_bool } \cs_if_exist:NT \luatex_directlua:D { - \cs_set_eq:NN \luatex_if_engine:T \use:n - \cs_set_eq:NN \luatex_if_engine:F \use_none:n - \cs_set_eq:NN \luatex_if_engine:TF \use_i:nn - \cs_set_eq:NN \pdftex_if_engine:T \use_none:n - \cs_set_eq:NN \pdftex_if_engine:F \use:n - \cs_set_eq:NN \pdftex_if_engine:TF \use_ii:nn - \cs_set_eq:NN \luatex_if_engine_p: \c_true_bool - \cs_set_eq:NN \pdftex_if_engine_p: \c_false_bool + \cs_gset_eq:NN \luatex_if_engine:T \use:n + \cs_gset_eq:NN \luatex_if_engine:F \use_none:n + \cs_gset_eq:NN \luatex_if_engine:TF \use_i:nn + \cs_gset_eq:NN \pdftex_if_engine:T \use_none:n + \cs_gset_eq:NN \pdftex_if_engine:F \use:n + \cs_gset_eq:NN \pdftex_if_engine:TF \use_ii:nn + \cs_gset_eq:NN \luatex_if_engine_p: \c_true_bool + \cs_gset_eq:NN \pdftex_if_engine_p: \c_false_bool } \cs_new_nopar:Npn \prg_do_nothing: { } \prg_new_conditional:Npnn \str_if_eq:nn #1#2 { p , T , F , TF } { \if_int_compare:w \pdftex_strcmp:D { \exp_not:n {#1} } { \exp_not:n {#2} } = \c_zero - \prg_return_true: \else: \prg_return_false: \fi: + \prg_return_true: \else: \prg_return_false: \fi: } \prg_new_conditional:Npnn \str_if_eq:xx #1#2 { p , T , F , TF } { diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3box.sty b/Master/texmf-dist/tex/latex/l3kernel/l3box.sty index 1fe36dc7ca3..c78a4f2122e 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 3432 2012-02-18 12:16:20Z joseph $ +\GetIdInfo$Id: l3box.dtx 3490 2012-03-04 01:00:53Z bruno $ {L3 Experimental boxes} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} @@ -64,17 +64,9 @@ \cs_generate_variant:Nn \box_clear:N { c } \cs_generate_variant:Nn \box_gclear:N { c } \cs_new_protected:Npn \box_clear_new:N #1 - { - \cs_if_exist:NTF #1 - { \box_set_eq:NN #1 \c_empty_box } - { \box_new:N #1 } - } + { \box_if_exist:NTF #1 { \box_clear:N #1 } { \box_new:N #1 } } \cs_new_protected:Npn \box_gclear_new:N #1 - { - \cs_if_exist:NTF #1 - { \box_gset_eq:NN #1 \c_empty_box } - { \box_new:N #1 } - } + { \box_if_exist:NTF #1 { \box_gclear:N #1 } { \box_new:N #1 } } \cs_generate_variant:Nn \box_clear_new:N { c } \cs_generate_variant:Nn \box_gclear_new:N { c } \cs_new_protected:Npn \box_set_eq:NN #1#2 @@ -89,6 +81,14 @@ { \tex_global:D \box_set_eq_clear:NN } \cs_generate_variant:Nn \box_set_eq_clear:NN { cN , Nc , cc } \cs_generate_variant:Nn \box_gset_eq_clear:NN { cN , 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 \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 @@ -148,7 +148,7 @@ \box_new:N \l_tmpb_box \cs_new_protected:Npn \box_show:N #1 { - \cs_if_exist:NTF #1 + \box_if_exist:NTF #1 { \tex_showbox:D \use:n {#1} } { \msg_kernel_error:nnx { kernel } { variable-not-defined } diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3clist.sty b/Master/texmf-dist/tex/latex/l3kernel/l3clist.sty index 7fc71a96c04..75ef38900cc 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 3460 2012-02-26 12:16:41Z will $ +\GetIdInfo$Id: l3clist.dtx 3490 2012-03-04 01:00:53Z bruno $ {L3 Experimental comma separated lists} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} @@ -88,6 +88,14 @@ } \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 \cs_set:Npn \clist_tmp:w #1 { \cs_new:Npn \clist_trim_spaces_generic:nw ##1 ##2 , diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3coffins.sty b/Master/texmf-dist/tex/latex/l3kernel/l3coffins.sty index 5c5ea863483..cd84ef63e8e 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 3460 2012-02-26 12:16:41Z will $ +\GetIdInfo$Id: l3coffins.dtx 3482 2012-03-03 18:48:06Z bruno $ {L3 Experimental coffin code layer} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} @@ -1068,7 +1068,7 @@ } \cs_new_protected:Npn \coffin_show_structure:N #1 { - \cs_if_exist:cTF { l_coffin_poles_ \int_value:w #1 _prop } + \coffin_if_exist:NT #1 { \msg_aux_show:Nnx #1 { coffins } { @@ -1077,10 +1077,6 @@ \msg_aux_show_unbraced:nn } } - { - \msg_aux_use:nn { LaTeX / coffins } { no-pole } - \msg_aux_show:x { } - } } \cs_generate_variant:Nn \coffin_show_structure:N { c } \msg_kernel_new:nnnn { coffins } { no-pole-intersection } @@ -1109,11 +1105,6 @@ > ~ wd~=~\dim_use:N \box_wd:N #1 \\ Poles~of~coffin~\token_to_str:N #1 : } -\msg_kernel_new:nnn { coffins } { no-pole } - { - ---~No~poles~found~--- \\ - Is~this~really~a~coffin? - } %% %% %% End of file `l3coffins.sty'. diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls b/Master/texmf-dist/tex/latex/l3kernel/l3doc.cls index e01b5752fd5..b79ca0bb135 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 3464 2012-02-26 15:30:29Z bruno $ +\GetIdInfo$Id: l3doc.dtx 3491 2012-03-04 06:13:18Z bruno $ {L3 Experimental documentation class} \ProvidesExplClass {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} @@ -395,7 +395,7 @@ \vcoffin_set:Nnw \l_doc_descr_coffin {\textwidth} \noindent\ignorespaces } -\cs_gset_nopar:Npn \function_typeset:n #1 +\cs_gset_nopar:Npn \function_typeset:n #1 %^^A todo: use "\cs_new:Npn" here { \tl_gclear:N \g_doc_macro_tl diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3file.sty b/Master/texmf-dist/tex/latex/l3kernel/l3file.sty index 25eda0dc609..a86de65f88f 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3file.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3file.sty @@ -46,7 +46,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3file.dtx 3464 2012-02-26 15:30:29Z bruno $ +\GetIdInfo$Id: l3file.dtx 3520 2012-03-09 19:34:07Z joseph $ {L3 Experimental file and I/O operations} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} @@ -205,20 +205,20 @@ \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 + \file_add_path:nN {#2} \l_file_internal_name_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 } + { \ior_open_unsafe: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 } } \cs_new_protected:Npn \ior_open_aux:NnTF #1#2 { - \file_add_path:nN {#2} \l_file_name_internal_tl + \file_add_path:nN {#2} \l_file_internal_name_tl \quark_if_no_value:NTF \l_file_internal_name_tl { \prg_return_false: } { - \ior_open_unsafe:No #1 \l_file_name_internal_tl + \ior_open_unsafe:No #1 \l_file_internal_name_tl \prg_return_true: } } @@ -272,8 +272,7 @@ \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 } } + \cs_if_exist:cF { g_iow_ \int_use:N \l_iow_stream_int _iow } { \iow_stream_alloc_aux: \int_compare:nNnT \l_iow_stream_int = \c_sixteen @@ -283,26 +282,25 @@ \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_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_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 } } + \cs_if_exist:cF { g_ior_ \int_use:N \l_ior_stream_int _ior } { \ior_stream_alloc_aux: \int_compare:nNnT \l_ior_stream_int = \c_sixteen @@ -312,20 +310,20 @@ \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_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_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 @@ -621,10 +619,10 @@ } \tl_new:N \l_ior_internal_tl \msg_kernel_new:nnnn { file } { file-not-found } - { Space~in~file~name~'#1'. } + { File~'#1'~not~found. } { - Spaces~are~not~permitted~in~files~loaded~by~LaTeX: \\ - Further~errors~may~follow! + The~requested~file~could~not~be~found~in~the~current~directory,~ + in~the~TeX~search~path~or~in~the~LaTeX~search~path. } \msg_kernel_new:nnnn { file } { space-in-file-name } { Space~in~file~name~'#1'. } diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3fp.sty b/Master/texmf-dist/tex/latex/l3kernel/l3fp.sty index df321de33c9..bb38caa64f6 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3fp.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3fp.sty @@ -46,7 +46,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3fp.dtx 3315 2012-02-06 11:17:04Z bruno $ +\GetIdInfo$Id: l3fp.dtx 3490 2012-03-04 01:00:53Z bruno $ {L3 Experimental floating-point operations} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} @@ -353,9 +353,9 @@ \cs_generate_variant:Nn \fp_zero:N { c } \cs_generate_variant:Nn \fp_gzero:N { c } \cs_new_protected:Npn \fp_zero_new:N #1 - { \cs_if_exist:NTF #1 { \fp_zero:N #1 } { \fp_new:N #1 } } + { \fp_if_exist:NTF #1 { \fp_zero:N #1 } { \fp_new:N #1 } } \cs_new_protected:Npn \fp_gzero_new:N #1 - { \cs_if_exist:NTF #1 { \fp_gzero:N #1 } { \fp_new:N #1 } } + { \fp_if_exist:NTF #1 { \fp_gzero:N #1 } { \fp_new:N #1 } } \cs_generate_variant:Nn \fp_zero_new:N { c } \cs_generate_variant:Nn \fp_gzero_new:N { c } \cs_new_protected_nopar:Npn \fp_set:Nn { \fp_set_aux:NNn \tl_set:Nn } @@ -515,6 +515,14 @@ \prg_replicate:nn { #2 - 9 } { 0 } . } +\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 \cs_new:Npn \fp_to_dim:N #1 { \fp_use:N #1 pt } \cs_generate_variant:Nn \fp_to_dim:N { c } \cs_new:Npn \fp_to_int:N #1 diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3int.sty b/Master/texmf-dist/tex/latex/l3kernel/l3int.sty index f12cda36783..76b61a861c6 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 3460 2012-02-26 12:16:41Z will $ +\GetIdInfo$Id: l3int.dtx 3490 2012-03-04 01:00:53Z bruno $ {L3 Experimental integers} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} @@ -157,9 +157,9 @@ \cs_generate_variant:Nn \int_zero:N { c } \cs_generate_variant:Nn \int_gzero:N { c } \cs_new_protected:Npn \int_zero_new:N #1 - { \cs_if_exist:NTF #1 { \int_zero:N #1 } { \int_new:N #1 } } + { \int_if_exist:NTF #1 { \int_zero:N #1 } { \int_new:N #1 } } \cs_new_protected:Npn \int_gzero_new:N #1 - { \cs_if_exist:NTF #1 { \int_gzero:N #1 } { \int_new:N #1 } } + { \int_if_exist:NTF #1 { \int_gzero:N #1 } { \int_new:N #1 } } \cs_generate_variant:Nn \int_zero_new:N { c } \cs_generate_variant:Nn \int_gzero_new:N { c } \cs_new_protected:Npn \int_set_eq:NN #1#2 { #1 = #2 } @@ -168,6 +168,14 @@ \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 \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 @@ -199,76 +207,53 @@ \cs_generate_variant:Nn \int_gset:Nn { c } \cs_new_eq:NN \int_use:N \tex_the:D \cs_new:Npn \int_use:c #1 { \int_use:N \cs:w #1 \cs_end: } -\prg_new_conditional:Npnn \int_compare:n #1 { p , T , F , TF } - { \exp_after:wN \int_compare_aux:nw \int_value:w \int_eval:w #1 \q_stop } -\cs_new:Npn \int_compare_aux:nw #1#2 \q_stop - { - \exp_after:wN \int_compare_aux:Nw - \int_to_roman:w - \if:w #1 - - \else: - - - \fi: - #1#2 \q_mark #1#2 \q_stop - } -\cs_new:Npn \int_compare_aux:Nw #1#2#3 \q_mark - { \use:c { int_compare_ #1 \if_meaning:w = #2 = \fi: :w } } -\cs_new:cpn { int_compare_=:w } #1 = #2 \q_stop - { - \if_int_compare:w #1 = \int_eval:w #2 \int_eval_end: - \prg_return_true: - \else: - \prg_return_false: - \fi: - } -\cs_new:cpn { int_compare_==:w } #1 == #2 \q_stop +\cs_new_protected_nopar:Npn \kernel_compare_error: { - \if_int_compare:w #1 = \int_eval:w #2 \int_eval_end: - \prg_return_true: - \else: - \prg_return_false: - \fi: + \if_num:w \c_zero \c_zero \fi: + = + \kernel_compare_error: } -\cs_new:cpn { int_compare_!=:w } #1 != #2 \q_stop +\cs_new:Npn \kernel_compare_error:Nw + #1#2 \prg_return_true: \else: \prg_return_false: \fi: { - \if_int_compare:w #1 = \int_eval:w #2 \int_eval_end: - \prg_return_false: - \else: - \prg_return_true: - \fi: + \msg_expandable_kernel_error:nnn + { kernel } { unknown-comparison } {#1} + \prg_return_false: } -\cs_new:cpn { int_compare_<:w } #1 < #2 \q_stop - { - \if_int_compare:w #1 < \int_eval:w #2 \int_eval_end: - \prg_return_true: - \else: - \prg_return_false: - \fi: - } -\cs_new:cpn { int_compare_>:w } #1 > #2 \q_stop +\prg_new_conditional:Npnn \int_compare:n #1 { p , T , F , TF } { - \if_int_compare:w #1 > \int_eval:w #2 \int_eval_end: + \exp_after:wN \int_compare_aux:Nw \int_use:N \int_eval:w #1 + \kernel_compare_error: \int_eval_end: \prg_return_true: \else: \prg_return_false: \fi: } -\cs_new:cpn { int_compare_<=:w } #1 <= #2 \q_stop - { - \if_int_compare:w #1 > \int_eval:w #2 \int_eval_end: - \prg_return_false: - \else: - \prg_return_true: - \fi: - } -\cs_new:cpn { int_compare_>=:w } #1 >= #2 \q_stop - { - \if_int_compare:w #1 < \int_eval:w #2 \int_eval_end: - \prg_return_false: - \else: - \prg_return_true: - \fi: - } +\cs_new:Npn \int_compare_aux:Nw #1#2 \kernel_compare_error: + { + \exp_after:wN \int_compare_aux:NNw + \int_to_roman:w - 0 #2 ?? \q_mark + #1#2 + } +\cs_new:Npn \int_compare_aux:NNw #1#2#3 \q_mark + { + \use:c { int_compare_ #1 \if_meaning:w = #2 = \fi: :NNw } + \kernel_compare_error:Nw #1 + } +\cs_new:cpn { int_compare_=:NNw } #1#2#3 = + { \if_int_compare:w #3 = \int_eval:w } +\cs_new:cpn { int_compare_<:NNw } #1#2#3 < + { \if_int_compare:w #3 < \int_eval:w } +\cs_new:cpn { int_compare_>:NNw } #1#2#3 > + { \if_int_compare:w #3 > \int_eval:w } +\cs_new:cpn { int_compare_==:NNw } #1#2#3 == + { \if_int_compare:w #3 = \int_eval:w } +\cs_new:cpn { int_compare_!=:NNw } #1#2#3 != + { \reverse_if:N \if_int_compare:w #3 = \int_eval:w } +\cs_new:cpn { int_compare_<=:NNw } #1#2#3 <= + { \reverse_if:N \if_int_compare:w #3 > \int_eval:w } +\cs_new:cpn { int_compare_>=:NNw } #1#2#3 >= + { \reverse_if:N \if_int_compare:w #3 < \int_eval:w } \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: @@ -658,16 +643,16 @@ { \str_if_eq:nnTF {#2} { Q } { - \cs_if_exist:cF { c_int_from_roman_ #1 _int } + \int_if_exist:cF { c_int_from_roman_ #1 _int } { \int_from_roman_clean_up:w } + \use:c { c_int_from_roman_ #1 _int } #2 } { - \cs_if_exist:cF { c_int_from_roman_ #1 _int } + \int_if_exist:cF { c_int_from_roman_ #1 _int } { \int_from_roman_clean_up:w } - \cs_if_exist:cF { c_int_from_roman_ #2 _int } + \int_if_exist:cF { c_int_from_roman_ #2 _int } { \int_from_roman_clean_up:w } \int_compare:nNnTF { \use:c { c_int_from_roman_ #1 _int } } diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3keys.sty b/Master/texmf-dist/tex/latex/l3kernel/l3keys.sty index aab64765fa0..a0ae5751eb3 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3keys.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3keys.sty @@ -46,7 +46,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3keys.dtx 3086 2011-12-22 17:55:46Z bruno $ +\GetIdInfo$Id: l3keys.dtx 3487 2012-03-03 19:36:51Z bruno $ {L3 Experimental key-value interfaces} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} @@ -191,15 +191,16 @@ \bool_set_false:N \l_keys_no_value_bool \keys_define_elt_aux:nn {#1} {#2} } -\cs_new_protected:Npn \keys_define_elt_aux:nn #1#2 { - \keys_property_find:n {#1} - \cs_if_exist:cTF { \c_keys_props_root_tl \l_keys_property_tl } - { \keys_define_key:n {#2} } - { - \msg_kernel_error:nnxx { keys } { property-unknown } - { \l_keys_property_tl } { \l_keys_path_tl } - } -} +\cs_new_protected:Npn \keys_define_elt_aux:nn #1#2 + { + \keys_property_find:n {#1} + \cs_if_exist:cTF { \c_keys_props_root_tl \l_keys_property_tl } + { \keys_define_key:n {#2} } + { + \msg_kernel_error:nnxx { keys } { property-unknown } + { \l_keys_property_tl } { \l_keys_path_tl } + } + } \cs_new_protected:Npn \keys_property_find:n #1 { \tl_set:Nx \l_keys_path_tl { \l_keys_module_tl / } @@ -236,7 +237,7 @@ { \tl_if_empty:nTF {#2} } \cs_new:Npn \keys_bool_set:NN #1#2 { - \cs_if_exist:NF #1 { \bool_new:N #1 } + \bool_if_exist:NF #1 { \bool_new:N #1 } \keys_choice_make: \keys_cmd_set:nx { \l_keys_path_tl / true } { \exp_not:c { bool_ #2 set_true:N } \exp_not:N #1 } @@ -251,7 +252,7 @@ } \cs_new:Npn \keys_bool_set_inverse:NN #1#2 { - \cs_if_exist:NF #1 { \bool_new:N #1 } + \bool_if_exist:NF #1 { \bool_new:N #1 } \keys_choice_make: \keys_cmd_set:nx { \l_keys_path_tl / true } { \exp_not:c { bool_ #2 set_false:N } \exp_not:N #1 } @@ -392,7 +393,7 @@ } \cs_new_protected:Npn \keys_variable_set:NnNN #1#2#3#4 { - \cs_if_exist:NF #1 { \use:c { #2 _new:N } #1 } + \use:c { #2_if_exist:NF } #1 { \use:c { #2 _new:N } #1 } \keys_cmd_set:nx { \l_keys_path_tl } { \exp_not:c { #2 _ #3 set:N #4 } \exp_not:N #1 {##1} } } @@ -601,7 +602,7 @@ { \cs_if_exist:cTF { \c_keys_code_root_tl #1 } { - \exp_args:Nno \use:c { \c_keys_code_root_tl #1 } + \exp_args:Nc \exp_args:No { \c_keys_code_root_tl #1 } \l_keys_value_tl } {#2} diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3msg.sty b/Master/texmf-dist/tex/latex/l3kernel/l3msg.sty index af40a84ac92..2e5ae99d6a4 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 3470 2012-02-26 19:10:24Z bruno $ +\GetIdInfo$Id: l3msg.dtx 3568 2012-04-23 13:23:58Z joseph $ {L3 Experimental messages} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} @@ -54,9 +54,14 @@ \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~>~ } +\prg_new_conditional:Npnn \msg_if_exist:nn #1#2 { p , T , F , TF } + { + \cs_if_exist:cTF { \c_msg_text_prefix_tl #1 / #2 } + { \prg_return_true: } { \prg_return_false: } + } \cs_new_protected:Npn \chk_if_free_msg:nn #1#2 { - \cs_if_free:cF { \c_msg_text_prefix_tl #1 / #2 } + \msg_if_exist:nnT {#1} {#2} { \msg_kernel_error:nnxx { msg } { message-already-defined } {#1} {#2} @@ -65,7 +70,7 @@ \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_if_exist:nnT {#1} {#2} { \msg_kernel_error:nnxx { msg } { message-already-defined } {#1} {#2} @@ -133,65 +138,50 @@ \cs_new_nopar:Npn \msg_newline: { ^^J } \cs_new_nopar:Npn \msg_two_newlines: { ^^J ^^J } \cs_new_nopar:Npn \msg_line_number: { \int_use:N \tex_inputlineno:D } -\cs_set_nopar:Npn \msg_line_context: +\cs_gset_nopar:Npn \msg_line_context: { \c_msg_on_line_text_tl \c_space_tl \msg_line_number: } -\char_set_catcode_letter:N \. -\tl_new:N - \c_msg_hide_tl.......................................................... -\tl_const:Nn \c_msg_hide_tl - { \c_msg_hide_tl.......................................................... } -\char_set_catcode_other:N \. -\tl_new:N \l_msg_text_tl \cs_new_protected:Npn \msg_interrupt:xxx #1#2#3 { - \group_begin: - \tl_if_empty:nTF {#3} - { \msg_interrupt_no_details:xx {#1} {#2} } - { \msg_interrupt_details:xxx {#1} {#2} {#3} } - \msg_interrupt_aux: - \group_end: - } -\cs_new_protected:Npn \msg_interrupt_no_details:xx #1#2 - { - \iow_wrap:xnnnN - { \\ \c_msg_no_info_text_tl } - { |~ } { 2 } { } \msg_interrupt_more_text:n - \iow_wrap:xnnnN { #1 \\ \\ #2 \\ \\ \c_msg_continue_text_tl } - { ! ~ } { 2 } {} \msg_interrupt_text:n + \tl_if_empty:nTF {#3} + { + \msg_interrupt_wrap:xx { \\ \c_msg_no_info_text_tl } + {#1 \\\\ #2 \\\\ \c_msg_continue_text_tl } + } + { + \msg_interrupt_wrap:xx { \\ #3 } + {#1 \\\\ #2 \\\\ \c_msg_help_text_tl } + } } -\cs_new_protected:Npn \msg_interrupt_details:xxx #1#2#3 +\cs_new_protected:Npn \msg_interrupt_wrap:xx #1#2 { - \iow_wrap:xnnnN - { \\ #3 } - { |~ } { 2 } { } \msg_interrupt_more_text:n - \iow_wrap:xnnnN { #1 \\ \\ #2 \\ \\ \c_msg_help_text_tl } - { ! ~ } { 2 } { } \msg_interrupt_text:n + \iow_wrap:xnnnN {#1} { | ~ } { 2 } { } \msg_interrupt_more_text:n + \iow_wrap:xnnnN {#2} { ! ~ } { 2 } { } \msg_interrupt_text:n } -\cs_new_protected:Npn \msg_interrupt_text:n #1 - { \tl_set:Nn \l_msg_text_tl {#1} } \cs_new_protected:Npn \msg_interrupt_more_text:n #1 { - \protected@edef \l_msg_internal_tl - { - |''''''''''''''''''''''''''''''''''''''''''''''' - #1 - \msg_newline: - |............................................... - } - \tex_errhelp:D \exp_after:wN { \l_msg_internal_tl } + \exp_args:Nx \tex_errhelp:D + { + |''''''''''''''''''''''''''''''''''''''''''''''' + #1 \iow_newline: + |............................................... + } } -\group_begin: % { +\group_begin: + \char_set_lccode:nn {`\{} {`\ } \char_set_lccode:nn {`\}} {`\ } \char_set_lccode:nn {`\&} {`\!} \char_set_catcode_active:N \& + \char_set_catcode_letter:N \. + \tl_new:N + \c_msg_hide_tl............................................ \tl_to_lowercase:n { \group_end: - \cs_new_protected:Npn \msg_interrupt_aux: + \cs_new_protected:Npn \msg_interrupt_text:n #1 { \iow_term:x { @@ -200,9 +190,17 @@ \iow_newline: ! } - \tl_put_right:No \l_msg_text_tl { \c_msg_hide_tl } - \cs_set_protected_nopar:Npx & - { \tex_errmessage:D { \exp_not:o { \l_msg_text_tl } } } + \group_begin: + \cs_set_protected_nopar:Npn & + { + \tex_errmessage:D + { + #1 + \c_msg_hide_tl............................................ + } + } + \exp_after:wN + \group_end: & } } @@ -220,7 +218,7 @@ \iow_term:x \iow_term:x { ************************************************* } } -\int_set:Nn \tex_errorcontextlines:D { -1 } +\int_gset:Nn \tex_errorcontextlines:D { -1 } \cs_new:Npn \msg_fatal_text:n #1 { Fatal~#1~error } \cs_new:Npn \msg_critical_text:n #1 { Critical~#1~error } \cs_new:Npn \msg_error_text:n #1 { #1~error } @@ -228,8 +226,6 @@ \cs_new:Npn \msg_info_text:n #1 { #1~info } \cs_new:Npn \msg_see_documentation_text:n #1 { \\ \\ See~the~#1~documentation~for~further~information. } -\prop_new:N \l_msg_redirect_classes_prop -\prop_new:N \l_msg_redirect_names_prop \cs_new_protected:Npn \msg_class_set:nn #1#2 { \prop_clear_new:c { l_msg_redirect_ #1 _prop } @@ -321,73 +317,126 @@ { \use:c { \c_msg_text_prefix_tl #1 / #2 } {#3} {#4} {#5} {#6} } } \msg_class_set:nn { none } { } -\seq_new:N \l_msg_redirect_classes_seq \tl_new:N \l_msg_class_tl \tl_new:N \l_msg_current_class_tl -\tl_new:N \l_msg_current_module_tl +\prop_new:N \l_msg_redirect_classes_prop +\prop_new:N \l_msg_redirect_names_prop +\prop_new:N \l_msg_redirect_prop +\bool_new:N \l_msg_use_direct_bool \cs_new_protected:Npn \msg_use:nnnnxxxx #1#2#3#4#5#6#7#8 { - \cs_set_protected_nopar:Npx \msg_use_code: - { - \seq_clear:N \exp_not:N \l_msg_redirect_classes_seq - \exp_not:n {#2} - } - \cs_set_protected:Npx \msg_use_loop:n ##1 + \msg_if_exist:nnTF {#3} {#4} { - \seq_if_in:NnTF \exp_not:n \l_msg_redirect_classes_seq {#1} - { \msg_kernel_error:nn { msg } { message-loop } {#1} } + \cs_if_exist:cTF { msg_ #1 :nnxxxx } { - \seq_put_right:Nn \exp_not:N \l_msg_redirect_classes_seq {#1} - \exp_not:N \cs_if_exist:cTF { msg_ ##1 :nnxxxx } + \tl_set:Nn \l_msg_current_class_tl {#1} + \cs_set_protected_nopar:Npx \msg_use_code: { \exp_not:n {#2} } + \cs_set_protected_nopar:Npn \msg_use_or_change_class: { - \exp_not:N \use:c { msg_ ##1 :nnxxxx } - \exp_not:n { {#3} {#4} {#5} {#6} {#7} {#8} } + \tl_if_eq:NNTF \l_msg_current_class_tl \l_msg_class_tl + { \msg_use_code: } + { + \use:c { msg_ \l_msg_class_tl :nnxxxx } + {#3} {#4} {#5} {#6} {#7} {#8} + } } + \bool_if:NTF \l_msg_use_direct_bool { - \msg_kernel_error:nnx { msg } { message-class-unknown } {##1} + \bool_set_false:N \l_msg_use_direct_bool + \msg_use_code: } + { \msg_use_aux_i:nn {#3} {#4} } } + { \msg_kernel_error:nnx { msg } { message-class-unknown } {#1} } } - \cs_if_exist:cTF { \c_msg_text_prefix_tl #3 / #4 } - { \msg_use_aux:nnn {#1} {#3} {#4} } { \msg_kernel_error:nnxx { msg } { message-unknown } {#3} {#4} } } -\cs_new_protected:Npn \msg_use_aux:nnn #1#2#3 +\cs_new_protected_nopar:Npn \msg_use_code: { } +\cs_new_protected_nopar:Npn \msg_use_or_change_class: { } +\cs_new_protected:Npn \msg_use_aux_i:nn #1#2 + { + \prop_get:NnNTF \l_msg_redirect_prop { #1 / #2 } \l_msg_class_tl + { + \bool_set_true:N \l_msg_use_direct_bool + \msg_use_or_change_class: + } + { \msg_use_aux_ii:nn {#1} {#2} } + } +\cs_new_protected:Npn \msg_use_aux_ii:nn #1#2 + { + \prop_get:coNTF { l_msg_redirect_ \l_msg_current_class_tl _ prop } + { \msg_use_aux_iii:w #1 / #2 / \q_stop } \l_msg_class_tl + { \msg_use_or_change_class: } + { + \prop_get:coNTF { l_msg_redirect_ \l_msg_current_class_tl _ prop } + { \msg_use_aux_iv:w #1 / #2 \q_stop } \l_msg_class_tl + { \msg_use_or_change_class: } + { \msg_use_aux_v: } + } + } +\cs_new:Npn \msg_use_aux_iii:w #1 / #2 / #3 \q_stop { #1 / #2 } +\cs_new:Npn \msg_use_aux_iv:w #1 / #2 \q_stop { #1 } +\cs_new_protected:Npn \msg_use_aux_v: { - \tl_set:Nn \l_msg_current_class_tl {#1} - \tl_set:Nn \l_msg_current_module_tl {#2} - \prop_if_in:NnTF \l_msg_redirect_names_prop { // #2 / #3 / } - { \msg_use_loop_check:nn { names } { // #2 / #3 / } } - { \msg_use_aux:nn {#1} {#2} } + \prop_get:cnNF { l_msg_redirect_ \l_msg_current_class_tl _ prop } + { * } \l_msg_class_tl + { \tl_set_eq:NN \l_msg_class_tl \l_msg_current_class_tl } + \msg_use_or_change_class: } -\cs_new_protected:Npn \msg_use_aux:nn #1#2 +\cs_new_protected:Npn \msg_redirect_class:nn #1#2 { - \prop_if_in:cnTF { l_msg_redirect_ #1 _prop } {#2} - { \msg_use_loop_check:nn {#1} {#2} } + \cs_if_exist:cTF { msg_ #1 :nnxxxx } { - \prop_if_in:cnTF { l_msg_redirect_ #1 _prop } { * } - { \msg_use_loop_check:nn {#1} { * } } - { \msg_use_code: } + \cs_if_exist:cTF { msg_ #2 :nnxxxx } + { + \tl_set:Nn \l_msg_current_class_tl {#1} + \msg_redirect_class_aux:nnn {#1} {#2} {#2} + } + { \msg_kernel_error:nnx { msg } { message-class-unknown } {#2} } } + { \msg_kernel_error:nnx { msg } { message-class-unknown } {#1} } } -\cs_new_protected:Npn \msg_use_loop_check:nn #1#2 +\cs_new_protected:Npn \msg_redirect_class_aux:nnn #1#2#3 { - \prop_get:cnN { l_msg_redirect_ #1 _prop } {#2} \l_msg_class_tl - \tl_if_eq:NNTF \l_msg_current_class_tl \l_msg_class_tl + \prop_get:cnNTF { l_msg_redirect_ #2 _prop } { * } \l_msg_class_tl { - { \msg_use_code: } - { \msg_use_loop:o \l_msg_class_tl } + \tl_if_eq:NNTF \l_msg_class_tl \l_msg_current_class_tl + { \msg_kernel_error:nnxx { msg } { message-loop } {#1} {#3} } + { \msg_redirect_class_aux:nVn {#1} \l_msg_class_tl {#3} } } + { \prop_put:cnn { l_msg_redirect_ #1 _prop } { * } {#3} } } -\cs_new_protected_nopar:Npn \msg_use_code: { } -\cs_new_protected:Npn \msg_use_loop:n #1 { } -\cs_generate_variant:Nn \msg_use_loop:n { o } -\cs_new_protected:Npn \msg_redirect_class:nn #1#2 - { \prop_put:cnn { l_msg_redirect_ #1 _prop } { * } {#2} } +\cs_generate_variant:Nn \msg_redirect_class_aux:nnn { nV } \cs_new_protected:Npn \msg_redirect_module:nnn #1#2#3 - { \prop_put:cnn { l_msg_redirect_ #2 _prop } {#1} {#3} } + { + \cs_if_exist:cTF { msg_ #2 :nnxxxx } + { + \cs_if_exist:cTF { msg_ #3 :nnxxxx } + { + \tl_set:Nn \l_msg_current_class_tl {#1} + \msg_redirect_module_aux:nnnn {#1} {#2} {#3} {#3} + } + { \msg_kernel_error:nnx { msg } { message-class-unknown } {#3} } + } + { \msg_kernel_error:nnx { msg } { message-class-unknown } {#2} } + } +\cs_new_protected:Npn \msg_redirect_module_aux:nnnn #1#2#3#4 + { + \prop_get:cnNTF { l_msg_redirect_ #3 _prop } {#1} \l_msg_class_tl + { + \tl_if_eq:NNTF \l_msg_class_tl \l_msg_current_class_tl + { \msg_kernel_error:nnxx { msg } { message-loop } {#2} {#4} } + { \msg_redirect_moduel_aux:nVn {#1} {#2} \l_msg_class_tl {#4} } + } + { \prop_put:cnn { l_msg_redirect_ #2 _prop } {#1} {#4} } + } +\cs_generate_variant:Nn \msg_redirect_module_aux:nnnn { nnV } \cs_new_protected:Npn \msg_redirect_name:nnn #1#2#3 - { \prop_put:Nnn \l_msg_redirect_names_prop { // #1 / #2 / } {#3} } + { + \cs_if_exist:cTF { msg_ #3 :nnxxxx } + { \prop_put:Nnn \l_msg_redirect_prop { #1 / #2 } {#3} } + { \msg_kernel_error:nnx { msg } { message-class-unknown } {#3} } + } \cs_new_protected:Npn \msg_kernel_new:nnnn #1#2 { \msg_new:nnnn { LaTeX } { #1 / #2 } } \cs_new_protected:Npn \msg_kernel_new:nnn #1#2 @@ -445,11 +494,11 @@ } \cs_new_protected:Npn \msg_kernel_error:nnxxx #1#2#3#4#5 {\msg_kernel_error:nnxxxx {#1} {#2} {#3} {#4} {#5} { } } -\cs_set_protected:Npn \msg_kernel_error:nnxx #1#2#3#4 +\cs_gset_protected:Npn \msg_kernel_error:nnxx #1#2#3#4 { \msg_kernel_error:nnxxxx {#1} {#2} {#3} {#4} { } { } } -\cs_set_protected:Npn \msg_kernel_error:nnx #1#2#3 +\cs_gset_protected:Npn \msg_kernel_error:nnx #1#2#3 { \msg_kernel_error:nnxxxx {#1} {#2} {#3} { } { } { } } -\cs_set_protected:Npn \msg_kernel_error:nn #1#2 +\cs_gset_protected:Npn \msg_kernel_error:nn #1#2 { \msg_kernel_error:nnxxxx {#1} {#2} { } { } { } { } } \prop_new:N \l_msg_redirect_kernel_warning_prop \cs_new_protected:Npn \msg_kernel_warning:nnxxxx #1#2#3#4#5#6 @@ -592,6 +641,8 @@ { Zero~step~size~for~stepwise~function~#1. } \msg_kernel_new:nnn { prg } { replicate-neg } { Negative~argument~for~\prg_replicate:nn. } +\msg_kernel_new:nnn { kernel } { unknown-comparison } + { Relation~symbol~'#1'~unknown:~use~=,~<,~>,~==,~!=,~<=,~>=. } \msg_kernel_new:nnn { seq } { show } { The~sequence~\token_to_str:N #1~ diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3names.sty b/Master/texmf-dist/tex/latex/l3kernel/l3names.sty index 6532d0d0c7d..fee26c9e876 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3names.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3names.sty @@ -46,7 +46,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3bootstrap}[2011-12-29] -\GetIdInfo$Id: l3names.dtx 3113 2011-12-30 09:05:11Z joseph $ +\GetIdInfo$Id: l3names.dtx 3494 2012-03-04 09:58:29Z joseph $ {L3 Experimental namespace for primitives} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} @@ -440,7 +440,7 @@ \name_primitive:NN \savingvdiscards \etex_savingvdiscards:D \name_primitive:NN \pagediscards \etex_pagediscards:D \name_primitive:NN \splitdiscards \etex_splitdiscards:D - \name_primitive:NN \TeXXETstate \etex_TeXXETstate:D + \name_primitive:NN \TeXXeTstate \etex_TeXXeTstate:D \name_primitive:NN \beginL \etex_beginL:D \name_primitive:NN \endL \etex_endL:D \name_primitive:NN \beginR \etex_beginR:D diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3prg.sty b/Master/texmf-dist/tex/latex/l3kernel/l3prg.sty index 4fc7acdcdbb..51b98fabb03 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 3464 2012-02-26 15:30:29Z bruno $ +\GetIdInfo$Id: l3prg.dtx 3490 2012-03-04 01:00:53Z bruno $ {L3 Experimental control structures} %% \ProvidesExplPackage @@ -96,7 +96,7 @@ \cs_generate_variant:Nn \bool_if:NTF { c } \cs_new_protected:Npn \bool_show:N #1 { - \cs_if_exist:NTF #1 + \bool_if_exist:NTF #1 { \bool_show:n {#1} } { \msg_kernel_error:nnx { kernel } { variable-not-defined } @@ -112,6 +112,14 @@ \cs_generate_variant:Nn \bool_show:N { c } \bool_new:N \l_tmpa_bool \bool_new:N \g_tmpa_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_conditional:Npnn \bool_if:n #1 { T , F , TF } { \if_predicate:w \bool_if_p:n {#1} diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3prop.sty b/Master/texmf-dist/tex/latex/l3kernel/l3prop.sty index 169d5ffe5d6..539f1539352 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 3460 2012-02-26 12:16:41Z will $ +\GetIdInfo$Id: l3prop.dtx 3490 2012-03-04 01:00:53Z bruno $ {L3 Experimental property lists} %% \ProvidesExplPackage @@ -61,10 +61,10 @@ \cs_new_protected:Npn \prop_gclear:N #1 { \cs_gset_eq:NN #1 \c_empty_prop } \cs_new_protected:Npn \prop_gclear:c #1 { \cs_gset_eq:cN {#1} \c_empty_prop } \cs_new_protected:Npn \prop_clear_new:N #1 - { \cs_if_exist:NTF #1 { \prop_clear:N #1 } { \prop_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 - { \cs_if_exist:NTF #1 { \prop_gclear:N #1 } { \prop_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 } \cs_new_eq:NN \prop_set_eq:NN \tl_set_eq:NN \cs_new_eq:NN \prop_set_eq:Nc \tl_set_eq:Nc @@ -170,6 +170,14 @@ } \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 diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3seq.sty b/Master/texmf-dist/tex/latex/l3kernel/l3seq.sty index 2b47a5c01d8..6de7e2ea1ed 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/l3seq.sty +++ b/Master/texmf-dist/tex/latex/l3kernel/l3seq.sty @@ -46,7 +46,7 @@ %% %% ----------------------------------------------------------------------- \RequirePackage{l3names} -\GetIdInfo$Id: l3seq.dtx 3158 2012-01-09 00:47:42Z bruno $ +\GetIdInfo$Id: l3seq.dtx 3490 2012-03-04 01:00:53Z bruno $ {L3 Experimental sequences and stacks} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} @@ -114,6 +114,14 @@ { \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_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 diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3skip.sty b/Master/texmf-dist/tex/latex/l3kernel/l3skip.sty index 5ba6dec68d7..671ce242540 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 3460 2012-02-26 12:16:41Z will $ +\GetIdInfo$Id: l3skip.dtx 3499 2012-03-05 16:08:55Z bruno $ {L3 Experimental dimensions and skips} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} @@ -61,16 +61,30 @@ \newdimen #1 } \cs_generate_variant:Nn \dim_new:N { c } +\cs_new_protected:Npn \dim_const:Nn #1 + { + \dim_new:N #1 + \dim_gset:Nn #1 + } +\cs_generate_variant:Nn \dim_const:Nn { c } \cs_new_protected:Npn \dim_zero:N #1 { #1 \c_zero_dim } \cs_new_protected:Npn \dim_gzero:N { \tex_global:D \dim_zero:N } \cs_generate_variant:Nn \dim_zero:N { c } \cs_generate_variant:Nn \dim_gzero:N { c } \cs_new_protected:Npn \dim_zero_new:N #1 - { \cs_if_exist:NTF #1 { \dim_zero:N #1 } { \dim_new:N #1 } } + { \dim_if_exist:NTF #1 { \dim_zero:N #1 } { \dim_new:N #1 } } \cs_new_protected:Npn \dim_gzero_new:N #1 - { \cs_if_exist:NTF #1 { \dim_gzero:N #1 } { \dim_new:N #1 } } + { \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 \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 } @@ -127,33 +141,40 @@ } \prg_new_conditional:Npnn \dim_compare:n #1 { p , T , F , TF } { - \exp_after:wN \dim_compare_aux:wNN \dim_use:N \dim_eval:w #1 - \dim_eval_end: + \exp_after:wN \dim_compare_aux:w \dim_use:N \dim_eval:w #1 + \kernel_compare_error: \dim_eval_end: \prg_return_true: \else: \prg_return_false: \fi: } \exp_args:Nno \use:nn - { \cs_new:Npn \dim_compare_aux:wNN #1 } + { \cs_new:Npn \dim_compare_aux:w #1 } { \tl_to_str:n { pt } } - #2 #3 - { - \use:c - { - dim_compare_ #2 - \if_meaning:w = #3 = \fi: - :nw - } - { #1 pt } #3 - } -\cs_new:cpn { dim_compare_<:nw } #1 { \if_dim:w #1 < \dim_eval:w } -\cs_new:cpn { dim_compare_=:nw } #1 { \if_dim:w #1 = \dim_eval:w } -\cs_new:cpn { dim_compare_>:nw } #1 { \if_dim:w #1 > \dim_eval:w } -\cs_new:cpn {dim_compare_==:nw} #1#2 { \if_dim:w #1 = \dim_eval:w } -\cs_new:cpn {dim_compare_<=:nw} #1#2 {\reverse_if:N \if_dim:w #1 > \dim_eval:w} -\cs_new:cpn {dim_compare_!=:nw} #1#2 {\reverse_if:N \if_dim:w #1 = \dim_eval:w} -\cs_new:cpn {dim_compare_>=:nw} #1#2 {\reverse_if:N \if_dim:w #1 < \dim_eval:w} + #2 \kernel_compare_error: + { + \exp_after:wN \dim_compare_aux:NNw #2 ?? \q_mark + #1 pt #2 + } +\cs_new:Npn \dim_compare_aux:NNw #1#2#3 \q_mark + { + \use:c { dim_compare_ #1 \if_meaning:w = #2 = \fi: :NNw } + \kernel_compare_error:Nw #1 + } +\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_set:Npn \dim_while_do:nn #1#2 { \dim_compare:nT {#1} @@ -248,16 +269,30 @@ \newskip #1 } \cs_generate_variant:Nn \skip_new:N { c } +\cs_new_protected:Npn \skip_const:Nn #1 + { + \skip_new:N #1 + \skip_gset:Nn #1 + } +\cs_generate_variant:Nn \skip_const:Nn { c } \cs_new_protected:Npn \skip_zero:N #1 { #1 \c_zero_skip } \cs_new_protected:Npn \skip_gzero:N { \tex_global:D \skip_zero:N } \cs_generate_variant:Nn \skip_zero:N { c } \cs_generate_variant:Nn \skip_gzero:N { c } \cs_new_protected:Npn \skip_zero_new:N #1 - { \cs_if_exist:NTF #1 { \skip_zero:N #1 } { \skip_new:N #1 } } + { \skip_if_exist:NTF #1 { \skip_zero:N #1 } { \skip_new:N #1 } } \cs_new_protected:Npn \skip_gzero_new:N #1 - { \cs_if_exist:NTF #1 { \skip_gzero:N #1 } { \skip_new:N #1 } } + { \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 \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 } @@ -289,16 +324,19 @@ \prg_return_false: \fi: } -\prg_new_conditional:Npnn \skip_if_infinite_glue:n #1 { p , T , F , TF } +\cs_set_protected:Npn \cs_tmp:w #1 { - \bool_if:nTF + \prg_new_conditional:Npnn \skip_if_finite:n ##1 { p , T , F , TF } { - \int_compare_p:nNn { \etex_gluestretchorder:D #1 } > \c_zero || - \int_compare_p:nNn { \etex_glueshrinkorder:D #1 } > \c_zero + \exp_after:wN \skip_if_finite_aux:wwNw + \skip_use:N \etex_glueexpr:D ##1 ; \prg_return_false: + #1 ; \prg_return_true: \q_stop } - { \prg_return_true: } - { \prg_return_false: } - } + \cs_new:Npn \skip_if_finite_aux:wwNw ##1 #1 ##2 ; ##3 ##4 \q_stop {##3} + } +\exp_args:No \cs_tmp:w { \tl_to_str:n { fil } } +\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:Npn \skip_eval:n #1 { \skip_use:N \etex_glueexpr:D #1 \scan_stop: } \cs_new_eq:NN \skip_use:N \tex_the:D @@ -328,17 +366,31 @@ \newmuskip #1 } \cs_generate_variant:Nn \muskip_new:N { c } +\cs_new_protected:Npn \muskip_const:Nn #1 + { + \muskip_new:N #1 + \muskip_gset:Nn #1 + } +\cs_generate_variant:Nn \muskip_const:Nn { c } \cs_new_protected:Npn \muskip_zero:N #1 { #1 \c_zero_muskip } \cs_new_protected:Npn \muskip_gzero:N { \tex_global:D \muskip_zero:N } \cs_generate_variant:Nn \muskip_zero:N { c } \cs_generate_variant:Nn \muskip_gzero:N { c } \cs_new_protected:Npn \muskip_zero_new:N #1 - { \cs_if_exist:NTF #1 { \muskip_zero:N #1 } { \muskip_new:N #1 } } + { \muskip_if_exist:NTF #1 { \muskip_zero:N #1 } { \muskip_new:N #1 } } \cs_new_protected:Npn \muskip_gzero_new:N #1 - { \cs_if_exist:NTF #1 { \muskip_gzero:N #1 } { \muskip_new:N #1 } } + { \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 \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 } @@ -370,16 +422,16 @@ { \tex_showthe:D \etex_muexpr:D #1 \scan_stop: } \cs_new:Npn \skip_split_finite_else_action:nnNN #1#2#3#4 { - \skip_if_infinite_glue:nTF {#1} - { - #3 = \c_zero_skip - #4 = \c_zero_skip - #2 - } - { - #3 = \etex_gluestretch:D #1 \scan_stop: - #4 = \etex_glueshrink:D #1 \scan_stop: - } + \skip_if_finite:nTF {#1} + { + #3 = \etex_gluestretch:D #1 \scan_stop: + #4 = \etex_glueshrink:D #1 \scan_stop: + } + { + #3 = \c_zero_skip + #4 = \c_zero_skip + #2 + } } %% %% diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3tl.sty b/Master/texmf-dist/tex/latex/l3kernel/l3tl.sty index 59e810e8aa5..763eba4d8a7 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 3460 2012-02-26 12:16:41Z will $ +\GetIdInfo$Id: l3tl.dtx 3490 2012-03-04 01:00:53Z bruno $ {L3 Experimental token lists} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} @@ -77,9 +77,9 @@ \cs_generate_variant:Nn \tl_clear:N { c } \cs_generate_variant:Nn \tl_gclear:N { c } \cs_new_protected:Npn \tl_clear_new:N #1 - { \cs_if_exist:NTF #1 { \tl_clear:N #1 } { \tl_new:N #1 } } + { \tl_if_exist:NTF #1 { \tl_clear:N #1 } { \tl_new:N #1 } } \cs_new_protected:Npn \tl_gclear_new:N #1 - { \cs_if_exist:NTF #1 { \tl_gclear:N #1 } { \tl_new:N #1 } } + { \tl_if_exist:NTF #1 { \tl_gclear:N #1 } { \tl_new:N #1 } } \cs_generate_variant:Nn \tl_clear_new:N { c } \cs_generate_variant:Nn \tl_gclear_new:N { c } \cs_new_eq:NN \tl_set_eq:NN \cs_set_eq:NN @@ -90,6 +90,14 @@ \cs_new_eq:NN \tl_gset_eq:cN \cs_gset_eq:cN \cs_new_eq:NN \tl_gset_eq:Nc \cs_gset_eq:Nc \cs_new_eq:NN \tl_gset_eq:cc \cs_gset_eq:cc +\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 \cs_new_protected:Npn \tl_set:Nn #1#2 { \cs_set_nopar:Npx #1 { \exp_not:n {#2} } } \cs_new_protected:Npn \tl_set:No #1#2 @@ -401,7 +409,7 @@ \cs_generate_variant:Nn \tl_to_str:N { c } \cs_new:Npn \tl_use:N #1 { - \cs_if_exist:NTF #1 {#1} + \tl_if_exist:NTF #1 {#1} { \msg_expandable_kernel_error:nnn { kernel } { bad-var } {#1} } } \cs_generate_variant:Nn \tl_use:N { c } diff --git a/Master/texmf-dist/tex/latex/l3kernel/l3token.sty b/Master/texmf-dist/tex/latex/l3kernel/l3token.sty index 04531db0274..cd05ac7b262 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 3460 2012-02-26 12:16:41Z will $ +\GetIdInfo$Id: l3token.dtx 3491 2012-03-04 06:13:18Z bruno $ {L3 Experimental token manipulation} \ProvidesExplPackage {\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} @@ -630,7 +630,7 @@ } \cs_set:Npn \peek_def_aux:nnnnn #1#2#3#4#5 { - \cs_gset_nopar:cpx { #1 #5 } + \cs_new_nopar:cpx { #1 #5 } { \tl_if_empty:nF {#2} { \exp_not:n { \cs_set_eq:NN \peek_execute_branches: #2 } } -- cgit v1.2.3