diff options
author | Karl Berry <karl@freefriends.org> | 2018-02-23 21:54:14 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-02-23 21:54:14 +0000 |
commit | 87d871a3d83784d48b71fa3712b9f525bfc710d2 (patch) | |
tree | f12f9ffdc697b5af9ee14c06874ec0e2f72c9f94 /Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex | |
parent | ccc63194ce7813106830c8a8755c54d89de831b4 (diff) |
l3 (22feb18)
git-svn-id: svn://tug.org/texlive/trunk@46720 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex')
-rw-r--r-- | Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex | 2287 |
1 files changed, 1355 insertions, 932 deletions
diff --git a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex index 7a09140568e..9aa19a4ba78 100644 --- a/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex +++ b/Master/texmf-dist/tex/latex/l3kernel/expl3-code.tex @@ -29,6 +29,7 @@ %% l3fp-traps.dtx (with options: `package') %% l3fp-round.dtx (with options: `package') %% l3fp-parse.dtx (with options: `package') +%% l3fp-assign.dtx (with options: `package') %% l3fp-logic.dtx (with options: `package') %% l3fp-basics.dtx (with options: `package') %% l3fp-extended.dtx (with options: `package') @@ -36,20 +37,19 @@ %% l3fp-trig.dtx (with options: `package') %% l3fp-convert.dtx (with options: `package') %% l3fp-random.dtx (with options: `package') -%% l3fp-assign.dtx (with options: `package') %% l3sort.dtx (with options: `package') %% l3tl-build.dtx (with options: `package') %% l3tl-analysis.dtx (with options: `package') %% l3regex.dtx (with options: `package') %% l3box.dtx (with options: `package') %% l3coffins.dtx (with options: `package') -%% l3color.dtx (with options: `package') +%% l3color-base.dtx (with options: `package') %% l3sys.dtx (with options: `package') %% l3deprecation.dtx (with options: `package') %% l3candidates.dtx (with options: `package') %% l3luatex.dtx (with options: `package,tex') %% -%% Copyright (C) 1990-2017 The LaTeX3 Project +%% Copyright (C) 1990-2018 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 @@ -62,7 +62,7 @@ %% and all files in that bundle must be distributed together. %% %% File: expl3.dtx Copyright (C) 1990-2017 The LaTeX3 Project -\def\ExplFileDate{2017/12/16}% +\def\ExplFileDate{2018/02/21}% \begingroup \def\next{\endgroup}% \expandafter\ifx\csname PackageError\endcsname\relax @@ -352,7 +352,7 @@ \tex_endlinechar:D = 32 \scan_stop: \bool_set_true:N \l__kernel_expl_bool } -%% File: l3names.dtx Copyright (C) 1990-2017 The LaTeX3 project +%% File: l3names.dtx Copyright (C) 1990-2018 The LaTeX3 project \let \tex_global:D \global \let \tex_let:D \let \begingroup @@ -936,8 +936,11 @@ \__kernel_primitive:NN \aligntab \luatex_aligntab:D \__kernel_primitive:NN \attribute \luatex_attribute:D \__kernel_primitive:NN \attributedef \luatex_attributedef:D + \__kernel_primitive:NN \automaticdiscretionary \luatex_automaticdiscretionary:D + \__kernel_primitive:NN \automatichyphenmode \luatex_automatichyphenmode:D \__kernel_primitive:NN \automatichyphenpenalty \luatex_automatichyphenpenalty:D \__kernel_primitive:NN \begincsname \luatex_begincsname:D + \__kernel_primitive:NN \breakafterdirmode \luatex_breakafterdirmode:D \__kernel_primitive:NN \catcodetable \luatex_catcodetable:D \__kernel_primitive:NN \clearmarks \luatex_clearmarks:D \__kernel_primitive:NN \crampeddisplaystyle \luatex_crampeddisplaystyle:D @@ -952,6 +955,7 @@ \__kernel_primitive:NN \etokspre \luatex_etokspre:D \__kernel_primitive:NN \explicithyphenpenalty \luatex_explicithyphenpenalty:D \__kernel_primitive:NN \expanded \luatex_expanded:D + \__kernel_primitive:NN \explicitdiscretionary \luatex_explicitdiscretionary:D \__kernel_primitive:NN \firstvalidlanguage \luatex_firstvalidlanguage:D \__kernel_primitive:NN \fontid \luatex_fontid:D \__kernel_primitive:NN \formatname \luatex_formatname:D @@ -968,15 +972,17 @@ \__kernel_primitive:NN \luaescapestring \luatex_luaescapestring:D \__kernel_primitive:NN \luafunction \luatex_luafunction:D \__kernel_primitive:NN \luatexbanner \luatex_luatexbanner:D - \__kernel_primitive:NN \luatexdatestamp \luatex_luatexdatestamp:D \__kernel_primitive:NN \luatexrevision \luatex_luatexrevision:D \__kernel_primitive:NN \luatexversion \luatex_luatexversion:D + \__kernel_primitive:NN \mathdelimitersmode \luatex_mathdelimitersmode:D \__kernel_primitive:NN \mathdisplayskipmode \luatex_mathdisplayskipmode:D \__kernel_primitive:NN \matheqnogapstep \luatex_matheqnogapstep:D \__kernel_primitive:NN \mathnolimitsmode \luatex_mathnolimitsmode:D \__kernel_primitive:NN \mathoption \luatex_mathoption:D + \__kernel_primitive:NN \mathpenaltiesmode \luatex_mathpenaltiesmode:D \__kernel_primitive:NN \mathrulesfam \luatex_mathrulesfam:D \__kernel_primitive:NN \mathscriptsmode \luatex_mathscriptsmode:D + \__kernel_primitive:NN \mathscriptboxmode \luatex_mathscriptboxmode:D \__kernel_primitive:NN \mathstyle \luatex_mathstyle:D \__kernel_primitive:NN \mathsurroundmode \luatex_mathsurroundmode:D \__kernel_primitive:NN \mathsurroundskip \luatex_mathsurroundskip:D @@ -995,9 +1001,11 @@ \__kernel_primitive:NN \pdfvariable \luatex_pdfvariable:D \__kernel_primitive:NN \postexhyphenchar \luatex_postexhyphenchar:D \__kernel_primitive:NN \posthyphenchar \luatex_posthyphenchar:D + \__kernel_primitive:NN \prebinoppenalty \luatex_prebinoppenalty:D \__kernel_primitive:NN \predisplaygapfactor \luatex_predisplaygapfactor:D \__kernel_primitive:NN \preexhyphenchar \luatex_preexhyphenchar:D \__kernel_primitive:NN \prehyphenchar \luatex_prehyphenchar:D + \__kernel_primitive:NN \prerelpenalty \luatex_prerelpenalty:D \__kernel_primitive:NN \savecatcodetable \luatex_savecatcodetable:D \__kernel_primitive:NN \scantextokens \luatex_scantextokens:D \__kernel_primitive:NN \setfontid \luatex_setfontid:D @@ -1006,6 +1014,7 @@ \__kernel_primitive:NN \suppresslongerror \luatex_suppresslongerror:D \__kernel_primitive:NN \suppressmathparerror \luatex_suppressmathparerror:D \__kernel_primitive:NN \suppressoutererror \luatex_suppressoutererror:D + \__kernel_primitive:NN \suppressprimitiveerror \luatex_suppressprimitiveerror:D \__kernel_primitive:NN \toksapp \luatex_toksapp:D \__kernel_primitive:NN \tokspre \luatex_tokspre:D \__kernel_primitive:NN \tpack \luatex_tpack:D @@ -1182,6 +1191,8 @@ \__kernel_primitive:NN \Umathunderbarvgap \utex_underbarvgap:D \__kernel_primitive:NN \Umathunderdelimiterbgap \utex_underdelimiterbgap:D \__kernel_primitive:NN \Umathunderdelimitervgap \utex_underdelimitervgap:D + \__kernel_primitive:NN \Unosubscript \utex_Unosubscript:D + \__kernel_primitive:NN \Unosuperscript \utex_Unosuperscript:D \__kernel_primitive:NN \Uoverdelimiter \utex_overdelimiter:D \__kernel_primitive:NN \Uradical \utex_radical:D \__kernel_primitive:NN \Uroot \utex_root:D @@ -1390,7 +1401,7 @@ \tex_let:D \tex_middle:D \normalmiddle \tex_let:D \tex_right:D \normalright \tex_fi:D -%% File: l3basics.dtx Copyright (C) 1990-2017 The LaTeX3 project +%% File: l3basics.dtx Copyright (C) 1990-2018 The LaTeX3 project \tex_let:D \if_true: \tex_iftrue:D \tex_let:D \if_false: \tex_iffalse:D \tex_let:D \or: \tex_or:D @@ -1510,18 +1521,18 @@ \cs_set:Npn \use_none:nnnnnnn #1#2#3#4#5#6#7 { } \cs_set:Npn \use_none:nnnnnnnn #1#2#3#4#5#6#7#8 { } \cs_set:Npn \use_none:nnnnnnnnn #1#2#3#4#5#6#7#8#9 { } -\cs_set_protected:Npn \__debug:TF #1#2 {#2} +\cs_set_protected:Npn \__kernel_debug:TF #1#2 {#2} \tex_ifodd:D \l@expl@enable@debug@bool - \cs_set_protected:Npn \__debug:TF #1#2 {#1} + \cs_set_protected:Npn \__kernel_debug:TF #1#2 {#1} \fi: -\__debug:TF +\__kernel_debug:TF { \cs_set_protected:Npn \debug_on:n #1 { \exp_args:No \clist_map_inline:nn { \tl_to_str:n {#1} } { \cs_if_exist_use:cF { __debug_##1_on: } - { \__msg_kernel_error:nnn { kernel } { debug } {##1} } + { \__kernel_msg_error:nnn { kernel } { debug } {##1} } } } \cs_set_protected:Npn \debug_off:n #1 @@ -1529,23 +1540,23 @@ \exp_args:No \clist_map_inline:nn { \tl_to_str:n {#1} } { \cs_if_exist_use:cF { __debug_##1_off: } - { \__msg_kernel_error:nnn { kernel } { debug } {##1} } + { \__kernel_msg_error:nnn { kernel } { debug } {##1} } } } } { \cs_set_protected:Npn \debug_on:n #1 { - \__msg_kernel_error:nnx { kernel } { enable-debug } + \__kernel_msg_error:nnx { kernel } { enable-debug } { \tl_to_str:n { \debug_on:n {#1} } } } \cs_set_protected:Npn \debug_off:n #1 { - \__msg_kernel_error:nnx { kernel } { enable-debug } + \__kernel_msg_error:nnx { kernel } { enable-debug } { \tl_to_str:n { \debug_off:n {#1} } } } } -\__debug:TF +\__kernel_debug:TF { \cs_set_nopar:Npn \l__debug_suspended_tl { } \cs_set_protected:Npn \debug_suspend: @@ -1568,56 +1579,56 @@ \cs_set_protected:Npn \debug_suspend: { } \cs_set_protected:Npn \debug_resume: { } } -\__debug:TF +\__kernel_debug:TF { \exp_args:Nc \cs_set_protected:Npn { __debug_check-declarations_on: } { - \cs_set_protected:Npn \__debug_chk_var_exist:N ##1 + \cs_set_protected:Npn \__kernel_chk_var_exist:N ##1 { \__debug_suspended:T \use_none:nnn \cs_if_exist:NF ##1 { - \__msg_kernel_error:nnx { kernel } { non-declared-variable } + \__kernel_msg_error:nnx { kernel } { non-declared-variable } { \token_to_str:N ##1 } } } - \cs_set_protected:Npn \__debug_chk_cs_exist:N ##1 + \cs_set_protected:Npn \__kernel_chk_cs_exist:N ##1 { \__debug_suspended:T \use_none:nnn \cs_if_exist:NF ##1 { - \__msg_kernel_error:nnx { kernel } { command-not-defined } + \__kernel_msg_error:nnx { kernel } { command-not-defined } { \token_to_str:N ##1 } } } - \cs_set_protected:Npn \__debug_chk_var_scope:NN + \cs_set_protected:Npn \__kernel_chk_var_scope:NN { \__debug_suspended:T \use_none:nnn \__debug_chk_var_scope_aux:NN } - \cs_set_protected:Npn \__debug_chk_var_local:N ##1 + \cs_set_protected:Npn \__kernel_chk_var_local:N ##1 { \__debug_suspended:T \use_none:nnnnn - \__debug_chk_var_exist:N ##1 + \__kernel_chk_var_exist:N ##1 \__debug_chk_var_scope_aux:NN l ##1 } - \cs_set_protected:Npn \__debug_chk_var_global:N ##1 + \cs_set_protected:Npn \__kernel_chk_var_global:N ##1 { \__debug_suspended:T \use_none:nnnnn - \__debug_chk_var_exist:N ##1 + \__kernel_chk_var_exist:N ##1 \__debug_chk_var_scope_aux:NN g ##1 } } \exp_args:Nc \cs_set_protected:Npn { __debug_check-declarations_off: } { - \cs_set_protected:Npn \__debug_chk_var_exist:N ##1 { } - \cs_set_protected:Npn \__debug_chk_cs_exist:N ##1 { } - \cs_set_protected:Npn \__debug_chk_var_local:N ##1 { } - \cs_set_protected:Npn \__debug_chk_var_global:N ##1 { } - \cs_set_protected:Npn \__debug_chk_var_scope:NN ##1##2 { } + \cs_set_protected:Npn \__kernel_chk_var_exist:N ##1 { } + \cs_set_protected:Npn \__kernel_chk_cs_exist:N ##1 { } + \cs_set_protected:Npn \__kernel_chk_var_local:N ##1 { } + \cs_set_protected:Npn \__kernel_chk_var_global:N ##1 { } + \cs_set_protected:Npn \__kernel_chk_var_scope:NN ##1##2 { } } - \cs_set_protected:Npn \__debug_chk_cs_exist:c - { \exp_args:Nc \__debug_chk_cs_exist:N } + \cs_set_protected:Npn \__kernel_chk_cs_exist:c + { \exp_args:Nc \__kernel_chk_cs_exist:N } \tex_ifodd:D \l@expl@check@declarations@bool \use:c { __debug_check-declarations_on: } \else: @@ -1625,7 +1636,7 @@ \fi: } { } -\__debug:TF +\__kernel_debug:TF { \cs_set_protected:Npn \__debug_chk_var_scope_aux:NN #1#2 { \exp_args:NNf \__debug_chk_var_scope_aux:Nn #1 { \cs_to_str:N #2 } } @@ -1648,18 +1659,18 @@ \if:w #1 \scan_stop: \cs_gset_nopar:Npn #1 {#2} \else: - \__msg_kernel_error:nnxxx { kernel } { local-global } + \__kernel_msg_error:nnxxx { kernel } { local-global } {#1} {#2} { \iow_char:N \\ #3 } \fi: \fi: } } { } -\__debug:TF +\__kernel_debug:TF { \exp_args:Nc \cs_set_protected:Npn { __debug_check-expressions_on: } { - \cs_set:Npn \__debug_chk_expr:nNnN ##1##2 + \cs_set:Npn \__kernel_chk_expr:nNnN ##1##2 { \__debug_suspended:T { ##1 \use_none:nnnnnnn } \exp_after:wN \__debug_chk_expr_aux:nNnN @@ -1668,7 +1679,7 @@ } } \exp_args:Nc \cs_set_protected:Npn { __debug_check-expressions_off: } - { \cs_set:Npn \__debug_chk_expr:nNnN ##1##2##3##4 {##1} } + { \cs_set:Npn \__kernel_chk_expr:nNnN ##1##2##3##4 {##1} } \use:c { __debug_check-expressions_off: } \cs_set:Npn \__debug_chk_expr_aux:nNnN #1#2#3#4 { @@ -1679,22 +1690,22 @@ \__int_value:w #3 #2 #1 \tex_relax:D } { - \__msg_kernel_expandable_error:nnnn + \__kernel_msg_expandable_error:nnnn { kernel } { expr } {#4} {#1} } #1 } } { } -\__debug:TF +\__kernel_debug:TF { \exp_args:Nc \cs_set_protected:Npn { __debug_log-functions_on: } { - \cs_set_protected:Npn \__debug_log:x + \cs_set_protected:Npn \__kernel_debug_log:x { \__debug_suspended:T \use_none:nn \iow_log:x } } \exp_args:Nc \cs_set_protected:Npn { __debug_log-functions_off: } - { \cs_set_protected:Npn \__debug_log:x { \use_none:n } } + { \cs_set_protected:Npn \__kernel_debug_log:x { \use_none:n } } \tex_ifodd:D \l@expl@log@functions@bool \use:c { __debug_log-functions_on: } \else: @@ -1702,7 +1713,7 @@ \fi: } { } -\__debug:TF +\__kernel_debug:TF { \cs_set_protected:Npn \__debug_deprecation_on: { \g__debug_deprecation_on_tl } @@ -1710,15 +1721,22 @@ { \g__debug_deprecation_off_tl } \cs_set_nopar:Npn \g__debug_deprecation_on_tl { } \cs_set_nopar:Npn \g__debug_deprecation_off_tl { } + \cs_set_protected:Npn \__kernel_deprecation_code:nn #1#2 + { + \tl_gput_right:Nn \g__debug_deprecation_on_tl {#1} + \tl_gput_right:Nn \g__debug_deprecation_off_tl {#2} + } } - { } -\__debug:TF { - \cs_set_protected:Npn \__debug_deprecation:nnNNpn #1#2#3#4#5# + \cs_set_protected:Npn \__kernel_deprecation_code:nn #1#2 { } + } +\__kernel_debug:TF + { + \cs_set_protected:Npn \__kernel_patch_deprecation:nnNNpn #1#2#3#4#5# { \if_meaning:w \cs_new_protected:Npn #3 \else: - \__msg_kernel_error:nnx { kernel } { debug-unpatchable } + \__kernel_msg_error:nnx { kernel } { debug-unpatchable } { \token_to_str:N #3 ~(for~deprecation) } \fi: \__debug_deprecation_aux:nnNnn {#1} {#2} #4 {#5} @@ -1737,7 +1755,7 @@ } \cs_new_protected:Npx #3 { - \exp_not:N \__msg_kernel_warning:nnxxx + \exp_not:N \__kernel_msg_warning:nnxxx { kernel } { deprecated-command } {#1} { \token_to_str:N #3 } { \tl_to_str:n {#2} } \exp_not:n { \cs_gset_protected:Npn #3 #4 {#5} } @@ -1745,12 +1763,12 @@ } } } - { \cs_set_protected:Npn \__debug_deprecation:nnNNpn #1#2 { } } -\__debug:TF + { \cs_set_protected:Npn \__kernel_patch_deprecation:nnNNpn #1#2 { } } +\__kernel_debug:TF { - \cs_set_protected:Npn \__debug_patch:nnNNpn #1#2#3#4#5# + \cs_set_protected:Npn \__kernel_patch:nnNNpn #1#2#3#4#5# { \__debug_patch_aux:nnnn {#1} {#2} { #3 #4 #5 } } - \cs_set_protected:Npn \__debug_patch_conditional:nNNpnn #1#2#3#4# + \cs_set_protected:Npn \__kernel_patch_conditional:nNNpnn #1#2#3#4# { \__debug_patch_auxii:nnnn {#1} { #2 #3 #4 } } \cs_set_protected:Npn \__debug_patch_aux:nnnn #1#2#3#4 { #3 { #1 #4 #2 } } @@ -1758,18 +1776,18 @@ { #2 {#3} { #1 #4 } } } { - \cs_set_protected:Npn \__debug_patch:nnNNpn #1#2 { } - \cs_set_protected:Npn \__debug_patch_conditional:nNNpnn #1 { } + \cs_set_protected:Npn \__kernel_patch:nnNNpn #1#2 { } + \cs_set_protected:Npn \__kernel_patch_conditional:nNNpnn #1 { } } -\cs_set_protected:Npn \__debug_patch_args:nNNpn - { \__debug_patch_args:nnnNNpn { } { } } -\cs_set_protected:Npn \__debug_patch_conditional_args:nNNpnn - { \__debug_patch_conditional_args:nnnNNpnn { } { } } -\__debug:TF +\cs_set_protected:Npn \__kernel_patch_args:nNNpn + { \__kernel_patch_args:nnnNNpn { } { } } +\cs_set_protected:Npn \__kernel_patch_conditional_args:nNNpnn + { \__kernel_patch_conditional_args:nnnNNpnn { } { } } +\__kernel_debug:TF { - \cs_set_protected:Npn \__debug_patch_args:nnnNNpn #1#2#3#4#5#6# + \cs_set_protected:Npn \__kernel_patch_args:nnnNNpn #1#2#3#4#5#6# { \__debug_patch_args_aux:nnnNNnn {#1} {#2} {#3} #4 #5 {#6} } - \cs_set_protected:Npn \__debug_patch_conditional_args:nnnNNpnn #1#2#3#4#5#6# + \cs_set_protected:Npn \__kernel_patch_conditional_args:nnnNNpnn #1#2#3#4#5#6# { \__debug_patch_args_aux:nnnNNnnn {#1} {#2} {#3} #4 #5 {#6} } \cs_set_protected:Npn \__debug_patch_args_aux:nnnNNnn #1#2#3#4#5#6#7 { @@ -1787,8 +1805,8 @@ { #2 { #3 #1 #4 } } } { - \cs_set_protected:Npn \__debug_patch_args:nnnNNpn #1#2#3 { } - \cs_set_protected:Npn \__debug_patch_conditional_args:nnnNNpnn #1#2#3 { } + \cs_set_protected:Npn \__kernel_patch_args:nnnNNpn #1#2#3 { } + \cs_set_protected:Npn \__kernel_patch_conditional_args:nnnNNpnn #1#2#3 { } } \cs_set:Npn \prg_return_true: { \exp_after:wN \use_i:nn \exp:w } @@ -1826,7 +1844,7 @@ { \__prg_generate_conditional:nnNnnnnn {#1} {#2} #3 {#4} {#5} } { \tl_count:n {#2} } { - \__msg_kernel_error:nnxx { kernel } { bad-number-of-arguments } + \__kernel_msg_error:nnxx { kernel } { bad-number-of-arguments } { \token_to_str:c { #1 : #2 } } { \tl_count:n {#2} } \use_none:nn @@ -1835,7 +1853,7 @@ \cs_set_protected:Npn \__prg_generate_conditional:nnNnnnnn #1#2#3#4#5#6#7#8 { \if_meaning:w \c_false_bool #3 - \__msg_kernel_error:nnx { kernel } { missing-colon } + \__kernel_msg_error:nnx { kernel } { missing-colon } { \token_to_str:c {#1} } \exp_after:wN \use_none:nn \fi: @@ -1855,7 +1873,7 @@ \use:c { __prg_generate_ #7 _form:wnnnnnn } \tl_if_empty:nF {#7} { - \__msg_kernel_error:nnxx + \__kernel_msg_error:nnxx { kernel } { conditional-form-unknown } {#7} { \token_to_str:c { #3 : #4 } } } @@ -1877,7 +1895,7 @@ { #7 \exp_end: \c_true_bool \c_false_bool } } { - \__msg_kernel_error:nnx { kernel } { protected-predicate } + \__kernel_msg_error:nnx { kernel } { protected-predicate } { \token_to_str:c { #4 _p: #5 } } } } @@ -1918,12 +1936,12 @@ \cs_set_protected:Npn \__prg_set_eq_conditional:nnNnnNNw #1#2#3#4#5#6 { \if_meaning:w \c_false_bool #3 - \__msg_kernel_error:nnx { kernel } { missing-colon } + \__kernel_msg_error:nnx { kernel } { missing-colon } { \token_to_str:c {#1} } \exp_after:wN \use_none_delimit_by_q_recursion_stop:w \fi: \if_meaning:w \c_false_bool #6 - \__msg_kernel_error:nnx { kernel } { missing-colon } + \__kernel_msg_error:nnx { kernel } { missing-colon } { \token_to_str:c {#4} } \exp_after:wN \use_none_delimit_by_q_recursion_stop:w \fi: @@ -1937,7 +1955,7 @@ \use:c { __prg_set_eq_conditional_ #6 _form:wNnnnn } \tl_if_empty:nF {#6} { - \__msg_kernel_error:nnxx + \__kernel_msg_error:nnxx { kernel } { conditional-form-unknown } {#6} { \token_to_str:c { #1 : #2 } } } @@ -1946,20 +1964,20 @@ #5 {#1} {#2} {#3} {#4} \__prg_set_eq_conditional_loop:nnnnNw {#1} {#2} {#3} {#4} #5 } -\__debug_patch:nnNNpn - { \__debug_chk_cs_exist:c { #5 _p : #6 } } { } +\__kernel_patch:nnNNpn + { \__kernel_chk_cs_exist:c { #5 _p : #6 } } { } \cs_set:Npn \__prg_set_eq_conditional_p_form:wNnnnn #1 \q_stop #2#3#4#5#6 { #2 { #3 _p : #4 } { #5 _p : #6 } } -\__debug_patch:nnNNpn - { \__debug_chk_cs_exist:c { #5 : #6 TF } } { } +\__kernel_patch:nnNNpn + { \__kernel_chk_cs_exist:c { #5 : #6 TF } } { } \cs_set:Npn \__prg_set_eq_conditional_TF_form:wNnnnn #1 \q_stop #2#3#4#5#6 { #2 { #3 : #4 TF } { #5 : #6 TF } } -\__debug_patch:nnNNpn - { \__debug_chk_cs_exist:c { #5 : #6 T } } { } +\__kernel_patch:nnNNpn + { \__kernel_chk_cs_exist:c { #5 : #6 T } } { } \cs_set:Npn \__prg_set_eq_conditional_T_form:wNnnnn #1 \q_stop #2#3#4#5#6 { #2 { #3 : #4 T } { #5 : #6 T } } -\__debug_patch:nnNNpn - { \__debug_chk_cs_exist:c { #5 : #6 F } } { } +\__kernel_patch:nnNNpn + { \__kernel_chk_cs_exist:c { #5 : #6 F } } { } \cs_set:Npn \__prg_set_eq_conditional_F_form:wNnnnn #1 \q_stop #2#3#4#5#6 { #2 { #3 : #4 F } { #5 : #6 F } } \tex_chardef:D \c_true_bool = 1 ~ @@ -2065,7 +2083,7 @@ { \cs_if_exist:cTF {#1} { \use:c {#1} #2 } { } } \cs_set:Npn \cs_if_exist_use:c #1 { \cs_if_exist:cTF {#1} { \use:c {#1} } { } } -\cs_set_protected:Npn \__msg_kernel_error:nnxx #1#2#3#4 +\cs_set_protected:Npn \__kernel_msg_error:nnxx #1#2#3#4 { \tex_newlinechar:D = `\^^J \tex_relax:D \tex_errmessage:D @@ -2078,23 +2096,23 @@ } \tex_end:D } -\cs_set_protected:Npn \__msg_kernel_error:nnx #1#2#3 - { \__msg_kernel_error:nnxx {#1} {#2} {#3} { } } -\cs_set_protected:Npn \__msg_kernel_error:nn #1#2 - { \__msg_kernel_error:nnxx {#1} {#2} { } { } } +\cs_set_protected:Npn \__kernel_msg_error:nnx #1#2#3 + { \__kernel_msg_error:nnxx {#1} {#2} {#3} { } } +\cs_set_protected:Npn \__kernel_msg_error:nn #1#2 + { \__kernel_msg_error:nnxx {#1} {#2} { } { } } \cs_set:Npn \msg_line_context: { on~line~ \tex_the:D \tex_inputlineno:D } \cs_set_protected:Npn \iow_log:x { \tex_immediate:D \tex_write:D -1 } \cs_set_protected:Npn \iow_term:x { \tex_immediate:D \tex_write:D 16 } -\__debug_patch:nnNNpn { } - { \__debug_log:x { Defining~\token_to_str:N #1~ \msg_line_context: } } +\__kernel_patch:nnNNpn { } + { \__kernel_debug_log:x { Defining~\token_to_str:N #1~ \msg_line_context: } } \cs_set_protected:Npn \__chk_if_free_cs:N #1 { \cs_if_free:NF #1 { - \__msg_kernel_error:nnxx { kernel } { command-already-defined } + \__kernel_msg_error:nnxx { kernel } { command-already-defined } { \token_to_str:N #1 } { \token_to_meaning:N #1 } } } @@ -2215,7 +2233,7 @@ { \__cs_parm_from_arg_count:nnF { \use:nnn #2 #1 } {#3} { - \__msg_kernel_error:nnxx { kernel } { bad-number-of-arguments } + \__kernel_msg_error:nnxx { kernel } { bad-number-of-arguments } { \token_to_str:N #1 } { \int_eval:n {#3} } \use_none:n } @@ -2245,14 +2263,14 @@ \str_if_eq_x:nnF { } { \tl_map_function:nN {#2} \__cs_generate_from_signature:n } { - \__msg_kernel_error:nnx { kernel } { non-base-function } + \__kernel_msg_error:nnx { kernel } { non-base-function } { \token_to_str:N #5 } } \cs_generate_from_arg_count:NNnn #5 #4 { \tl_count:n {#2} } {#6} } { - \__msg_kernel_error:nnx { kernel } { missing-colon } + \__kernel_msg_error:nnx { kernel } { missing-colon } { \token_to_str:N #5 } } } @@ -2339,7 +2357,7 @@ \cs_if_exist:NTF #1 {#2} { - \__msg_kernel_error:nnx { kernel } { variable-not-defined } + \__kernel_msg_error:nnx { kernel } { variable-not-defined } { \token_to_str:N #1 } } } @@ -2388,7 +2406,7 @@ \cs_new_eq:NN \__prg_break_point: \prg_do_nothing: \cs_new:Npn \__prg_break: #1 \__prg_break_point: { } \cs_new:Npn \__prg_break:n #1#2 \__prg_break_point: {#1} -%% File: l3expan.dtx Copyright (C) 1990-2017 The LaTeX3 project +%% File: l3expan.dtx Copyright (C) 1990-2018 The LaTeX3 project \cs_new:Npn \__exp_arg_next:nnn #1#2#3 { #2 \::: { #3 {#1} } } \cs_new:Npn \__exp_arg_next:Nnn #1#2#3 { #2 \::: { #3 #1 } } \cs_new:Npn \::: #1 {#1} @@ -2440,7 +2458,7 @@ { \fi: \fi: - \__msg_kernel_expandable_error:nnn { kernel } { bad-variable } {#2} + \__kernel_msg_expandable_error:nnn { kernel } { bad-variable } {#2} \exp_end: } \cs_new:Npn \exp_args:NNc #1#2#3 @@ -2674,10 +2692,10 @@ \tex_catcode:D `\^^@ = 13 \cs_new_protected:Npn \exp_end_continue_f:w { `^^@ } \cs_new:Npn ^^@ - { \__msg_kernel_expandable_error:nn { kernel } { bad-exp-end-f } } + { \__kernel_msg_expandable_error:nn { kernel } { bad-exp-end-f } } \cs_new:Npn \exp_end_continue_f:nw #1 { `^^@ #1 } \group_end: -\__debug_patch:nnNNpn { \__debug_chk_cs_exist:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_cs_exist:N #1 } { } \cs_new_protected:Npn \cs_generate_variant:Nn #1#2 { \__cs_generate_variant:N #1 @@ -2715,7 +2733,7 @@ \cs_new_protected:Npn \__cs_generate_variant:nnNN #1#2#3#4 { \if_meaning:w \c_false_bool #3 - \__msg_kernel_error:nnx { kernel } { missing-colon } + \__kernel_msg_error:nnx { kernel } { missing-colon } { \token_to_str:c {#1} } \exp_after:wN \use_none_delimit_by_q_recursion_stop:w \fi: @@ -2799,7 +2817,7 @@ \exp_not:n { \q_mark - \__msg_kernel_error:nnxx { kernel } { variant-too-long } + \__kernel_msg_error:nnxx { kernel } { variant-too-long } {#5} { \token_to_str:N #3 } \use_none:nnn \q_stop @@ -2814,7 +2832,7 @@ \exp_not:n { \q_mark - \__msg_kernel_error:nnxxxx { kernel } { invalid-variant } + \__kernel_msg_error:nnxxxx { kernel } { invalid-variant } {#7} { \token_to_str:N #5 } {#1} {#2} \use_none:nnn \q_stop @@ -2827,12 +2845,13 @@ #3 \q_stop #4 #5 {#6} {#7} \exp_not:n { - \__cs_generate_variant_loop_warning:nnxxxx { kernel } { invalid-variant } + \__cs_generate_variant_loop_warning:nnxxxx + { kernel } { deprecated-variant } {#7} { \token_to_str:N #5 } {#1} {#2} } } \cs_new_protected:Npn \__cs_generate_variant_loop_warning:nnxxxx - { \__msg_kernel_warning:nnxxxx } + { \__kernel_msg_warning:nnxxxx } \cs_new:Npn \__cs_generate_variant_same:N #1 { \if:w N #1 N \else: @@ -2844,11 +2863,11 @@ \fi: \fi: } -\__debug_patch:nnNNpn +\__kernel_patch:nnNNpn { \cs_if_free:NF #4 { - \__debug_log:x + \__kernel_debug_log:x { Variant~\token_to_str:N #4~% already~defined;~ not~ changing~ it~ \msg_line_context: @@ -2904,7 +2923,7 @@ \cs_new_protected:Npn \__cs_generate_variant:nnNnn #1#2#3#4#5 { \if_meaning:w \c_false_bool #3 - \__msg_kernel_error:nnx { kernel } { missing-colon } + \__kernel_msg_error:nnx { kernel } { missing-colon } { \token_to_str:c {#1} } \use_i_delimit_by_q_stop:nw \fi: @@ -2924,7 +2943,7 @@ \cs_if_exist_use:cTF { __cs_generate_variant_#1_form:nnn } { {#3} {#4} {#5} } { - \__msg_kernel_error:nnxx + \__kernel_msg_error:nnxx { kernel } { conditional-form-unknown } {#1} { \token_to_str:c { #3 : #4 } } } @@ -2939,20 +2958,20 @@ { \cs_generate_variant:cn { #1 : #2 F } } \cs_new_protected:Npn \__cs_generate_variant_TF_form:nnn #1#2 { \cs_generate_variant:cn { #1 : #2 TF } } -%% File: l3tl.dtx Copyright (C) 1990-2017 The LaTeX3 Project +%% File: l3tl.dtx Copyright (C) 1990-2018 The LaTeX3 Project \cs_new_protected:Npn \tl_new:N #1 { \__chk_if_free_cs:N #1 \cs_gset_eq:NN #1 \c_empty_tl } \cs_generate_variant:Nn \tl_new:N { c } -\__debug_patch:nnNNpn { \__debug_chk_var_scope:NN c #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_scope:NN c #1 } { } \cs_new_protected:Npn \tl_const:Nn #1#2 { \__chk_if_free_cs:N #1 \cs_gset_nopar:Npx #1 { \exp_not:n {#2} } } -\__debug_patch:nnNNpn { \__debug_chk_var_scope:NN c #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_scope:NN c #1 } { } \cs_new_protected:Npn \tl_const:Nx #1#2 { \__chk_if_free_cs:N #1 @@ -2975,14 +2994,14 @@ \tex_ifodd:D \l@expl@enable@debug@bool \cs_new_protected:Npn \tl_set_eq:NN #1#2 { - \__debug_chk_var_local:N #1 - \__debug_chk_var_exist:N #2 + \__kernel_chk_var_local:N #1 + \__kernel_chk_var_exist:N #2 \cs_set_eq:NN #1 #2 } \cs_new_protected:Npn \tl_gset_eq:NN #1#2 { - \__debug_chk_var_global:N #1 - \__debug_chk_var_exist:N #2 + \__kernel_chk_var_global:N #1 + \__kernel_chk_var_exist:N #2 \cs_gset_eq:NN #1 #2 } \else: @@ -2991,18 +3010,18 @@ \fi: \cs_generate_variant:Nn \tl_set_eq:NN { cN, Nc, cc } \cs_generate_variant:Nn \tl_gset_eq:NN { cN, Nc, cc } -\__debug_patch:nnNNpn +\__kernel_patch:nnNNpn { - \__debug_chk_var_exist:N #2 - \__debug_chk_var_exist:N #3 + \__kernel_chk_var_exist:N #2 + \__kernel_chk_var_exist:N #3 } { } \cs_new_protected:Npn \tl_concat:NNN #1#2#3 { \tl_set:Nx #1 { \exp_not:o {#2} \exp_not:o {#3} } } -\__debug_patch:nnNNpn +\__kernel_patch:nnNNpn { - \__debug_chk_var_exist:N #2 - \__debug_chk_var_exist:N #3 + \__kernel_chk_var_exist:N #2 + \__kernel_chk_var_exist:N #3 } { } \cs_new_protected:Npn \tl_gconcat:NNN #1#2#3 @@ -3022,22 +3041,22 @@ \tl_const:Nn \c_novalue_tl { ANoValue- } } \tl_const:Nn \c_space_tl { ~ } -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \tl_set:Nn #1#2 { \cs_set_nopar:Npx #1 { \exp_not:n {#2} } } -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \tl_set:No #1#2 { \cs_set_nopar:Npx #1 { \exp_not:o {#2} } } -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \tl_set:Nx #1#2 { \cs_set_nopar:Npx #1 {#2} } -\__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \tl_gset:Nn #1#2 { \cs_gset_nopar:Npx #1 { \exp_not:n {#2} } } -\__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \tl_gset:No #1#2 { \cs_gset_nopar:Npx #1 { \exp_not:o {#2} } } -\__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \tl_gset:Nx #1#2 { \cs_gset_nopar:Npx #1 {#2} } \cs_generate_variant:Nn \tl_set:Nn { NV , Nv , Nf } @@ -3046,28 +3065,28 @@ \cs_generate_variant:Nn \tl_gset:Nn { NV , Nv , Nf } \cs_generate_variant:Nn \tl_gset:Nx { c } \cs_generate_variant:Nn \tl_gset:Nn { c, co , cV , cv , cf } -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \tl_put_left:Nn #1#2 { \cs_set_nopar:Npx #1 { \exp_not:n {#2} \exp_not:o #1 } } -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \tl_put_left:NV #1#2 { \cs_set_nopar:Npx #1 { \exp_not:V #2 \exp_not:o #1 } } -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \tl_put_left:No #1#2 { \cs_set_nopar:Npx #1 { \exp_not:o {#2} \exp_not:o #1 } } -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \tl_put_left:Nx #1#2 { \cs_set_nopar:Npx #1 { #2 \exp_not:o #1 } } -\__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \tl_gput_left:Nn #1#2 { \cs_gset_nopar:Npx #1 { \exp_not:n {#2} \exp_not:o #1 } } -\__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \tl_gput_left:NV #1#2 { \cs_gset_nopar:Npx #1 { \exp_not:V #2 \exp_not:o #1 } } -\__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \tl_gput_left:No #1#2 { \cs_gset_nopar:Npx #1 { \exp_not:o {#2} \exp_not:o #1 } } -\__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \tl_gput_left:Nx #1#2 { \cs_gset_nopar:Npx #1 { #2 \exp_not:o {#1} } } \cs_generate_variant:Nn \tl_put_left:Nn { c } @@ -3078,28 +3097,28 @@ \cs_generate_variant:Nn \tl_gput_left:NV { c } \cs_generate_variant:Nn \tl_gput_left:No { c } \cs_generate_variant:Nn \tl_gput_left:Nx { c } -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \tl_put_right:Nn #1#2 { \cs_set_nopar:Npx #1 { \exp_not:o #1 \exp_not:n {#2} } } -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \tl_put_right:NV #1#2 { \cs_set_nopar:Npx #1 { \exp_not:o #1 \exp_not:V #2 } } -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \tl_put_right:No #1#2 { \cs_set_nopar:Npx #1 { \exp_not:o #1 \exp_not:o {#2} } } -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \tl_put_right:Nx #1#2 { \cs_set_nopar:Npx #1 { \exp_not:o #1 #2 } } -\__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \tl_gput_right:Nn #1#2 { \cs_gset_nopar:Npx #1 { \exp_not:o #1 \exp_not:n {#2} } } -\__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \tl_gput_right:NV #1#2 { \cs_gset_nopar:Npx #1 { \exp_not:o #1 \exp_not:V #2 } } -\__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \tl_gput_right:No #1#2 { \cs_gset_nopar:Npx #1 { \exp_not:o #1 \exp_not:o {#2} } } -\__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \tl_gput_right:Nx #1#2 { \cs_gset_nopar:Npx #1 { \exp_not:o {#1} #2 } } \cs_generate_variant:Nn \tl_put_right:Nn { c } @@ -3230,7 +3249,7 @@ { \tl_if_empty:nTF {#6} { - \__msg_kernel_error:nnx { kernel } { empty-search-pattern } + \__kernel_msg_error:nnx { kernel } { empty-search-pattern } { \tl_to_str:n {#7} } } { @@ -3490,7 +3509,7 @@ { \tl_if_exist:NTF #1 {#1} { - \__msg_kernel_expandable_error:nnn + \__kernel_msg_expandable_error:nnn { kernel } { bad-variable } {#1} } } @@ -3840,11 +3859,11 @@ \tl_new:N \g_tmpb_tl \tl_new:N \l_tmpa_tl \tl_new:N \l_tmpb_tl -\__debug_deprecation:nnNNpn { 2017-12-31 } { \tex_lowercase:D } +\__kernel_patch_deprecation:nnNNpn { 2017-12-31 } { \tex_lowercase:D } \cs_new_protected:Npn \tl_to_lowercase:n #1 { \tex_lowercase:D {#1} } -\__debug_deprecation:nnNNpn { 2017-12-31 } { \tex_uppercase:D } +\__kernel_patch_deprecation:nnNNpn { 2017-12-31 } { \tex_uppercase:D } \cs_new_protected:Npn \tl_to_uppercase:n #1 { \tex_uppercase:D {#1} } -%% File: l3str.dtx Copyright (C) 2011-2017 The LaTeX3 Project +%% File: l3str.dtx Copyright (C) 2011-2018 The LaTeX3 Project \group_begin: \cs_set_protected:Npn \__str_tmp:n #1 { @@ -3909,7 +3928,7 @@ { \tl_if_empty:nTF {#4} { - \__msg_kernel_error:nnx { kernel } { empty-search-pattern } {#5} + \__kernel_msg_error:nnx { kernel } { empty-search-pattern } {#5} } { \use:x @@ -4198,7 +4217,7 @@ } \cs_new:Npn \str_item_ignore_spaces:nn #1 { \exp_args:No \__str_item:nn { \tl_to_str:n {#1} } } -\__debug_patch_args:nNNpn { {#1} { \__int_eval:n {#2} } } +\__kernel_patch_args:nNNpn { {#1} { \__int_eval:n {#2} } } \cs_new:Npn \__str_item:nn #1#2 { \exp_after:wN \__str_item:w @@ -4257,7 +4276,7 @@ } \cs_new:Npn \str_range_ignore_spaces:nnn #1 { \exp_args:No \__str_range:nnn { \tl_to_str:n {#1} } } -\__debug_patch_args:nNNpn +\__kernel_patch_args:nNNpn { {#1} { \__int_eval:n {#2} } { \__int_eval:n {#3} } } \cs_new:Npn \__str_range:nnn #1#2#3 { @@ -4624,7 +4643,7 @@ %% File: l3seq.dtx Copyright (C) 1990-2017 The LaTeX3 Project \cs_new:Npn \__seq_item:n { - \__msg_kernel_expandable_error:nn { kernel } { misused-sequence } + \__kernel_msg_expandable_error:nn { kernel } { misused-sequence } \use_none:n } \tl_new:N \l__seq_internal_a_tl @@ -5070,7 +5089,7 @@ } } { - \__msg_kernel_expandable_error:nnn + \__kernel_msg_expandable_error:nnn { kernel } { bad-variable } {#1} } } @@ -5139,21 +5158,21 @@ \seq_new:N \l_tmpb_seq \seq_new:N \g_tmpa_seq \seq_new:N \g_tmpb_seq -%% File: l3int.dtx Copyright (C) 1990-2017 The LaTeX3 Project +%% File: l3int.dtx Copyright (C) 1990-2018 The LaTeX3 Project \cs_new_eq:NN \__int_value:w \tex_number:D \cs_new_eq:NN \__int_eval:w \etex_numexpr:D \cs_new_eq:NN \__int_eval_end: \tex_relax:D \cs_new_eq:NN \if_int_odd:w \tex_ifodd:D \cs_new_eq:NN \if_case:w \tex_ifcase:D -\__debug_patch_args:nNNpn - { { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_eval:n } } +\__kernel_patch_args:nNNpn + { { \__kernel_chk_expr:nNnN {#1} \__int_eval:w { } \int_eval:n } } \cs_new:Npn \int_eval:n #1 { \__int_value:w \__int_eval:w #1 \__int_eval_end: } -\__debug_patch_args:nNNpn - { { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \__int_eval:n } } +\__kernel_patch_args:nNNpn + { { \__kernel_chk_expr:nNnN {#1} \__int_eval:w { } \__int_eval:n } } \cs_new:Npn \__int_eval:n #1 { \__int_eval:w #1 \__int_eval_end: } -\__debug_patch_args:nNNpn - { { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_abs:n } } +\__kernel_patch_args:nNNpn + { { \__kernel_chk_expr:nNnN {#1} \__int_eval:w { } \int_abs:n } } \cs_new:Npn \int_abs:n #1 { \__int_value:w \exp_after:wN \__int_abs:N @@ -5162,10 +5181,10 @@ } \cs_new:Npn \__int_abs:N #1 { \if_meaning:w - #1 \else: \exp_after:wN #1 \fi: } -\__debug_patch_args:nNNpn +\__kernel_patch_args:nNNpn { - { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_max:nn } - { \__debug_chk_expr:nNnN {#2} \__int_eval:w { } \int_max:nn } + { \__kernel_chk_expr:nNnN {#1} \__int_eval:w { } \int_max:nn } + { \__kernel_chk_expr:nNnN {#2} \__int_eval:w { } \int_max:nn } } \cs_set:Npn \int_max:nn #1#2 { @@ -5175,10 +5194,10 @@ > \exp_stop_f: } -\__debug_patch_args:nNNpn +\__kernel_patch_args:nNNpn { - { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_min:nn } - { \__debug_chk_expr:nNnN {#2} \__int_eval:w { } \int_min:nn } + { \__kernel_chk_expr:nNnN {#1} \__int_eval:w { } \int_min:nn } + { \__kernel_chk_expr:nNnN {#2} \__int_eval:w { } \int_min:nn } } \cs_set:Npn \int_min:nn #1#2 { @@ -5196,10 +5215,10 @@ #2 \fi: } -\__debug_patch_args:nNNpn +\__kernel_patch_args:nNNpn { - { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_div_truncate:nn } - { \__debug_chk_expr:nNnN {#2} \__int_eval:w { } \int_div_truncate:nn } + { \__kernel_chk_expr:nNnN {#1} \__int_eval:w { } \int_div_truncate:nn } + { \__kernel_chk_expr:nNnN {#2} \__int_eval:w { } \int_div_truncate:nn } } \cs_new:Npn \int_div_truncate:nn #1#2 { @@ -5224,10 +5243,10 @@ } \cs_new:Npn \int_div_round:nn #1#2 { \__int_value:w \__int_eval:w ( #1 ) / ( #2 ) \__int_eval_end: } -\__debug_patch_args:nNNpn +\__kernel_patch_args:nNNpn { - { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_mod:nn } - { \__debug_chk_expr:nNnN {#2} \__int_eval:w { } \int_mod:nn } + { \__kernel_chk_expr:nNnN {#1} \__int_eval:w { } \int_mod:nn } + { \__kernel_chk_expr:nNnN {#2} \__int_eval:w { } \int_mod:nn } } \cs_new:Npn \int_mod:nn #1#2 { @@ -5244,10 +5263,10 @@ \cs:w newcount \cs_end: #1 } \cs_generate_variant:Nn \int_new:N { c } -\__debug_patch_args:nnnNNpn - { \__debug_chk_var_scope:NN c #1 } +\__kernel_patch_args:nnnNNpn + { \__kernel_chk_var_scope:NN c #1 } { } - { {#1} { \__debug_chk_expr:nNnN {#2} \__int_eval:w { } \int_const:Nn } } + { {#1} { \__kernel_chk_expr:nNnN {#2} \__int_eval:w { } \int_const:Nn } } \cs_new_protected:Npn \int_const:Nn #1#2 { \int_compare:nNnTF {#2} < \c_zero @@ -5282,9 +5301,9 @@ \cs_new_eq:NN \__int_constdef:Nw \tex_mathchardef:D \tex_mathchardef:D \c__max_constdef_int 32767 ~ \fi: -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \int_zero:N #1 { #1 = \c_zero } -\__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \int_gzero:N #1 { \tex_global:D #1 = \c_zero } \cs_generate_variant:Nn \int_zero:N { c } \cs_generate_variant:Nn \int_gzero:N { c } @@ -5294,10 +5313,10 @@ { \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 } -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \int_set_eq:NN #1#2 { #1 = #2 } \cs_generate_variant:Nn \int_set_eq:NN { c , Nc , cc } -\__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \int_gset_eq:NN #1#2 { \tex_global:D #1 = #2 } \cs_generate_variant:Nn \int_gset_eq:NN { c , Nc , cc } \prg_new_eq_conditional:NNn \int_if_exist:N \cs_if_exist:N @@ -5306,48 +5325,48 @@ { TF , T , F , p } \cs_set_protected:Npn \__int_tmp:w #1#2#3 { - \__debug_patch_args:nnnNNpn + \__kernel_patch_args:nnnNNpn { #1 ##1 } { } - { {##1} { \__debug_chk_expr:nNnN {##2} \__int_eval:w { } #3 } } + { {##1} { \__kernel_chk_expr:nNnN {##2} \__int_eval:w { } #3 } } #2 #3 } -\__int_tmp:w \__debug_chk_var_local:N +\__int_tmp:w \__kernel_chk_var_local:N \cs_new_protected:Npn \int_add:Nn #1#2 { \tex_advance:D #1 by \__int_eval:w #2 \__int_eval_end: } -\__int_tmp:w \__debug_chk_var_local:N +\__int_tmp:w \__kernel_chk_var_local:N \cs_new_protected:Npn \int_sub:Nn #1#2 { \tex_advance:D #1 by - \__int_eval:w #2 \__int_eval_end: } -\__int_tmp:w \__debug_chk_var_global:N +\__int_tmp:w \__kernel_chk_var_global:N \cs_new_protected:Npn \int_gadd:Nn #1#2 { \tex_global:D \tex_advance:D #1 by \__int_eval:w #2 \__int_eval_end: } -\__int_tmp:w \__debug_chk_var_global:N +\__int_tmp:w \__kernel_chk_var_global:N \cs_new_protected:Npn \int_gsub:Nn #1#2 { \tex_global:D \tex_advance:D #1 by - \__int_eval:w #2 \__int_eval_end: } \cs_generate_variant:Nn \int_add:Nn { c } \cs_generate_variant:Nn \int_gadd:Nn { c } \cs_generate_variant:Nn \int_sub:Nn { c } \cs_generate_variant:Nn \int_gsub:Nn { c } -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \int_incr:N #1 { \tex_advance:D #1 \c_one } -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \int_decr:N #1 { \tex_advance:D #1 - \c_one } -\__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \int_gincr:N #1 { \tex_global:D \tex_advance:D #1 \c_one } -\__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \int_gdecr:N #1 { \tex_global:D \tex_advance:D #1 - \c_one } \cs_generate_variant:Nn \int_incr:N { c } \cs_generate_variant:Nn \int_decr:N { c } \cs_generate_variant:Nn \int_gincr:N { c } \cs_generate_variant:Nn \int_gdecr:N { c } -\__int_tmp:w \__debug_chk_var_local:N +\__int_tmp:w \__kernel_chk_var_local:N \cs_new_protected:Npn \int_set:Nn #1#2 { #1 ~ \__int_eval:w #2 \__int_eval_end: } -\__int_tmp:w \__debug_chk_var_global:N +\__int_tmp:w \__kernel_chk_var_global:N \cs_new_protected:Npn \int_gset:Nn #1#2 { \tex_global:D #1 ~ \__int_eval:w #2 \__int_eval_end: } \cs_generate_variant:Nn \int_set:Nn { c } @@ -5365,7 +5384,7 @@ { { } \c_zero \fi: - \__msg_kernel_expandable_error:nnn + \__kernel_msg_expandable_error:nnn { kernel } { unknown-comparison } {#1} \prg_return_false: } @@ -5422,11 +5441,11 @@ { \__int_compare:nnN { \if_int_compare:w } {#3} > } \cs_new:cpn { __int_compare_>=:NNw } #1#2#3 >= { \__int_compare:nnN { \if_int_compare:w } {#3} < } -\__debug_patch_conditional_args:nNNpnn +\__kernel_patch_conditional_args:nNNpnn { - { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_compare:nNn } + { \__kernel_chk_expr:nNnN {#1} \__int_eval:w { } \int_compare:nNn } { \__int_eval_end: #2 } - { \__debug_chk_expr:nNnN {#3} \__int_eval:w { } \int_compare:nNn } + { \__kernel_chk_expr:nNnN {#3} \__int_eval:w { } \int_compare:nNn } } \prg_new_conditional:Npnn \int_compare:nNn #1#2#3 { p , T , F , TF } { @@ -5465,8 +5484,8 @@ { \__int_case:nw {#1} } } \cs_new_eq:NN \__int_case_end:nw \__prg_case_end:nw -\__debug_patch_conditional_args:nNNpnn - { { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_if_odd:n } } +\__kernel_patch_conditional_args:nNNpnn + { { \__kernel_chk_expr:nNnN {#1} \__int_eval:w { } \int_if_odd:n } } \prg_new_conditional:Npnn \int_if_odd:n #1 { p , T , F , TF} { \if_int_odd:w \__int_eval:w #1 \__int_eval_end: @@ -5475,8 +5494,8 @@ \prg_return_false: \fi: } -\__debug_patch_conditional_args:nNNpnn - { { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_if_even:n } } +\__kernel_patch_conditional_args:nNNpnn + { { \__kernel_chk_expr:nNnN {#1} \__int_eval:w { } \int_if_even:n } } \prg_new_conditional:Npnn \int_if_even:n #1 { p , T , F , TF} { \if_int_odd:w \__int_eval:w #1 \__int_eval_end: @@ -5541,11 +5560,11 @@ \int_compare:nNnF {#1} #2 {#3} { \int_do_until:nNnn {#1} #2 {#3} {#4} } } -\__debug_patch_args:nNNpn +\__kernel_patch_args:nNNpn { - { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_step_function:nnnN } - { \__debug_chk_expr:nNnN {#2} \__int_eval:w { } \int_step_function:nnnN } - { \__debug_chk_expr:nNnN {#3} \__int_eval:w { } \int_step_function:nnnN } + { \__kernel_chk_expr:nNnN {#1} \__int_eval:w { } \int_step_function:nnnN } + { \__kernel_chk_expr:nNnN {#2} \__int_eval:w { } \int_step_function:nnnN } + { \__kernel_chk_expr:nNnN {#3} \__int_eval:w { } \int_step_function:nnnN } } \cs_new:Npn \int_step_function:nnnN #1#2#3 { @@ -5561,7 +5580,7 @@ { \int_compare:nNnTF {#2} = \c_zero { - \__msg_kernel_expandable_error:nnn { kernel } { zero-step } {#4} + \__kernel_msg_expandable_error:nnn { kernel } { zero-step } {#4} \use_none:nnnn } { \__int_step:NnnnN < } @@ -6005,14 +6024,9 @@ \int_new:N \g_tmpb_int \cs_gset_eq:NN \c__deprecation_minus_one \m@ne \cs_new_eq:NN \c_minus_one \c__deprecation_minus_one -\__debug:TF - { - \tl_gput_right:Nn \g__debug_deprecation_on_tl - { \__deprecation_error:Nnn \c_minus_one { -1 } { 2018-12-31 } } - \tl_gput_right:Nn \g__debug_deprecation_off_tl - { \tex_let:D \c_minus_one \c__deprecation_minus_one } - } - { } +\__kernel_deprecation_code:nn + { \__deprecation_error:Nnn \c_minus_one { -1 } { 2018-12-31 } } + { \tex_let:D \c_minus_one \c__deprecation_minus_one } %% File: l3intarray.dtx Copyright (C) 2017 The LaTeX3 Project \int_new:N \g__intarray_font_int \cs_new_protected:Npn \__intarray_new:Nn #1#2 @@ -6041,7 +6055,7 @@ \int_compare:nTF { - \c_max_dim <= \int_abs:n {#3} <= \c_max_dim } { \__intarray_gset_fast:Nnn #1 {#2} {#3} } { - \__msg_kernel_error:nnxxxx { kernel } { overflow } + \__kernel_msg_error:nnxxxx { kernel } { overflow } { \token_to_str:N #1 } {#2} {#3} { \int_compare:nNnT {#3} < 0 { - } \__int_value:w \c_max_dim } \__intarray_gset_fast:Nnn #1 {#2} @@ -6049,7 +6063,7 @@ } } { - \__msg_kernel_error:nnxxx { kernel } { out-of-bounds } + \__kernel_msg_error:nnxxx { kernel } { out-of-bounds } { \token_to_str:N #1 } {#2} { \__intarray_count:N #1 } } } @@ -6062,19 +6076,19 @@ \int_compare:nTF { 1 <= #2 <= \__intarray_count:N #1 } { \__intarray_item_fast:Nn #1 {#2} } { - \__msg_kernel_expandable_error:nnnnn { kernel } { out-of-bounds } + \__kernel_msg_expandable_error:nnnnn { kernel } { out-of-bounds } { \token_to_str:N #1 } {#2} { \__intarray_count:N #1 } 0 } } -%% File: l3flag.dtx Copyright (C) 2011-2017 The LaTeX3 Project +%% File: l3flag.dtx Copyright (C) 2011-2018 The LaTeX3 Project \cs_new_protected:Npn \flag_new:n #1 { \cs_new:cpn { flag~#1 } ##1 ; { \exp_after:wN \use_none:n \cs:w flag~#1~##1 \cs_end: } } -\__debug_patch:nnNNpn - { \exp_args:Nc \__debug_chk_var_exist:N { flag~#1 } } { } +\__kernel_patch:nnNNpn + { \exp_args:Nc \__kernel_chk_var_exist:N { flag~#1 } } { } \cs_new_protected:Npn \flag_clear:n #1 { \__flag_clear:wn 0 ; {#1} } \cs_new_protected:Npn \__flag_clear:wn #1 ; #2 { @@ -6104,7 +6118,7 @@ { \flag_if_exist:nF {#1} { - \__msg_kernel_expandable_error:nnn + \__kernel_msg_expandable_error:nnn { kernel } { bad-variable } { flag~#1~ } } } @@ -6114,7 +6128,7 @@ \cs_if_exist:cTF { flag~#1 } { \prg_return_true: } { \prg_return_false: } } -\__debug_patch_conditional:nNNpnn { \__flag_chk_exist:n {#1} } +\__kernel_patch_conditional:nNNpnn { \__flag_chk_exist:n {#1} } \prg_new_conditional:Npnn \flag_if_raised:n #1 { p , T , F , TF } { \if_cs_exist:w flag~#1~0 \cs_end: @@ -6123,7 +6137,7 @@ \prg_return_false: \fi: } -\__debug_patch:nnNNpn { \__flag_chk_exist:n {#1} } { } +\__kernel_patch:nnNNpn { \__flag_chk_exist:n {#1} } { } \cs_new:Npn \flag_height:n #1 { \__flag_height_loop:wn 0; {#1} } \cs_new:Npn \__flag_height_loop:wn #1 ; #2 { @@ -6140,8 +6154,8 @@ \cs:w flag~#1 \exp_after:wN \cs_end: \__int_value:w \flag_height:n {#1} ; } -%% File: l3quark.dtx Copyright (C) 1990-2017 The LaTeX3 Project -\__debug_patch:nnNNpn { \__debug_chk_var_scope:NN q #1 } { } +%% File: l3quark.dtx Copyright (C) 1990-2018 The LaTeX3 Project +\__kernel_patch:nnNNpn { \__kernel_chk_var_scope:NN q #1 } { } \cs_new_protected:Npn \quark_new:N #1 { \__chk_if_free_cs:N #1 @@ -6237,7 +6251,7 @@ { \tl_if_in:NnTF \g__scan_marks_tl { #1 } { - \__msg_kernel_error:nnx { kernel } { scanmark-already-defined } + \__kernel_msg_error:nnx { kernel } { scanmark-already-defined } { \token_to_str:N #1 } } { @@ -6248,21 +6262,21 @@ \__scan_new:N \s__stop \cs_new:Npn \__use_none_delimit_by_s__stop:w #1 \s__stop { } \__scan_new:N \s__seq -%% File: l3prg.dtx Copyright (C) 2005-2017 The LaTeX3 Project +%% File: l3prg.dtx Copyright (C) 2005-2018 The LaTeX3 Project \cs_new_eq:NN \if_bool:N \tex_ifodd:D \cs_new_eq:NN \if_predicate:w \tex_ifodd:D \cs_new_protected:Npn \bool_new:N #1 { \cs_new_eq:NN #1 \c_false_bool } \cs_generate_variant:Nn \bool_new:N { c } -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \bool_set_true:N #1 { \cs_set_eq:NN #1 \c_true_bool } -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \bool_set_false:N #1 { \cs_set_eq:NN #1 \c_false_bool } -\__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \bool_gset_true:N #1 { \cs_gset_eq:NN #1 \c_true_bool } -\__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \bool_gset_false:N #1 { \cs_gset_eq:NN #1 \c_false_bool } \cs_generate_variant:Nn \bool_set_true:N { c } @@ -6273,10 +6287,10 @@ \cs_new_eq:NN \bool_gset_eq:NN \tl_gset_eq:NN \cs_generate_variant:Nn \bool_set_eq:NN { Nc, cN, cc } \cs_generate_variant:Nn \bool_gset_eq:NN { Nc, cN, cc } -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \bool_set:Nn #1#2 { \tex_chardef:D #1 = \bool_if_p:n {#2} } -\__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \bool_gset:Nn #1#2 { \tex_global:D \tex_chardef:D #1 = \bool_if_p:n {#2} } \cs_generate_variant:Nn \bool_set:Nn { c } @@ -6478,7 +6492,7 @@ \cs_new:cpn { __prg_replicate_first_-:n } #1 { \exp_end: - \__msg_kernel_expandable_error:nn { kernel } { negative-replication } + \__kernel_msg_expandable_error:nn { kernel } { negative-replication } } \cs_new:cpn { __prg_replicate_first_0:n } #1 { \exp_end: } \cs_new:cpn { __prg_replicate_first_1:n } #1 { \exp_end: #1 } @@ -6940,7 +6954,7 @@ } } { - \__msg_kernel_expandable_error:nnn + \__kernel_msg_expandable_error:nnn { kernel } { bad-variable } {#1} } } @@ -7040,7 +7054,7 @@ \clist_new:N \l_tmpb_clist \clist_new:N \g_tmpa_clist \clist_new:N \g_tmpb_clist -%% File: l3token.dtx Copyright (C) 2005-2017 The LaTeX3 Project +%% File: l3token.dtx Copyright (C) 2005-2018 The LaTeX3 Project \cs_new_protected:Npn \char_set_catcode:nn #1#2 { \tex_catcode:D \__int_eval:n {#1} = \__int_eval:n {#2} } \cs_new:Npn \char_value_catcode:n #1 @@ -7161,7 +7175,7 @@ \cs_generate_variant:Nn \char_gset_active_eq:NN { Nc } \cs_generate_variant:Nn \char_set_active_eq:nN { nc } \cs_generate_variant:Nn \char_gset_active_eq:nN { nc } -\__debug_patch_args:nNNpn { { \__int_eval:n {#1} } { \__int_eval:n {#2} } } +\__kernel_patch_args:nNNpn { { \__int_eval:n {#1} } { \__int_eval:n {#2} } } \cs_new:Npn \char_generate:nn #1#2 { \exp:w \exp_after:wN \__char_generate_aux:w @@ -7177,13 +7191,13 @@ \cs_new:Npn \__char_generate_aux:w #1 ; #2 ; { \if_int_compare:w #2 = 13 \exp_stop_f: - \__msg_kernel_expandable_error:nn { kernel } { char-active } + \__kernel_msg_expandable_error:nn { kernel } { char-active } \else: \if_int_compare:w #2 = 10 \exp_stop_f: \if_int_compare:w #1 = 0 \exp_stop_f: - \__msg_kernel_expandable_error:nn { kernel } { char-null-space } + \__kernel_msg_expandable_error:nn { kernel } { char-null-space } \else: - \__msg_kernel_expandable_error:nn { kernel } { char-space } + \__kernel_msg_expandable_error:nn { kernel } { char-space } \fi: \else: \if_int_odd:w 0 @@ -7191,13 +7205,13 @@ \if_int_compare:w #2 = 5 \exp_stop_f: 1 \fi: \if_int_compare:w #2 = 9 \exp_stop_f: 1 \fi: \if_int_compare:w #2 > 13 \exp_stop_f: 1 \fi: \exp_stop_f: - \__msg_kernel_expandable_error:nn { kernel } + \__kernel_msg_expandable_error:nn { kernel } { char-invalid-catcode } \else: \if_int_odd:w 0 \if_int_compare:w #1 < 0 \exp_stop_f: 1 \fi: \if_int_compare:w #1 > \c__char_max_int 1 \fi: \exp_stop_f: - \__msg_kernel_expandable_error:nn { kernel } + \__kernel_msg_expandable_error:nn { kernel } { char-out-of-range } \else: \__char_generate_aux:nnw {#1} {#2} @@ -7749,12 +7763,12 @@ } { \scan_stop: } } -\__debug_deprecation:nnNNpn { 2018-12-31 } { \cs_new_eq:NN } +\__kernel_patch_deprecation:nnNNpn { 2018-12-31 } { \cs_new_eq:NN } \cs_new_protected:Npn \token_new:Nn #1#2 { \cs_new_eq:NN #1 #2 } %% File: l3prop.dtx Copyright (C) 1990-2017 The LaTeX3 Project \__scan_new:N \s__prop \cs_new:Npn \__prop_pair:wn #1 \s__prop #2 - { \__msg_kernel_expandable_error:nn { kernel } { misused-prop } } + { \__kernel_msg_expandable_error:nn { kernel } { misused-prop } } \tl_new:N \l__prop_internal_tl \tl_const:Nn \c_empty_prop { \s__prop } \cs_new_protected:Npn \prop_new:N #1 @@ -7829,7 +7843,7 @@ \s__prop { \exp_not:n {#1} } } { - \exp_args:Nnno \__msg_kernel_expandable_error:nnn + \exp_args:Nnno \__kernel_msg_expandable_error:nnn { kernel } { prop-keyval } {#4} } } @@ -8058,7 +8072,7 @@ { } { } } } -%% File: l3msg.dtx Copyright (C) 2009-2017 The LaTeX3 Project +%% File: l3msg.dtx Copyright (C) 2009-2018 The LaTeX3 Project \tl_new:N \l__msg_internal_tl \bool_new:N \l__msg_line_context_bool \tl_const:Nn \c__msg_text_prefix_tl { msg~text~>~ } @@ -8068,13 +8082,13 @@ \cs_if_exist:cTF { \c__msg_text_prefix_tl #1 / #2 } { \prg_return_true: } { \prg_return_false: } } -\__debug_patch:nnNNpn { } - { \__debug_log:x { Defining~message~ #1 / #2 ~\msg_line_context: } } +\__kernel_patch:nnNNpn { } + { \__kernel_debug_log:x { Defining~message~ #1 / #2 ~\msg_line_context: } } \cs_new_protected:Npn \__chk_if_free_msg:nn #1#2 { \msg_if_exist:nnT {#1} {#2} { - \__msg_kernel_error:nnxx { kernel } { message-already-defined } + \__kernel_msg_error:nnxx { kernel } { message-already-defined } {#1} {#2} } } @@ -8392,7 +8406,7 @@ \cs_new:Npn \__msg_class_chk_exist:nT #1 { \cs_if_free:cTF { __msg_ #1 _code:nnnnnn } - { \__msg_kernel_error:nnx { kernel } { message-class-unknown } {#1} } + { \__kernel_msg_error:nnx { kernel } { message-class-unknown } {#1} } } \tl_new:N \l__msg_class_tl \tl_new:N \l__msg_current_class_tl @@ -8417,7 +8431,7 @@ \__msg_use_redirect_name:n { #2 / #3 } } } - { \__msg_kernel_error:nnxx { kernel } { message-unknown } {#2} {#3} } + { \__kernel_msg_error:nnxx { kernel } { message-unknown } {#2} {#3} } } \cs_new_protected:Npn \__msg_use_code: { } \cs_new_protected:Npn \__msg_use_redirect_name:n #1 @@ -8504,7 +8518,7 @@ \tl_if_eq:NNTF \l__msg_class_tl \l__msg_current_class_tl { \prop_put:cnn { l__msg_redirect_ #2 _prop } {#3} {#2} - \__msg_kernel_warning:nnxxxx + \__kernel_msg_warning:nnxxxx { kernel } { message-redirect-loop } { \seq_item:Nn \l__msg_class_loop_seq { 1 } } { \seq_item:Nn \l__msg_class_loop_seq { 2 } } @@ -8521,20 +8535,20 @@ } \cs_generate_variant:Nn \__msg_redirect_loop_chk:nnn { o } \cs_new:Npn \__msg_redirect_loop_list:n #1 { {#1} ~ => ~ } -\cs_new_protected:Npn \__msg_kernel_new:nnnn #1#2 +\cs_new_protected:Npn \__kernel_msg_new:nnnn #1#2 { \msg_new:nnnn { LaTeX } { #1 / #2 } } -\cs_new_protected:Npn \__msg_kernel_new:nnn #1#2 +\cs_new_protected:Npn \__kernel_msg_new:nnn #1#2 { \msg_new:nnn { LaTeX } { #1 / #2 } } -\cs_new_protected:Npn \__msg_kernel_set:nnnn #1#2 +\cs_new_protected:Npn \__kernel_msg_set:nnnn #1#2 { \msg_set:nnnn { LaTeX } { #1 / #2 } } -\cs_new_protected:Npn \__msg_kernel_set:nnn #1#2 +\cs_new_protected:Npn \__kernel_msg_set:nnn #1#2 { \msg_set:nnn { LaTeX } { #1 / #2 } } \group_begin: \cs_set_protected:Npn \__msg_kernel_class_new:nN #1 - { \__msg_kernel_class_new_aux:nN { kernel_ #1 } } + { \__msg_kernel_class_new_aux:nN { __kernel_msg_ #1 } } \cs_set_protected:Npn \__msg_kernel_class_new_aux:nN #1#2 { - \cs_new_protected:cpn { __msg_ #1 :nnnnnn } ##1##2##3##4##5##6 + \cs_new_protected:cpn { #1 :nnnnnn } ##1##2##3##4##5##6 { \use:x { @@ -8543,39 +8557,39 @@ { \tl_to_str:n {##5} } { \tl_to_str:n {##6} } } } - \cs_new_protected:cpx { __msg_ #1 :nnnnn } ##1##2##3##4##5 - { \exp_not:c { __msg_ #1 :nnnnnn } {##1} {##2} {##3} {##4} {##5} { } } - \cs_new_protected:cpx { __msg_ #1 :nnnn } ##1##2##3##4 - { \exp_not:c { __msg_ #1 :nnnnnn } {##1} {##2} {##3} {##4} { } { } } - \cs_new_protected:cpx { __msg_ #1 :nnn } ##1##2##3 - { \exp_not:c { __msg_ #1 :nnnnnn } {##1} {##2} {##3} { } { } { } } - \cs_new_protected:cpx { __msg_ #1 :nn } ##1##2 - { \exp_not:c { __msg_ #1 :nnnnnn } {##1} {##2} { } { } { } { } } - \cs_new_protected:cpx { __msg_ #1 :nnxxxx } ##1##2##3##4##5##6 + \cs_new_protected:cpx { #1 :nnnnn } ##1##2##3##4##5 + { \exp_not:c { #1 :nnnnnn } {##1} {##2} {##3} {##4} {##5} { } } + \cs_new_protected:cpx { #1 :nnnn } ##1##2##3##4 + { \exp_not:c { #1 :nnnnnn } {##1} {##2} {##3} {##4} { } { } } + \cs_new_protected:cpx { #1 :nnn } ##1##2##3 + { \exp_not:c { #1 :nnnnnn } {##1} {##2} {##3} { } { } { } } + \cs_new_protected:cpx { #1 :nn } ##1##2 + { \exp_not:c { #1 :nnnnnn } {##1} {##2} { } { } { } { } } + \cs_new_protected:cpx { #1 :nnxxxx } ##1##2##3##4##5##6 { \use:x { \exp_not:N \exp_not:n - { \exp_not:c { __msg_ #1 :nnnnnn } {##1} {##2} } + { \exp_not:c { #1 :nnnnnn } {##1} {##2} } {##3} {##4} {##5} {##6} } } - \cs_new_protected:cpx { __msg_ #1 :nnxxx } ##1##2##3##4##5 - { \exp_not:c { __msg_ #1 :nnxxxx } {##1} {##2} {##3} {##4} {##5} { } } - \cs_new_protected:cpx { __msg_ #1 :nnxx } ##1##2##3##4 - { \exp_not:c { __msg_ #1 :nnxxxx } {##1} {##2} {##3} {##4} { } { } } - \cs_new_protected:cpx { __msg_ #1 :nnx } ##1##2##3 - { \exp_not:c { __msg_ #1 :nnxxxx } {##1} {##2} {##3} { } { } { } } + \cs_new_protected:cpx { #1 :nnxxx } ##1##2##3##4##5 + { \exp_not:c { #1 :nnxxxx } {##1} {##2} {##3} {##4} {##5} { } } + \cs_new_protected:cpx { #1 :nnxx } ##1##2##3##4 + { \exp_not:c { #1 :nnxxxx } {##1} {##2} {##3} {##4} { } { } } + \cs_new_protected:cpx { #1 :nnx } ##1##2##3 + { \exp_not:c { #1 :nnxxxx } {##1} {##2} {##3} { } { } { } } } \__msg_kernel_class_new:nN { fatal } \__msg_fatal_code:nnnnnn - \cs_undefine:N \__msg_kernel_error:nnxx - \cs_undefine:N \__msg_kernel_error:nnx - \cs_undefine:N \__msg_kernel_error:nn + \cs_undefine:N \__kernel_msg_error:nnxx + \cs_undefine:N \__kernel_msg_error:nnx + \cs_undefine:N \__kernel_msg_error:nn \__msg_kernel_class_new:nN { error } \__msg_error_code:nnnnnn \__msg_kernel_class_new:nN { warning } \msg_warning:nnxxxx \__msg_kernel_class_new:nN { info } \msg_info:nnxxxx \group_end: -\__msg_kernel_new:nnnn { kernel } { message-already-defined } +\__kernel_msg_new:nnnn { kernel } { message-already-defined } { Message~'#2'~for~module~'#1'~already~defined. } { \c__msg_coding_error_text_tl @@ -8583,7 +8597,7 @@ by~the~module~'#1':~this~message~already~exists. \c__msg_return_text_tl } -\__msg_kernel_new:nnnn { kernel } { message-unknown } +\__kernel_msg_new:nnnn { kernel } { message-unknown } { Unknown~message~'#2'~for~module~'#1'. } { \c__msg_coding_error_text_tl @@ -8591,14 +8605,14 @@ by~the~module~'#1':~this~message~does~not~exist. \c__msg_return_text_tl } -\__msg_kernel_new:nnnn { kernel } { message-class-unknown } +\__kernel_msg_new:nnnn { kernel } { message-class-unknown } { Unknown~message~class~'#1'. } { LaTeX~has~been~asked~to~redirect~messages~to~a~class~'#1':\\ this~was~never~defined. \c__msg_return_text_tl } -\__msg_kernel_new:nnnn { kernel } { message-redirect-loop } +\__kernel_msg_new:nnnn { kernel } { message-redirect-loop } { Message~redirection~loop~caused~by~ {#1} ~=>~ {#2} \tl_if_empty:nF {#3} { ~for~module~' \use_none:n #3 ' } . @@ -8609,7 +8623,7 @@ created~an~infinite~loop\\\\ \iow_indent:n { #4 \\\\ } } -\__msg_kernel_new:nnnn { kernel } { bad-number-of-arguments } +\__kernel_msg_new:nnnn { kernel } { bad-number-of-arguments } { Function~'#1'~cannot~be~defined~with~#2~arguments. } { \c__msg_coding_error_text_tl @@ -8617,17 +8631,17 @@ #2~arguments.~ TeX~allows~between~0~and~9~arguments~for~a~single~function. } -\__msg_kernel_new:nnn { kernel } { char-active } +\__kernel_msg_new:nnn { kernel } { char-active } { Cannot~generate~active~chars. } -\__msg_kernel_new:nnn { kernel } { char-invalid-catcode } +\__kernel_msg_new:nnn { kernel } { char-invalid-catcode } { Invalid~catcode~for~char~generation. } -\__msg_kernel_new:nnn { kernel } { char-null-space } +\__kernel_msg_new:nnn { kernel } { char-null-space } { Cannot~generate~null~char~as~a~space. } -\__msg_kernel_new:nnn { kernel } { char-out-of-range } +\__kernel_msg_new:nnn { kernel } { char-out-of-range } { Charcode~requested~out~of~engine~range. } -\__msg_kernel_new:nnn { kernel } { char-space } +\__kernel_msg_new:nnn { kernel } { char-space } { Cannot~generate~space~chars. } -\__msg_kernel_new:nnnn { kernel } { command-already-defined } +\__kernel_msg_new:nnnn { kernel } { command-already-defined } { Control~sequence~#1~already~defined. } { \c__msg_coding_error_text_tl @@ -8636,33 +8650,33 @@ The~current~meaning~is:\\ \ \ #2 } -\__msg_kernel_new:nnnn { kernel } { command-not-defined } +\__kernel_msg_new:nnnn { kernel } { command-not-defined } { Control~sequence~#1~undefined. } { \c__msg_coding_error_text_tl LaTeX~has~been~asked~to~use~a~control~sequence~'#1':\\ this~has~not~been~defined~yet. } -\__msg_kernel_new:nnn { kernel } { deprecated-command } +\__kernel_msg_new:nnn { kernel } { deprecated-command } { The~deprecated~command~'#2'~has~been~or~will~be~removed~on~#1. \tl_if_empty:nF {#3} { ~Use~instead~'#3'. } } -\__msg_kernel_new:nnnn { kernel } { empty-search-pattern } +\__kernel_msg_new:nnnn { kernel } { empty-search-pattern } { Empty~search~pattern. } { \c__msg_coding_error_text_tl LaTeX~has~been~asked~to~replace~an~empty~pattern~by~'#1':~that~ would~lead~to~an~infinite~loop! } -\__msg_kernel_new:nnnn { kernel } { out-of-registers } +\__kernel_msg_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 } { non-base-function } +\__kernel_msg_new:nnnn { kernel } { non-base-function } { Function~'#1'~is~not~a~base~function } { \c__msg_coding_error_text_tl @@ -8671,7 +8685,7 @@ To~define~variants~use~\iow_char:N\\cs_generate_variant:Nn~ and~to~define~other~functions~use~\iow_char:N\\cs_new:Npn. } -\__msg_kernel_new:nnnn { kernel } { missing-colon } +\__kernel_msg_new:nnnn { kernel } { missing-colon } { Function~'#1'~contains~no~':'. } { \c__msg_coding_error_text_tl @@ -8680,47 +8694,47 @@ needed~when~defining~conditionals~or~variants,~or~when~building~a~ parameter~text~from~the~number~of~arguments~of~the~function. } -\__msg_kernel_new:nnnn { kernel } { overflow } +\__kernel_msg_new:nnnn { kernel } { overflow } { Integers~larger~than~2^{30}-1~cannot~be~stored~in~arrays. } { An~attempt~was~made~to~store~#3~at~position~#2~in~the~array~'#1'.~ The~largest~allowed~value~#4~will~be~used~instead. } -\__msg_kernel_new:nnnn { kernel } { out-of-bounds } +\__kernel_msg_new:nnnn { kernel } { out-of-bounds } { Access~to~an~entry~beyond~an~array's~bounds. } { An~attempt~was~made~to~access~or~store~data~at~position~#2~of~the~ array~'#1',~but~this~array~has~entries~at~positions~from~1~to~#3. } -\__msg_kernel_new:nnnn { kernel } { protected-predicate } +\__kernel_msg_new:nnnn { kernel } { protected-predicate } { Predicate~'#1'~must~be~expandable. } { \c__msg_coding_error_text_tl LaTeX~has~been~asked~to~define~'#1'~as~a~protected~predicate.~ Only~expandable~tests~can~have~a~predicate~version. } -\__msg_kernel_new:nnnn { kernel } { conditional-form-unknown } +\__kernel_msg_new:nnnn { kernel } { conditional-form-unknown } { Conditional~form~'#1'~for~function~'#2'~unknown. } { \c__msg_coding_error_text_tl LaTeX~has~been~asked~to~define~the~conditional~form~'#1'~of~ the~function~'#2',~but~only~'TF',~'T',~'F',~and~'p'~forms~exist. } -\__msg_kernel_new:nnnn { kernel } { scanmark-already-defined } +\__kernel_msg_new:nnnn { kernel } { scanmark-already-defined } { Scan~mark~#1~already~defined. } { \c__msg_coding_error_text_tl LaTeX~has~been~asked~to~create~a~new~scan~mark~'#1'~ but~this~name~has~already~been~used~for~a~scan~mark. } -\__msg_kernel_new:nnnn { kernel } { variable-not-defined } +\__kernel_msg_new:nnnn { kernel } { variable-not-defined } { Variable~#1~undefined. } { \c__msg_coding_error_text_tl LaTeX~has~been~asked~to~show~a~variable~#1,~but~this~has~not~ been~defined~yet. } -\__msg_kernel_new:nnnn { kernel } { variant-too-long } +\__kernel_msg_new:nnnn { kernel } { variant-too-long } { Variant~form~'#1'~longer~than~base~signature~of~'#2'. } { \c__msg_coding_error_text_tl @@ -8728,7 +8742,7 @@ with~a~signature~starting~with~'#1',~but~that~is~longer~than~ the~signature~(part~after~the~colon)~of~'#2'. } -\__msg_kernel_new:nnnn { kernel } { invalid-variant } +\__kernel_msg_new:nnnn { kernel } { invalid-variant } { Variant~form~'#1'~invalid~for~base~form~'#2'. } { \c__msg_coding_error_text_tl @@ -8736,17 +8750,28 @@ with~a~signature~starting~with~'#1',~but~cannot~change~an~argument~ from~type~'#3'~to~type~'#4'. } +\__kernel_msg_new:nnn { kernel } { deprecated-variant } + { + Variant~form~'#1'~deprecated~for~base~form~'#2'.~ + One~should~not~change~an~argument~from~type~'#3'~to~type~'#4' + \str_case:nnF {#3} + { + { n } { :~use~a~'\token_if_eq_charcode:NNTF #4 c v V'~variant? } + { N } { :~base~form~only~accepts~a~single~token~argument. } + {#4} { :~base~form~is~already~a~variant. } + } { . } + } \bool_if:NTF \l@expl@enable@debug@bool { - \__msg_kernel_new:nnnn { kernel } { debug } + \__kernel_msg_new:nnnn { kernel } { debug } { The~debugging~option~'#1'~does~not~exist~\msg_line_context:. } { The~functions~'\iow_char:N\\debug_on:n'~and~ '\iow_char:N\\debug_off:n'~only~accept~the~arguments~ 'check-declarations',~'deprecation',~'log-functions',~not~'#1'. } - \__msg_kernel_new:nnn { kernel } { expr } { '#2'~in~#1 } - \__msg_kernel_new:nnnn { kernel } { local-global } + \__kernel_msg_new:nnn { kernel } { expr } { '#2'~in~#1 } + \__kernel_msg_new:nnnn { kernel } { local-global } { Inconsistent~local/global~assignment } { \c__msg_coding_error_text_tl @@ -8755,7 +8780,7 @@ \if:w l #1 local \else: \if:w g #1 global \else: constant \fi: \fi: \ variable~'#3'. } - \__msg_kernel_new:nnnn { kernel } { non-declared-variable } + \__kernel_msg_new:nnnn { kernel } { non-declared-variable } { The~variable~#1~has~not~been~declared~\msg_line_context:. } { Checking~is~active,~and~you~have~tried~do~so~something~like: \\ @@ -8767,7 +8792,7 @@ } } { - \__msg_kernel_new:nnnn { kernel } { enable-debug } + \__kernel_msg_new:nnnn { kernel } { enable-debug } { To~use~'#1'~load~expl3~with~the~'enable-debug'~option. } { The~function~'#1'~will~be~ignored~because~it~can~only~work~if~ @@ -8777,44 +8802,44 @@ given~when~loading~expl3. } } -\__msg_kernel_new:nnn { kernel } { bad-exp-end-f } +\__kernel_msg_new:nnn { kernel } { bad-exp-end-f } { Misused~\exp_end_continue_f:w or~:nw } -\__msg_kernel_new:nnn { kernel } { bad-variable } +\__kernel_msg_new:nnn { kernel } { bad-variable } { Erroneous~variable~#1 used! } -\__msg_kernel_new:nnn { kernel } { misused-sequence } +\__kernel_msg_new:nnn { kernel } { misused-sequence } { A~sequence~was~misused. } -\__msg_kernel_new:nnn { kernel } { misused-prop } +\__kernel_msg_new:nnn { kernel } { misused-prop } { A~property~list~was~misused. } -\__msg_kernel_new:nnn { kernel } { negative-replication } +\__kernel_msg_new:nnn { kernel } { negative-replication } { Negative~argument~for~\prg_replicate:nn. } -\__msg_kernel_new:nnn { kernel } { prop-keyval } +\__kernel_msg_new:nnn { kernel } { prop-keyval } { Missing/extra~'='~in~'#1'~(in~'..._keyval:Nn') } -\__msg_kernel_new:nnn { kernel } { unknown-comparison } +\__kernel_msg_new:nnn { kernel } { unknown-comparison } { Relation~'#1'~unknown:~use~=,~<,~>,~==,~!=,~<=,~>=. } -\__msg_kernel_new:nnn { kernel } { zero-step } +\__kernel_msg_new:nnn { kernel } { zero-step } { Zero~step~size~for~step~function~#1. } -\__msg_kernel_new:nnn { kernel } { show-clist } +\__kernel_msg_new:nnn { kernel } { show-clist } { The~comma~list~ \tl_if_empty:nF {#1} { #1 ~ } \tl_if_empty:nTF {#2} { is~empty \\>~ . } { contains~the~items~(without~outer~braces): #2 . } } -\__msg_kernel_new:nnn { kernel } { show-prop } +\__kernel_msg_new:nnn { kernel } { show-prop } { The~property~list~#1~ \tl_if_empty:nTF {#2} { is~empty \\>~ . } { contains~the~pairs~(without~outer~braces): #2 . } } -\__msg_kernel_new:nnn { kernel } { show-seq } +\__kernel_msg_new:nnn { kernel } { show-seq } { The~sequence~#1~ \tl_if_empty:nTF {#2} { is~empty \\>~ . } { contains~the~items~(without~outer~braces): #2 . } } -\__msg_kernel_new:nnn { kernel } { show-streams } +\__kernel_msg_new:nnn { kernel } { show-streams } { \tl_if_empty:nTF {#2} { No~ } { The~following~ } \str_case:nn {#1} @@ -8842,7 +8867,7 @@ \exp_args:Ncx \__msg_tmp:w { LaTeX3~error: } { \char_generate:nn { `\ } { 7 } } \group_end: -\cs_new:Npn \__msg_kernel_expandable_error:nnnnnn #1#2#3#4#5#6 +\cs_new:Npn \__kernel_msg_expandable_error:nnnnnn #1#2#3#4#5#6 { \exp_args:Nf \__msg_expandable_error:n { @@ -8851,27 +8876,27 @@ {#3} {#4} {#5} {#6} } } -\cs_new:Npn \__msg_kernel_expandable_error:nnnnn #1#2#3#4#5 +\cs_new:Npn \__kernel_msg_expandable_error:nnnnn #1#2#3#4#5 { - \__msg_kernel_expandable_error:nnnnnn + \__kernel_msg_expandable_error:nnnnnn {#1} {#2} {#3} {#4} {#5} { } } -\cs_new:Npn \__msg_kernel_expandable_error:nnnn #1#2#3#4 +\cs_new:Npn \__kernel_msg_expandable_error:nnnn #1#2#3#4 { - \__msg_kernel_expandable_error:nnnnnn + \__kernel_msg_expandable_error:nnnnnn {#1} {#2} {#3} {#4} { } { } } -\cs_new:Npn \__msg_kernel_expandable_error:nnn #1#2#3 +\cs_new:Npn \__kernel_msg_expandable_error:nnn #1#2#3 { - \__msg_kernel_expandable_error:nnnnnn + \__kernel_msg_expandable_error:nnnnnn {#1} {#2} {#3} { } { } { } } -\cs_new:Npn \__msg_kernel_expandable_error:nn #1#2 +\cs_new:Npn \__kernel_msg_expandable_error:nn #1#2 { - \__msg_kernel_expandable_error:nnnnnn + \__kernel_msg_expandable_error:nnnnnn {#1} {#2} { } { } { } { } } -%% File: l3file.dtx Copyright (C) 1990-2017 The LaTeX3 Project +%% File: l3file.dtx Copyright (C) 1990-2018 The LaTeX3 Project \str_new:N \g_file_curr_dir_str \str_new:N \g_file_curr_ext_str \str_new:N \g_file_curr_name_str @@ -8927,7 +8952,7 @@ \int_if_even:nF { 0 \tl_map_function:NN #2 \__file_name_quote_aux:n } { - \__msg_kernel_error:nnx + \__kernel_msg_error:nnx { kernel } { unbalanced-quote-in-filename } {#2} } \tl_remove_all:Nn #2 { " } @@ -8983,7 +9008,7 @@ \cs_new_protected:Npn \__file_missing:n #1 { \__file_name_sanitize:nN {#1} \l__file_base_name_str - \__msg_kernel_error:nnx { kernel } { file-not-found } + \__kernel_msg_error:nnx { kernel } { file-not-found } { \l__file_base_name_str } } \cs_new_protected:Npn \file_input:n #1 @@ -9375,7 +9400,7 @@ } \cs_new_protected:Npn \iow_indent:n #1 { - \__msg_kernel_error:nnnnn { kernel } { iow-indent } + \__kernel_msg_error:nnnnn { kernel } { iow-indent } { \iow_wrap:nnnN } { \iow_indent:n } {#1} #1 } @@ -9387,7 +9412,7 @@ } \cs_new:Npn \__iow_indent_error:n #1 { - \__msg_kernel_expandable_error:nnnnn { kernel } { iow-indent } + \__kernel_msg_expandable_error:nnnnn { kernel } { iow-indent } { \iow_wrap:nnnN } { \iow_indent:n } {#1} #1 } @@ -9627,38 +9652,38 @@ \cs_new:Npn \__iow_wrap_trim:w ##1 #1 \q_stop {##1} } \exp_args:NV \__iow_tmp:w \c_catcode_other_space_tl -\__msg_kernel_new:nnnn { kernel } { file-not-found } +\__kernel_msg_new:nnnn { kernel } { file-not-found } { File~'#1'~not~found. } { 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:nnn { kernel } { file-list } +\__kernel_msg_new:nnn { kernel } { file-list } { >~File~List~< #1 \\ ............. } -\__msg_kernel_new:nnnn { kernel } { input-streams-exhausted } +\__kernel_msg_new:nnnn { kernel } { input-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. } -\__msg_kernel_new:nnnn { kernel } { output-streams-exhausted } +\__kernel_msg_new:nnnn { kernel } { output-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 { kernel } { unbalanced-quote-in-filename } +\__kernel_msg_new:nnnn { kernel } { unbalanced-quote-in-filename } { Unbalanced~quotes~in~file~name~'#1'. } { File~names~must~contain~balanced~numbers~of~quotes~("). } -\__msg_kernel_new:nnnn { kernel } { iow-indent } +\__kernel_msg_new:nnnn { kernel } { iow-indent } { Only~#1 (arg~1)~allows~#2 } { The~command~#2 can~only~be~used~in~messages~ @@ -9667,18 +9692,13 @@ } \tl_new:N \g_file_current_name_tl \tl_gset:Nn \g_file_current_name_tl { \g_file_curr_name_str } -\__debug:TF +\__kernel_deprecation_code:nn { - \tl_gput_right:Nn \g__debug_deprecation_on_tl - { - \__deprecation_error:Nnn \g_file_current_name_tl - { \g_file_curr_name_str } { 2018-12-31 } - } - \tl_gput_right:Nn \g__debug_deprecation_off_tl - { \tex_def:D \g_file_current_name_tl { \g_file_curr_name_str } } + \__deprecation_error:Nnn \g_file_current_name_tl + { \g_file_curr_name_str } { 2018-12-31 } } - { } -\__debug_deprecation:nnNNpn { 2018-12-31 } + { \tex_def:D \g_file_current_name_tl { \g_file_curr_name_str } } +\__kernel_patch_deprecation:nnNNpn { 2018-12-31 } { \seq_put_right:Nn \l_file_search_path_seq } \cs_new_protected:Npn \file_path_include:n #1 { @@ -9686,34 +9706,34 @@ \seq_if_in:NVF \l_file_search_path_seq \l__file_full_name_str { \seq_put_right:NV \l_file_search_path_seq \l__file_full_name_str } } -\__debug_deprecation:nnNNpn { 2018-12-31 } +\__kernel_patch_deprecation:nnNNpn { 2018-12-31 } { \seq_remove_all:Nn \l_file_search_path_seq } \cs_new_protected:Npn \file_path_remove:n #1 { \__file_name_sanitize:nN {#1} \l__file_full_name_str \seq_remove_all:NV \l_file_search_path_seq \l__file_full_name_str } -\__debug_deprecation:nnNNpn { 2018-12-31 } { \file_get_full_name:nN } +\__kernel_patch_deprecation:nnNNpn { 2018-12-31 } { \file_get_full_name:nN } \cs_new_protected:Npn \file_add_path:nN #1#2 { \file_get_full_name:nN {#1} #2 \str_if_empty:NT #2 { \tl_set:Nn #2 { \q_no_value } } } -\__debug_deprecation:nnNNpn { 2017-12-31 } { \ior_str_get:NN } +\__kernel_patch_deprecation:nnNNpn { 2017-12-31 } { \ior_str_get:NN } \cs_new_protected:Npn \ior_get_str:NN { \ior_str_get:NN } -\__debug_deprecation:nnNNpn { 2018-12-31 } { \file_log_list: } +\__kernel_patch_deprecation:nnNNpn { 2018-12-31 } { \file_log_list: } \cs_new_protected:Npn \file_list: { \file_log_list: } -\__debug_deprecation:nnNNpn { 2018-12-31 } { \ior_show_list: } +\__kernel_patch_deprecation:nnNNpn { 2018-12-31 } { \ior_show_list: } \cs_new_protected:Npn \ior_list_streams: { \ior_show_list: } -\__debug_deprecation:nnNNpn { 2018-12-31 } { \ior_log_list: } +\__kernel_patch_deprecation:nnNNpn { 2018-12-31 } { \ior_log_list: } \cs_new_protected:Npn \ior_log_streams: { \ior_log_list: } -\__debug_deprecation:nnNNpn { 2018-12-31 } { \iow_show_list: } +\__kernel_patch_deprecation:nnNNpn { 2018-12-31 } { \iow_show_list: } \cs_new_protected:Npn \iow_list_streams: { \iow_show_list: } -\__debug_deprecation:nnNNpn { 2018-12-31 } { \iow_log_list: } +\__kernel_patch_deprecation:nnNNpn { 2018-12-31 } { \iow_log_list: } \cs_new_protected:Npn \iow_log_streams: { \iow_log_list: } %% File: l3skip.dtx Copyright (C) 2004-2011 Frank Mittelbach, The LaTeX3 Project -%% (C) 2012-2017 The LaTeX3 Project +%% (C) 2012-2018 The LaTeX3 Project \cs_new_eq:NN \if_dim:w \tex_ifdim:D \cs_new_eq:NN \__dim_eval:w \etex_dimexpr:D \cs_new_eq:NN \__dim_eval_end: \tex_relax:D @@ -9723,16 +9743,16 @@ \cs:w newdimen \cs_end: #1 } \cs_generate_variant:Nn \dim_new:N { c } -\__debug_patch:nnNNpn { \__debug_chk_var_scope:NN c #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_scope:NN c #1 } { } \cs_new_protected:Npn \dim_const:Nn #1#2 { \dim_new:N #1 \tex_global:D #1 ~ \dim_eval:n {#2} \scan_stop: } \cs_generate_variant:Nn \dim_const:Nn { c } -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \dim_zero:N #1 { #1 \c_zero_skip } -\__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \dim_gzero:N #1 { \tex_global:D #1 \c_zero_skip } \cs_generate_variant:Nn \dim_zero:N { c } @@ -9749,46 +9769,46 @@ { TF , T , F , p } \cs_set_protected:Npn \__dim_tmp:w #1#2#3 { - \__debug_patch_args:nnnNNpn + \__kernel_patch_args:nnnNNpn { #1 ##1 } { } - { {##1} { \__debug_chk_expr:nNnN {##2} \__dim_eval:w { } #3 } } + { {##1} { \__kernel_chk_expr:nNnN {##2} \__dim_eval:w { } #3 } } #2 #3 } -\__dim_tmp:w \__debug_chk_var_local:N +\__dim_tmp:w \__kernel_chk_var_local:N \cs_new_protected:Npn \dim_set:Nn #1#2 { #1 ~ \__dim_eval:w #2 \__dim_eval_end: \scan_stop: } -\__dim_tmp:w \__debug_chk_var_global:N +\__dim_tmp:w \__kernel_chk_var_global:N \cs_new_protected:Npn \dim_gset:Nn #1#2 { \tex_global:D #1 ~ \__dim_eval:w #2 \__dim_eval_end: \scan_stop: } \cs_generate_variant:Nn \dim_set:Nn { c } \cs_generate_variant:Nn \dim_gset:Nn { c } -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \dim_set_eq:NN #1#2 { #1 = #2 \scan_stop: } \cs_generate_variant:Nn \dim_set_eq:NN { c , Nc , cc } -\__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \dim_gset_eq:NN #1#2 { \tex_global:D #1 = #2 \scan_stop: } \cs_generate_variant:Nn \dim_gset_eq:NN { c , Nc , cc } -\__dim_tmp:w \__debug_chk_var_local:N +\__dim_tmp:w \__kernel_chk_var_local:N \cs_new_protected:Npn \dim_add:Nn #1#2 { \tex_advance:D #1 by \__dim_eval:w #2 \__dim_eval_end: \scan_stop: } -\__dim_tmp:w \__debug_chk_var_global:N +\__dim_tmp:w \__kernel_chk_var_global:N \cs_new_protected:Npn \dim_gadd:Nn #1#2 { \tex_global:D \tex_advance:D #1 by \__dim_eval:w #2 \__dim_eval_end: \scan_stop: } \cs_generate_variant:Nn \dim_add:Nn { c } \cs_generate_variant:Nn \dim_gadd:Nn { c } -\__dim_tmp:w \__debug_chk_var_local:N +\__dim_tmp:w \__kernel_chk_var_local:N \cs_new_protected:Npn \dim_sub:Nn #1#2 { \tex_advance:D #1 by - \__dim_eval:w #2 \__dim_eval_end: \scan_stop: } -\__dim_tmp:w \__debug_chk_var_global:N +\__dim_tmp:w \__kernel_chk_var_global:N \cs_new_protected:Npn \dim_gsub:Nn #1#2 { \tex_global:D \tex_advance:D #1 by - \__dim_eval:w #2 \__dim_eval_end: \scan_stop: } \cs_generate_variant:Nn \dim_sub:Nn { c } \cs_generate_variant:Nn \dim_gsub:Nn { c } -\__debug_patch_args:nNNpn - { { \__debug_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_abs:n } } +\__kernel_patch_args:nNNpn + { { \__kernel_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_abs:n } } \cs_new:Npn \dim_abs:n #1 { \exp_after:wN \__dim_abs:N @@ -9796,10 +9816,10 @@ } \cs_new:Npn \__dim_abs:N #1 { \if_meaning:w - #1 \else: \exp_after:wN #1 \fi: } -\__debug_patch_args:nNNpn +\__kernel_patch_args:nNNpn { - { \__debug_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_max:nn } - { \__debug_chk_expr:nNnN {#2} \__dim_eval:w { } \dim_max:nn } + { \__kernel_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_max:nn } + { \__kernel_chk_expr:nNnN {#2} \__dim_eval:w { } \dim_max:nn } } \cs_new:Npn \dim_max:nn #1#2 { @@ -9809,10 +9829,10 @@ > \__dim_eval_end: } -\__debug_patch_args:nNNpn +\__kernel_patch_args:nNNpn { - { \__debug_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_min:nn } - { \__debug_chk_expr:nNnN {#2} \__dim_eval:w { } \dim_min:nn } + { \__kernel_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_min:nn } + { \__kernel_chk_expr:nNnN {#2} \__dim_eval:w { } \dim_min:nn } } \cs_new:Npn \dim_min:nn #1#2 { @@ -9834,11 +9854,11 @@ { \__dim_ratio:n {#1} / \__dim_ratio:n {#2} } \cs_new:Npn \__dim_ratio:n #1 { \__int_value:w \__dim_eval:w (#1) \__dim_eval_end: } -\__debug_patch_conditional_args:nNNpnn +\__kernel_patch_conditional_args:nNNpnn { - { \__debug_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_compare:nNn } + { \__kernel_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_compare:nNn } { \__dim_eval_end: #2 } - { \__debug_chk_expr:nNnN {#3} \__dim_eval:w { } \dim_compare:nNn } + { \__kernel_chk_expr:nNnN {#3} \__dim_eval:w { } \dim_compare:nNn } } \prg_new_conditional:Npnn \dim_compare:nNn #1#2#3 { p , T , F , TF } { @@ -9964,17 +9984,78 @@ \dim_compare:nNnF {#1} #2 {#3} { \dim_do_until:nNnn {#1} #2 {#3} {#4} } } -\__debug_patch_args:nNNpn - { { \__debug_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_eval:n } } +\__kernel_patch_args:nNNpn + { + { \__kernel_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_step_function:nnnN } + { \__kernel_chk_expr:nNnN {#2} \__dim_eval:w { } \dim_step_function:nnnN } + { \__kernel_chk_expr:nNnN {#3} \__dim_eval:w { } \dim_step_function:nnnN } + } +\cs_new:Npn \dim_step_function:nnnN #1#2#3 + { + \exp_after:wN \__dim_step:wwwN + \tex_the:D \__dim_eval:w #1 \exp_after:wN ; + \tex_the:D \__dim_eval:w #2 \exp_after:wN ; + \tex_the:D \__dim_eval:w #3 ; + } +\cs_new:Npn \__dim_step:wwwN #1; #2; #3; #4 + { + \dim_compare:nNnTF {#2} > \c_zero_dim + { \__dim_step:NnnnN > } + { + \dim_compare:nNnTF {#2} = \c_zero_dim + { + \__kernel_msg_expandable_error:nnn { kernel } { zero-step } {#4} + \use_none:nnnn + } + { \__dim_step:NnnnN < } + } + {#1} {#2} {#3} #4 + } +\cs_new:Npn \__dim_step:NnnnN #1#2#3#4#5 + { + \dim_compare:nNnF {#2} #1 {#4} + { + #5 {#2} + \exp_args:NNf \__dim_step:NnnnN + #1 { \dim_eval:n { #2 + #3 } } {#3} {#4} #5 + } + } +\cs_new_protected:Npn \dim_step_inline:nnnn + { + \int_gincr:N \g__prg_map_int + \exp_args:NNc \__dim_step:NNnnnn + \cs_gset_protected:Npn + { __prg_map_ \int_use:N \g__prg_map_int :w } + } +\cs_new_protected:Npn \dim_step_variable:nnnNn #1#2#3#4#5 + { + \int_gincr:N \g__prg_map_int + \exp_args:NNc \__dim_step:NNnnnn + \cs_gset_protected:Npx + { __prg_map_ \int_use:N \g__prg_map_int :w } + {#1}{#2}{#3} + { + \tl_set:Nn \exp_not:N #4 {##1} + \exp_not:n {#5} + } + } +\cs_new_protected:Npn \__dim_step:NNnnnn #1#2#3#4#5#6 + { + #1 #2 ##1 {#6} + \dim_step_function:nnnN {#3} {#4} {#5} #2 + \__prg_break_point:Nn \scan_stop: { \int_gdecr:N \g__prg_map_int } + } +\__kernel_patch_args:nNNpn + { { \__kernel_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_eval:n } } \cs_new:Npn \dim_eval:n #1 { \dim_use:N \__dim_eval:w #1 \__dim_eval_end: } -\__debug_patch_args:nNNpn - { { \__debug_chk_expr:nNnN {#1} \__dim_eval:w { } \__dim_eval:n } } +\__kernel_patch_args:nNNpn + { { \__kernel_chk_expr:nNnN {#1} \__dim_eval:w { } \__dim_eval:n } } \cs_new:Npn \__dim_eval:n #1 { \__dim_eval:w #1 \__dim_eval_end: } \cs_new_eq:NN \dim_use:N \tex_the:D \cs_new:Npn \dim_use:c #1 { \tex_the:D \cs:w #1 \cs_end: } -\__debug_patch_args:nNNpn - { { \__debug_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_to_decimal:n } } +\__kernel_patch_args:nNNpn + { { \__kernel_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_to_decimal:n } } \cs_new:Npn \dim_to_decimal:n #1 { \exp_after:wN @@ -9992,8 +10073,8 @@ } \cs_new:Npn \dim_to_decimal_in_bp:n #1 { \dim_to_decimal:n { ( #1 ) * 800 / 803 } } -\__debug_patch_args:nNNpn - { { \__debug_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_to_decimal_in_sp:n } } +\__kernel_patch_args:nNNpn + { { \__kernel_chk_expr:nNnN {#1} \__dim_eval:w { } \dim_to_decimal_in_sp:n } } \cs_new:Npn \dim_to_decimal_in_sp:n #1 { \int_eval:n { \__dim_eval:w #1 \__dim_eval_end: } } \cs_new:Npn \dim_to_decimal_in_unit:nn #1#2 @@ -10024,16 +10105,16 @@ \cs:w newskip \cs_end: #1 } \cs_generate_variant:Nn \skip_new:N { c } -\__debug_patch:nnNNpn { \__debug_chk_var_scope:NN c #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_scope:NN c #1 } { } \cs_new_protected:Npn \skip_const:Nn #1#2 { \skip_new:N #1 \tex_global:D #1 ~ \skip_eval:n {#2} \scan_stop: } \cs_generate_variant:Nn \skip_const:Nn { c } -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \skip_zero:N #1 { #1 \c_zero_skip } -\__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \skip_gzero:N #1 { \tex_global:D #1 \c_zero_skip } \cs_generate_variant:Nn \skip_zero:N { c } \cs_generate_variant:Nn \skip_gzero:N { c } @@ -10049,16 +10130,16 @@ { TF , T , F , p } \cs_set_protected:Npn \__dim_tmp:w #1#2#3 { - \__debug_patch_args:nnnNNpn + \__kernel_patch_args:nnnNNpn { #1 ##1 } { } - { {##1} { \__debug_chk_expr:nNnN {##2} \etex_glueexpr:D { } #3 } } + { {##1} { \__kernel_chk_expr:nNnN {##2} \etex_glueexpr:D { } #3 } } #2 #3 } -\__dim_tmp:w \__debug_chk_var_local:N +\__dim_tmp:w \__kernel_chk_var_local:N \cs_new_protected:Npn \skip_set:Nn #1#2 { #1 ~ \etex_glueexpr:D #2 \scan_stop: } -\__dim_tmp:w \__debug_chk_var_global:N +\__dim_tmp:w \__kernel_chk_var_global:N \cs_new_protected:Npn \skip_gset:Nn #1#2 { \tex_global:D #1 ~ \etex_glueexpr:D #2 \scan_stop: } \cs_generate_variant:Nn \skip_set:Nn { c } @@ -10067,18 +10148,18 @@ \cs_generate_variant:Nn \skip_set_eq:NN { c , Nc , cc } \cs_new_protected:Npn \skip_gset_eq:NN #1#2 { \tex_global:D #1 = #2 } \cs_generate_variant:Nn \skip_gset_eq:NN { c , Nc , cc } -\__dim_tmp:w \__debug_chk_var_local:N +\__dim_tmp:w \__kernel_chk_var_local:N \cs_new_protected:Npn \skip_add:Nn #1#2 { \tex_advance:D #1 by \etex_glueexpr:D #2 \scan_stop: } -\__dim_tmp:w \__debug_chk_var_global:N +\__dim_tmp:w \__kernel_chk_var_global:N \cs_new_protected:Npn \skip_gadd:Nn #1#2 { \tex_global:D \tex_advance:D #1 by \etex_glueexpr:D #2 \scan_stop: } \cs_generate_variant:Nn \skip_add:Nn { c } \cs_generate_variant:Nn \skip_gadd:Nn { c } -\__dim_tmp:w \__debug_chk_var_local:N +\__dim_tmp:w \__kernel_chk_var_local:N \cs_new_protected:Npn \skip_sub:Nn #1#2 { \tex_advance:D #1 by - \etex_glueexpr:D #2 \scan_stop: } -\__dim_tmp:w \__debug_chk_var_global:N +\__dim_tmp:w \__kernel_chk_var_global:N \cs_new_protected:Npn \skip_gsub:Nn #1#2 { \tex_global:D \tex_advance:D #1 by - \etex_glueexpr:D #2 \scan_stop: } \cs_generate_variant:Nn \skip_sub:Nn { c } @@ -10095,10 +10176,10 @@ } \cs_set_protected:Npn \__dim_tmp:w #1 { - \__debug_patch_conditional_args:nNNpnn + \__kernel_patch_conditional_args:nNNpnn { { - \__debug_chk_expr:nNnN + \__kernel_chk_expr:nNnN {##1} \etex_glueexpr:D { } \skip_if_finite:n } } @@ -10111,20 +10192,20 @@ \cs_new:Npn \__skip_if_finite:wwNw ##1 #1 ##2 ; ##3 ##4 \q_stop {##3} } \exp_args:No \__dim_tmp:w { \tl_to_str:n { fil } } -\__debug_patch_args:nNNpn - { { \__debug_chk_expr:nNnN {#1} \etex_glueexpr:D { } \skip_eval:n } } +\__kernel_patch_args:nNNpn + { { \__kernel_chk_expr:nNnN {#1} \etex_glueexpr:D { } \skip_eval:n } } \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 \cs_new:Npn \skip_use:c #1 { \tex_the:D \cs:w #1 \cs_end: } \cs_new_eq:NN \skip_horizontal:N \tex_hskip:D -\__debug_patch_args:nNNpn - { { \__debug_chk_expr:nNnN {#1} \etex_glueexpr:D { } \skip_horizontal:n } } +\__kernel_patch_args:nNNpn + { { \__kernel_chk_expr:nNnN {#1} \etex_glueexpr:D { } \skip_horizontal:n } } \cs_new:Npn \skip_horizontal:n #1 { \skip_horizontal:N \etex_glueexpr:D #1 \scan_stop: } \cs_new_eq:NN \skip_vertical:N \tex_vskip:D -\__debug_patch_args:nNNpn - { { \__debug_chk_expr:nNnN {#1} \etex_glueexpr:D { } \skip_vertical:n } } +\__kernel_patch_args:nNNpn + { { \__kernel_chk_expr:nNnN {#1} \etex_glueexpr:D { } \skip_vertical:n } } \cs_new:Npn \skip_vertical:n #1 { \skip_vertical:N \etex_glueexpr:D #1 \scan_stop: } \cs_generate_variant:Nn \skip_horizontal:N { c } @@ -10149,17 +10230,17 @@ \cs:w newmuskip \cs_end: #1 } \cs_generate_variant:Nn \muskip_new:N { c } -\__debug_patch:nnNNpn { \__debug_chk_var_scope:NN c #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_scope:NN c #1 } { } \cs_new_protected:Npn \muskip_const:Nn #1#2 { \muskip_new:N #1 \tex_global:D #1 ~ \muskip_eval:n {#2} \scan_stop: } \cs_generate_variant:Nn \muskip_const:Nn { c } -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \muskip_zero:N #1 { #1 \c_zero_muskip } -\__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \muskip_gzero:N #1 { \tex_global:D #1 \c_zero_muskip } \cs_generate_variant:Nn \muskip_zero:N { c } @@ -10176,52 +10257,52 @@ { TF , T , F , p } \cs_set_protected:Npn \__dim_tmp:w #1#2#3 { - \__debug_patch_args:nnnNNpn + \__kernel_patch_args:nnnNNpn { #1 ##1 } { } { {##1} { - \__debug_chk_expr:nNnN {##2} + \__kernel_chk_expr:nNnN {##2} \etex_muexpr:D { \etex_mutoglue:D } #3 } } #2 #3 } -\__dim_tmp:w \__debug_chk_var_local:N +\__dim_tmp:w \__kernel_chk_var_local:N \cs_new_protected:Npn \muskip_set:Nn #1#2 { #1 ~ \etex_muexpr:D #2 \scan_stop: } -\__dim_tmp:w \__debug_chk_var_global:N +\__dim_tmp:w \__kernel_chk_var_global:N \cs_new_protected:Npn \muskip_gset:Nn #1#2 { \tex_global:D #1 ~ \etex_muexpr:D #2 \scan_stop: } \cs_generate_variant:Nn \muskip_set:Nn { c } \cs_generate_variant:Nn \muskip_gset:Nn { c } -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \muskip_set_eq:NN #1#2 { #1 = #2 } \cs_generate_variant:Nn \muskip_set_eq:NN { c , Nc , cc } -\__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \muskip_gset_eq:NN #1#2 { \tex_global:D #1 = #2 } \cs_generate_variant:Nn \muskip_gset_eq:NN { c , Nc , cc } -\__dim_tmp:w \__debug_chk_var_local:N +\__dim_tmp:w \__kernel_chk_var_local:N \cs_new_protected:Npn \muskip_add:Nn #1#2 { \tex_advance:D #1 by \etex_muexpr:D #2 \scan_stop: } -\__dim_tmp:w \__debug_chk_var_global:N +\__dim_tmp:w \__kernel_chk_var_global:N \cs_new_protected:Npn \muskip_gadd:Nn #1#2 { \tex_global:D \tex_advance:D #1 by \etex_muexpr:D #2 \scan_stop: } \cs_generate_variant:Nn \muskip_add:Nn { c } \cs_generate_variant:Nn \muskip_gadd:Nn { c } -\__dim_tmp:w \__debug_chk_var_local:N +\__dim_tmp:w \__kernel_chk_var_local:N \cs_new_protected:Npn \muskip_sub:Nn #1#2 { \tex_advance:D #1 by - \etex_muexpr:D #2 \scan_stop: } -\__dim_tmp:w \__debug_chk_var_global:N +\__dim_tmp:w \__kernel_chk_var_global:N \cs_new_protected:Npn \muskip_gsub:Nn #1#2 { \tex_global:D \tex_advance:D #1 by - \etex_muexpr:D #2 \scan_stop: } \cs_generate_variant:Nn \muskip_sub:Nn { c } \cs_generate_variant:Nn \muskip_gsub:Nn { c } -\__debug_patch_args:nNNpn +\__kernel_patch_args:nNNpn { { - \__debug_chk_expr:nNnN {#1} \etex_muexpr:D + \__kernel_chk_expr:nNnN {#1} \etex_muexpr:D { \etex_mutoglue:D } \muskip_eval:n } } @@ -10243,7 +10324,7 @@ \muskip_new:N \l_tmpb_muskip \muskip_new:N \g_tmpa_muskip \muskip_new:N \g_tmpb_muskip -%% File: l3keys.dtx Copyright (C) 2006-2017 The LaTeX3 Project +%% File: l3keys.dtx Copyright (C) 2006-2018 The LaTeX3 Project \tl_new:N \l__keyval_key_tl \tl_new:N \l__keyval_value_tl \tl_new:N \l__keyval_sanitise_tl @@ -10346,7 +10427,7 @@ } \else: \cs_set:Npn \__keyval_action: - { \__msg_kernel_error:nn { kernel } { misplaced-equals-sign } } + { \__kernel_msg_error:nn { kernel } { misplaced-equals-sign } } \fi: \fi: \__keyval_action: @@ -10361,13 +10442,13 @@ } \cs_new:Npn \__keyval_action: { } \cs_new_protected:Npn \__keyval_empty_key: - { \__msg_kernel_error:nn { kernel } { misplaced-equals-sign } } + { \__kernel_msg_error:nn { kernel } { misplaced-equals-sign } } \cs_new_protected:Npn \__keyval_def:Nn #1#2 { \tl_set:Nx #1 { \__tl_trim_spaces:nn {#2} \__keyval_def_aux:n } } \cs_new:Npn \__keyval_def_aux:n #1 { \exp_after:wN \__keyval_def_aux:w #1 \q_stop } \cs_new:Npn \__keyval_def_aux:w #1 \q_stop { \exp_not:n {#1} } -\__msg_kernel_new:nnnn { kernel } { misplaced-equals-sign } +\__kernel_msg_new:nnnn { kernel } { misplaced-equals-sign } { Misplaced~equals~sign~in~key-value~input~\msg_line_number: } { LaTeX~is~attempting~to~parse~some~key-value~input~but~found~ @@ -10422,7 +10503,7 @@ { \tl_if_empty:NF \l__keys_property_tl { - \__msg_kernel_error:nnxx { kernel } { property-unknown } + \__kernel_msg_error:nnxx { kernel } { property-unknown } { \l__keys_property_tl } { \l_keys_path_tl } } } @@ -10437,7 +10518,7 @@ \tl_if_blank:nTF {#3} { \tl_clear:N \l__keys_property_tl - \__msg_kernel_error:nnn { kernel } { key-no-property } {#4} + \__kernel_msg_error:nnn { kernel } { key-no-property } {#4} } { \str_if_eq:nnTF {#3} { . } @@ -10476,7 +10557,7 @@ \l__keys_property_tl \q_stop { \use:c { \c__keys_props_root_tl \l__keys_property_tl } } { - \__msg_kernel_error:nnxx { kernel } + \__kernel_msg_error:nnxx { kernel } { property-requires-value } { \l__keys_property_tl } { \l_keys_path_tl } } @@ -10499,7 +10580,7 @@ { \exp_not:c { bool_ #2 set_false:N } \exp_not:N #1 } \__keys_cmd_set:nn { \l_keys_path_tl / unknown } { - \__msg_kernel_error:nnx { kernel } { boolean-values-only } + \__kernel_msg_error:nnx { kernel } { boolean-values-only } { \l_keys_key_tl } } \__keys_default_set:n { true } @@ -10515,7 +10596,7 @@ { \exp_not:c { bool_ #2 set_true:N } \exp_not:N #1 } \__keys_cmd_set:nn { \l_keys_path_tl / unknown } { - \__msg_kernel_error:nnx { kernel } { boolean-values-only } + \__kernel_msg_error:nnx { kernel } { boolean-values-only } { \l_keys_key_tl } } \__keys_default_set:n { true } @@ -10534,7 +10615,7 @@ { \exp_not:v { \c__keys_type_root_tl \__keys_parent:o \l_keys_path_tl } } { choice } { - \__msg_kernel_error:nnxx { kernel } { nested-choice-key } + \__kernel_msg_error:nnxx { kernel } { nested-choice-key } { \l_keys_path_tl } { \__keys_parent:o \l_keys_path_tl } } { \__keys_choice_make_aux:N #1 } @@ -10547,7 +10628,7 @@ \__keys_cmd_set:nn { \l_keys_path_tl } { #1 {##1} } \__keys_cmd_set:nn { \l_keys_path_tl / unknown } { - \__msg_kernel_error:nnxx { kernel } { key-choice-unknown } + \__kernel_msg_error:nnxx { kernel } { key-choice-unknown } { \l_keys_path_tl } {##1} } } @@ -10571,10 +10652,10 @@ } } } -\__debug_patch:nnNNpn +\__kernel_patch:nnNNpn { \cs_if_exist:cF { \c__keys_code_root_tl #1 } - { \__debug_log:x { Defining~key~#1~\msg_line_context: } } + { \__kernel_debug_log:x { Defining~key~#1~\msg_line_context: } } } { } \cs_new_protected:Npn \__keys_cmd_set:nn #1#2 @@ -10659,7 +10740,7 @@ } } { - \__msg_kernel_error:nnx { kernel } { property-boolean-values-only } + \__kernel_msg_error:nnx { kernel } { property-boolean-values-only } { .value_ #1 :n } } } @@ -10667,7 +10748,7 @@ { \bool_if:NF \l__keys_no_value_bool { - \__msg_kernel_error:nnxx { kernel } { value-forbidden } + \__kernel_msg_error:nnxx { kernel } { value-forbidden } { \l_keys_path_tl } { \l_keys_value_tl } \__keys_validate_cleanup:w } @@ -10676,7 +10757,7 @@ { \bool_if:NT \l__keys_no_value_bool { - \__msg_kernel_error:nnx { kernel } { value-required } + \__kernel_msg_error:nnx { kernel } { value-required } { \l_keys_path_tl } \__keys_validate_cleanup:w } @@ -11041,7 +11122,7 @@ \exp_after:wN \cs_end: \exp_after:wN { \l_keys_value_tl } } { - \__msg_kernel_error:nnxx { kernel } { key-unknown } + \__kernel_msg_error:nnxx { kernel } { key-unknown } { \l_keys_path_tl } { \l__keys_module_tl } } } @@ -11120,16 +11201,16 @@ } { } { } } -\__msg_kernel_new:nnnn { kernel } { boolean-values-only } +\__kernel_msg_new:nnnn { kernel } { boolean-values-only } { Key~'#1'~accepts~boolean~values~only. } { The~key~'#1'~only~accepts~the~values~'true'~and~'false'. } -\__msg_kernel_new:nnnn { kernel } { key-choice-unknown } +\__kernel_msg_new:nnnn { kernel } { key-choice-unknown } { Key~'#1'~accepts~only~a~fixed~set~of~choices. } { The~key~'#1'~only~accepts~predefined~values,~ and~'#2'~is~not~one~of~these. } -\__msg_kernel_new:nnnn { kernel } { key-no-property } +\__kernel_msg_new:nnnn { kernel } { key-no-property } { No~property~given~in~definition~of~key~'#1'. } { \c__msg_coding_error_text_tl @@ -11138,51 +11219,51 @@ \iow_indent:n { #1 .<property> } \\ \\ LaTeX~did~not~find~a~'.'~to~indicate~the~start~of~a~property. } -\__msg_kernel_new:nnnn { kernel } { key-unknown } +\__kernel_msg_new:nnnn { kernel } { key-unknown } { The~key~'#1'~is~unknown~and~is~being~ignored. } { The~module~'#2'~does~not~have~a~key~called~'#1'.\\ Check~that~you~have~spelled~the~key~name~correctly. } -\__msg_kernel_new:nnnn { kernel } { nested-choice-key } +\__kernel_msg_new:nnnn { kernel } { nested-choice-key } { Attempt~to~define~'#1'~as~a~nested~choice~key. } { The~key~'#1'~cannot~be~defined~as~a~choice~as~the~parent~key~'#2'~is~ itself~a~choice. } -\__msg_kernel_new:nnnn { kernel } { property-boolean-values-only } +\__kernel_msg_new:nnnn { kernel } { property-boolean-values-only } { The~property~'#1'~accepts~boolean~values~only. } { \c__msg_coding_error_text_tl The~property~'#1'~only~accepts~the~values~'true'~and~'false'. } -\__msg_kernel_new:nnnn { kernel } { property-requires-value } +\__kernel_msg_new:nnnn { kernel } { property-requires-value } { The~property~'#1'~requires~a~value. } { \c__msg_coding_error_text_tl LaTeX~was~asked~to~set~property~'#1'~for~key~'#2'.\\ No~value~was~given~for~the~property,~and~one~is~required. } -\__msg_kernel_new:nnnn { kernel } { property-unknown } +\__kernel_msg_new:nnnn { kernel } { property-unknown } { The~key~property~'#1'~is~unknown. } { \c__msg_coding_error_text_tl LaTeX~has~been~asked~to~set~the~property~'#1'~for~key~'#2':~ this~property~is~not~defined. } -\__msg_kernel_new:nnnn { kernel } { value-forbidden } +\__kernel_msg_new:nnnn { kernel } { value-forbidden } { The~key~'#1'~does~not~take~a~value. } { The~key~'#1'~should~be~given~without~a~value.\\ The~value~'#2'~was~present:~the~key~will~be~ignored. } -\__msg_kernel_new:nnnn { kernel } { value-required } +\__kernel_msg_new:nnnn { kernel } { value-required } { The~key~'#1'~requires~a~value. } { The~key~'#1'~must~have~a~value.\\ No~value~was~present:~the~key~will~be~ignored. } -\__msg_kernel_new:nnn { kernel } { show-key } +\__kernel_msg_new:nnn { kernel } { show-key } { The~key~#1~ \tl_if_empty:nTF {#2} @@ -11190,7 +11271,7 @@ { has~the~properties: #2 . } } %% File: l3fp.dtx Copyright (C) 2011-2017 The LaTeX3 Project -%% File: l3fp-aux.dtx Copyright(C) 2011-2017 The LaTeX3 Project +%% File: l3fp-aux.dtx Copyright(C) 2011-2018 The LaTeX3 Project \cs_new:Npn \__fp_use_none_stop_f:n #1 { \exp_stop_f: } \cs_new:Npn \__fp_use_s:n #1 { #1; } \cs_new:Npn \__fp_use_s:nn #1#2 { #1#2; } @@ -11201,12 +11282,11 @@ \cs_new:Npn \__fp_rrot:www #1; #2; #3; { #2; #3; #1; } \cs_new:Npn \__fp_use_i:ww #1; #2; { #1; } \cs_new:Npn \__fp_use_i:www #1; #2; #3; { #1; } +\cs_new_protected:Npn \__fp_misused:n #1 + { \__kernel_msg_error:nnx { kernel } { misused-fp } { \fp_to_tl:n {#1} } } \__scan_new:N \s__fp \cs_new_protected:Npn \__fp_chk:w #1 ; - { - \__msg_kernel_error:nnx { kernel } { misused-fp } - { \fp_to_tl:n { \s__fp \__fp_chk:w #1 ; } } - } + { \__fp_misused:n { \s__fp \__fp_chk:w #1 ; } } \__scan_new:N \s__fp_mark \__scan_new:N \s__fp_stop \__scan_new:N \s__fp_invalid @@ -11305,13 +11385,103 @@ \cs_new:Npn \__fp_exp_after_normal:Nwwwww #1 #2; 1 #3 ; 1 #4 ; 1 #5 ; 1 #6 ; { \s__fp \__fp_chk:w 1 #1 {#2} {#3} {#4} {#5} {#6} ; } -\cs_new:Npn \__fp_exp_after_array_f:w #1 +\__scan_new:N \s__fp_tuple +\cs_new_protected:Npn \__fp_tuple_chk:w #1 ; + { \__fp_misused:n { \s__fp_tuple \__fp_tuple_chk:w #1 ; } } +\tl_const:Nn \c__fp_empty_tuple_fp + { \s__fp_tuple \__fp_tuple_chk:w { } ; } +\cs_new:Npn \__fp_array_count:n #1 + { \__fp_tuple_count:w \s__fp_tuple \__fp_tuple_chk:w {#1} ; } +\cs_new:Npn \__fp_tuple_count:w \s__fp_tuple \__fp_tuple_chk:w #1 ; { - \cs:w __fp_exp_after \__fp_type_from_scan:N #1 _f:nw \cs_end: - { \__fp_exp_after_array_f:w } - #1 + \__int_value:w \__int_eval:w 0 + \__fp_tuple_count_loop:Nw #1 { ? \__prg_break: } ; + \__prg_break_point: + \__int_eval_end: + } +\cs_new:Npn \__fp_tuple_count_loop:Nw #1#2; + { \use_none:n #1 + 1 \__fp_tuple_count_loop:Nw } +\cs_new:Npn \__fp_if_type_fp:NTwFw #1 \s__fp #2 #3 \q_stop {#2} +\cs_new:Npn \__fp_array_if_all_fp:nTF #1 + { + \__fp_array_if_all_fp_loop:w #1 { \s__fp \__prg_break: } ; + \__prg_break_point: \use_i:nn + } +\cs_new:Npn \__fp_array_if_all_fp_loop:w #1#2 ; + { + \__fp_if_type_fp:NTwFw + #1 \__fp_array_if_all_fp_loop:w + \s__fp { \__prg_break:n \use_iii:nnn } + \q_stop + } +\cs_new:Npn \__fp_type_from_scan:N #1 + { + \__fp_if_type_fp:NTwFw + #1 { } + \s__fp { \__fp_type_from_scan_other:N #1 } + \q_stop + } +\cs_new:Npx \__fp_type_from_scan_other:N #1 + { + \exp_not:N \exp_after:wN \exp_not:N \__fp_type_from_scan:w + \exp_not:N \token_to_str:N #1 \exp_not:N \q_mark + \tl_to_str:n { s__fp _? } \exp_not:N \q_mark \exp_not:N \q_stop + } +\use:x + { + \cs_new:Npn \exp_not:N \__fp_type_from_scan:w + ##1 \tl_to_str:n { s__fp } ##2 \exp_not:N \q_mark ##3 \exp_not:N \q_stop + {##2} + } +\cs_new:Npn \__fp_change_func_type:NNN #1#2#3 + { + \__fp_if_type_fp:NTwFw + #1 #2 + \s__fp + { + \exp_after:wN \__fp_change_func_type_chk:NNN + \cs:w + __fp \__fp_type_from_scan_other:N #1 + \exp_after:wN \__fp_change_func_type_aux:w \token_to_str:N #2 + \cs_end: + #2 #3 + } + \q_stop + } +\exp_last_unbraced:NNNNo + \cs_new:Npn \__fp_change_func_type_aux:w #1 { \tl_to_str:n { __fp } } { } +\cs_new:Npn \__fp_change_func_type_chk:NNN #1#2#3 + { + \if_meaning:w \scan_stop: #1 + \exp_after:wN #3 \exp_after:wN #2 + \else: + \exp_after:wN #1 + \fi: + } +\cs_new:Npn \__fp_exp_after_any_f:Nnw #1 + { \cs:w __fp_exp_after \__fp_type_from_scan_other:N #1 _f:nw \cs_end: } +\cs_new:Npn \__fp_exp_after_any_f:nw #1#2 + { + \__fp_if_type_fp:NTwFw + #2 \__fp_exp_after_f:nw + \s__fp { \__fp_exp_after_any_f:Nnw #2 } + \q_stop + {#1} #2 } \cs_new_eq:NN \__fp_exp_after_stop_f:nw \use_none:nn +\cs_new:Npn \__fp_exp_after_tuple_f:nw #1 \s__fp_tuple \__fp_tuple_chk:w #2 ; + { + \exp_after:wN \s__fp_tuple + \exp_after:wN \__fp_tuple_chk:w + \exp_after:wN { + \exp:w \exp_end_continue_f:w + \__fp_exp_after_array_f:w #2 \s__fp_stop + \exp_after:wN } + \exp_after:wN ; + \exp:w \exp_end_continue_f:w #1 + } +\cs_new:Npn \__fp_exp_after_array_f:w + { \__fp_exp_after_any_f:nw { \__fp_exp_after_array_f:w } } \int_const:Nn \c__fp_leading_shift_int { - 5 0000 } \int_const:Nn \c__fp_middle_shift_int { 5 0000 * 9999 } \int_const:Nn \c__fp_trailing_shift_int { 5 0000 * 10000 } @@ -11462,15 +11632,6 @@ \exp_after:wN \use_ii:nn \fi: } -\cs_new:Npn \__fp_array_count:n #1 - { - \__int_value:w \__int_eval:w 0 - \__fp_array_count_loop:Nw #1 { ? \__prg_break: } ; - \__prg_break_point: - \__int_eval_end: - } -\cs_new:Npn \__fp_array_count_loop:Nw #1#2; - { \use_none:n #1 + 1 \__fp_array_count_loop:Nw } \cs_new:Npn \__fp_expand:n #1 { \__fp_expand_loop:nwnN { } @@ -11484,12 +11645,17 @@ #2 \s__fp_mark { #3 #1 } #4 } -\__msg_kernel_new:nnnn { kernel } { misused-fp } +\cs_new:Npn \__fp_func_to_name:N #1 + { \exp_last_unbraced:Nf \__fp_func_to_name_aux:w { \cs_to_str:N #1 } X } +\cs_set_protected:Npn \__fp_tmp:w #1 #2 + { \cs_new:Npn \__fp_func_to_name_aux:w ##1 #1 ##2 #2 ##3 X {##2} } +\exp_args:Nff \__fp_tmp:w { \tl_to_str:n { __fp_ } } { \tl_to_str:n { _o: } } +\__kernel_msg_new:nnnn { kernel } { misused-fp } { A~floating~point~with~value~'#1'~was~misused. } { To~obtain~the~value~of~a~floating~point~variable,~use~ '\token_to_str:N \fp_to_decimal:N',~ - '\token_to_str:N \fp_to_scientific:N',~or~other~ + '\token_to_str:N \fp_to_tl:N',~or~other~ conversion~functions. } %% File: l3fp-traps.dtx Copyright (C) 2011-2014,2016,2017 The LaTeX3 Project @@ -11505,11 +11671,11 @@ { invalid_operation , division_by_zero , overflow , underflow } {#1} { - \__msg_kernel_error:nnxx { kernel } + \__kernel_msg_error:nnxx { kernel } { unknown-fpu-trap-type } {#1} {#2} } { - \__msg_kernel_error:nnx + \__kernel_msg_error:nnx { kernel } { unknown-fpu-exception } {#1} } } @@ -11620,9 +11786,9 @@ { \__fp_invalid_operation:nnw { \exp_after:wN \c_nan_fp } } \cs_generate_variant:Nn \__fp_invalid_operation_o:nw { f } \cs_new:Npn \__fp_error:nnnn - { \__msg_kernel_expandable_error:nnnnn { kernel } } + { \__kernel_msg_expandable_error:nnnnn { kernel } } \cs_generate_variant:Nn \__fp_error:nnnn { nnf, nff } -\__msg_kernel_new:nnnn { kernel } { unknown-fpu-exception } +\__kernel_msg_new:nnnn { kernel } { unknown-fpu-exception } { The~FPU~exception~'#1'~is~not~known:~ that~trap~will~never~be~triggered. @@ -11637,7 +11803,7 @@ * ~ underflow } } -\__msg_kernel_new:nnnn { kernel } { unknown-fpu-trap-type } +\__kernel_msg_new:nnnn { kernel } { unknown-fpu-trap-type } { The~FPU~trap~type~'#2'~is~not~known. } { The~trap~type~must~be~one~of \\ @@ -11648,19 +11814,21 @@ * ~ none } } -\__msg_kernel_new:nnn { kernel } { fp-flow } +\__kernel_msg_new:nnn { kernel } { fp-flow } { An ~ #3 ~ occurred. } -\__msg_kernel_new:nnn { kernel } { fp-flow-to } +\__kernel_msg_new:nnn { kernel } { fp-flow-to } { #1 ~ #3 ed ~ to ~ #2 . } -\__msg_kernel_new:nnn { kernel } { fp-zero-div } +\__kernel_msg_new:nnn { kernel } { fp-zero-div } { Division~by~zero~in~ #1 (#2) } -\__msg_kernel_new:nnn { kernel } { fp-zero-div-ii } +\__kernel_msg_new:nnn { kernel } { fp-zero-div-ii } { Division~by~zero~in~ (#1) #3 (#2) } -\__msg_kernel_new:nnn { kernel } { fp-invalid } +\__kernel_msg_new:nnn { kernel } { fp-invalid } { Invalid~operation~ #1 (#2) } -\__msg_kernel_new:nnn { kernel } { fp-invalid-ii } +\__kernel_msg_new:nnn { kernel } { fp-invalid-ii } { Invalid~operation~ (#1) #3 (#2) } -%% File: l3fp-round.dtx Copyright(C) 2011-2017 The LaTeX3 Project +\__kernel_msg_new:nnn { kernel } { fp-unknown-type } + { Unknown~type~for~'#1' } +%% File: l3fp-round.dtx Copyright(C) 2011-2018 The LaTeX3 Project \cs_new:Npn \__fp_parse_word_trunc:N { \__fp_parse_function:NNN \__fp_round_o:Nw \__fp_round_to_zero:NNN } \cs_new:Npn \__fp_parse_word_floor:N @@ -11684,14 +11852,13 @@ \__fp_round_o:Nw \__fp_round_to_nearest:NNN #1 #2 } -\__debug:TF +\__kernel_debug:TF { - \tl_gput_right:Nn \g__debug_deprecation_on_tl + \__kernel_deprecation_code:nn { \cs_set_eq:NN \__fp_parse_round:Nw \__fp_parse_round_deprecation_error:Nw } - \tl_gput_right:Nn \g__debug_deprecation_off_tl { \cs_set_eq:NN \__fp_parse_round:Nw \__fp_parse_round_no_error:Nw @@ -11830,7 +11997,13 @@ } \cs_new_eq:NN \__fp_round_to_nearest_pinf_neg:NNN \__fp_round_to_nearest_ninf:NNN \cs_new_eq:NN \__fp_round_neg:NNN \__fp_round_to_nearest_neg:NNN -\cs_new:Npn \__fp_round_o:Nw #1#2 @ +\cs_new:Npn \__fp_round_o:Nw #1 + { + \__fp_parse_function_all_fp_o:fnw + { \__fp_round_name_from_cs:N #1 } + { \__fp_round_aux_o:Nw #1 } + } +\cs_new:Npn \__fp_round_aux_o:Nw #1#2 @ { \if_case:w \__int_eval:w \__fp_array_count:n {#2} \__int_eval_end: @@ -11969,9 +12142,8 @@ \exp_after:wN \__fp_exp_after_o:w \exp:w \exp_end_continue_f:w \__fp_sanitize:Nw #1#2; {1000}{0000}{0000}{0000}; } -%% File: l3fp-parse.dtx Copyright (C) 2011-2017 The LaTeX3 Project -\int_const:Nn \c__fp_prec_funcii_int { 16 } -\int_const:Nn \c__fp_prec_func_int { 15 } +%% File: l3fp-parse.dtx Copyright (C) 2011-2018 The LaTeX3 Project +\int_const:Nn \c__fp_prec_func_int { 16 } \int_const:Nn \c__fp_prec_hatii_int { 14 } \int_const:Nn \c__fp_prec_hat_int { 13 } \int_const:Nn \c__fp_prec_not_int { 12 } @@ -11983,23 +12155,11 @@ \int_const:Nn \c__fp_prec_quest_int { 4 } \int_const:Nn \c__fp_prec_colon_int { 3 } \int_const:Nn \c__fp_prec_comma_int { 2 } -\int_const:Nn \c__fp_prec_paren_int { 1 } +\int_const:Nn \c__fp_prec_tuple_int { 1 } \int_const:Nn \c__fp_prec_end_int { 0 } \cs_new:Npn \__fp_parse_expand:w #1 { \exp_end_continue_f:w #1 } \cs_new:Npn \__fp_parse_return_semicolon:w #1 \fi: \__fp_parse_expand:w { \fi: ; #1 } -\cs_new:Npx \__fp_type_from_scan:N #1 - { - \exp_not:N \exp_after:wN \exp_not:N \__fp_type_from_scan:w - \exp_not:N \token_to_str:N #1 \exp_not:N \q_mark - \tl_to_str:n { s__fp _? } \exp_not:N \q_mark \exp_not:N \q_stop - } -\use:x - { - \cs_new:Npn \exp_not:N \__fp_type_from_scan:w - ##1 \tl_to_str:n { s__fp } ##2 \exp_not:N \q_mark ##3 \exp_not:N \q_stop - {##2} - } \cs_set_protected:Npn \__fp_tmp:w #1 #2 #3 { \cs_new:cpn { __fp_parse_digits_ #1 :N } ##1 @@ -12044,23 +12204,35 @@ \fi: #1 #2 } -\cs_new:Npn \__fp_parse_one_fp:NN #1#2 +\cs_new:Npn \__fp_parse_one_fp:NN #1 { - \cs:w __fp_exp_after \__fp_type_from_scan:N #2 _f:nw \cs_end: + \__fp_exp_after_any_f:nw { \exp_after:wN \__fp_parse_infix:NN \exp_after:wN #1 \exp:w \__fp_parse_expand:w } - #2 } \cs_new:Npn \__fp_exp_after_mark_f:nw #1 { - \__msg_kernel_expandable_error:nn { kernel } { fp-early-end } - \exp_after:wN \c_nan_fp \exp:w \exp_end_continue_f:w #1 + \int_case:nnF { \exp_after:wN \use_i:nnn \use_none:nnn #1 } + { + \c__fp_prec_comma_int { } + \c__fp_prec_tuple_int { } + \c__fp_prec_end_int + { + \exp_after:wN \c__fp_empty_tuple_fp + \exp:w \exp_end_continue_f:w + } + } + { + \__kernel_msg_expandable_error:nn { kernel } { fp-early-end } + \exp_after:wN \c_nan_fp \exp:w \exp_end_continue_f:w + } + #1 } \cs_new:cpn { __fp_exp_after_?_f:nw } #1#2 { - \__msg_kernel_expandable_error:nnn { kernel } { bad-variable } {#2} + \__kernel_msg_expandable_error:nnn { kernel } { bad-variable } {#2} \exp_after:wN \c_nan_fp \exp:w \exp_end_continue_f:w #1 } \cs_set_protected:Npn \__fp_tmp:w #1 @@ -12073,9 +12245,9 @@ \str_if_eq:nnTF {##2} { \protect } { \cs_if_eq:NNTF ##2 #1 { \use_i:nn } { \use:n } - { \__msg_kernel_expandable_error:nnn { kernel } { fp-robust-cmd } } + { \__kernel_msg_expandable_error:nnn { kernel } { fp-robust-cmd } } } - { \__msg_kernel_expandable_error:nnn { kernel } { bad-variable } {##2} } + { \__kernel_msg_expandable_error:nnn { kernel } { bad-variable } {##2} } } } } @@ -12174,7 +12346,7 @@ { \cs_if_exist_use:cF { __fp_parse_caseless_ \str_fold_case:n {#2} :N } { - \__msg_kernel_expandable_error:nnn + \__kernel_msg_expandable_error:nnn { kernel } { unknown-fp-word } {#2} \exp_after:wN \c_nan_fp \exp:w \exp_end_continue_f:w \__fp_parse_infix:NN @@ -12213,13 +12385,13 @@ { \cs_if_exist:cTF { __fp_parse_infix_ \token_to_str:N #1 :N } { - \__msg_kernel_expandable_error:nnn + \__kernel_msg_expandable_error:nnn { kernel } { fp-missing-number } {#1} \exp_after:wN \c_nan_fp \exp:w \exp_end_continue_f:w \__fp_parse_infix:NN #3 #1 } { - \__msg_kernel_expandable_error:nnn + \__kernel_msg_expandable_error:nnn { kernel } { fp-unknown-symbol } {#1} \__fp_parse_one:Nw #3 } @@ -12556,12 +12728,12 @@ \__str_if_eq_x:nn { \s__fp } { \exp_not:N #1 } = 0 \exp_stop_f: 0 - \__msg_kernel_expandable_error:nnn + \__kernel_msg_expandable_error:nnn { kernel } { fp-after-e } { floating~point~ } \prg_return_true: \else: 0 - \__msg_kernel_expandable_error:nnn + \__kernel_msg_expandable_error:nnn { kernel } { bad-variable } {#1} \prg_return_false: \fi: @@ -12572,24 +12744,52 @@ \__int_value:w #1 \else: 0 - \__msg_kernel_expandable_error:nnn + \__kernel_msg_expandable_error:nnn { kernel } { fp-after-e } { dimension~#1 } \fi: \prg_return_false: \fi: \else: 0 - \__msg_kernel_expandable_error:nnn + \__kernel_msg_expandable_error:nnn { kernel } { fp-missing } { exponent } \prg_return_true: \fi: } \cs_new_eq:cN { __fp_parse_prefix_+:Nw } \__fp_parse_one:Nw +\cs_new:Npn \__fp_parse_apply_function:NNNwN #1#2#3#4@#5 + { + #3 #2 #4 @ + \exp:w \exp_end_continue_f:w #5 #1 + } \cs_new:Npn \__fp_parse_apply_unary:NNNwN #1#2#3#4@#5 { + \__fp_parse_apply_unary_chk:NwNw #4 @ ; . \q_stop + \__fp_parse_apply_unary_type:NNN #3 #2 #4 @ \exp:w \exp_end_continue_f:w #5 #1 } +\cs_new:Npn \__fp_parse_apply_unary_chk:NwNw #1#2 ; #3#4 \q_stop + { + \if_meaning:w @ #3 \else: + \token_if_eq_meaning:NNTF . #3 + { \__fp_parse_apply_unary_chk:nNNNNw { no } } + { \__fp_parse_apply_unary_chk:nNNNNw { multi } } + \fi: + } +\cs_new:Npn \__fp_parse_apply_unary_chk:nNNNNw #1#2#3#4#5#6 @ + { + #2 + \__fp_error:nffn { fp-#1-arg } { \__fp_func_to_name:N #4 } { } { } + \exp_after:wN #4 \exp_after:wN #5 \c_nan_fp @ + } +\cs_new:Npn \__fp_parse_apply_unary_type:NNN #1#2#3 + { + \__fp_change_func_type:NNN #3 #1 \__fp_parse_apply_unary_error:NNw + #2 #3 + } +\cs_new:Npn \__fp_parse_apply_unary_error:NNw #1#2#3 @ + { \__fp_invalid_operation_o:fw { \__fp_func_to_name:N #1 } #3 } \cs_set_protected:Npn \__fp_tmp:w #1#2#3#4 { \cs_new:cpn { __fp_parse_prefix_ #1 :Nw } ##1 @@ -12622,10 +12822,10 @@ \exp_after:wN \__fp_parse_lparen_after:NwN \exp_after:wN #1 \exp:w - \if_int_compare:w #1 = \c__fp_prec_funcii_int + \if_int_compare:w #1 = \c__fp_prec_func_int \__fp_parse_operand:Nw \c__fp_prec_comma_int \else: - \__fp_parse_operand:Nw \c__fp_prec_paren_int + \__fp_parse_operand:Nw \c__fp_prec_tuple_int \fi: \__fp_parse_expand:w } @@ -12642,8 +12842,9 @@ \exp_not:N \__fp_parse_expand:w } { - \exp_not:N \__msg_kernel_expandable_error:nnn + \exp_not:N \__kernel_msg_expandable_error:nnn { kernel } { fp-missing } { ) } + \exp_not:N \tl_if_empty:nT {#2} \exp_not:N \c__fp_empty_tuple_fp #2 @ \exp_not:N \use_none:n #3 } @@ -12652,9 +12853,14 @@ { \if_int_compare:w #1 = \c__fp_prec_comma_int \else: - \__msg_kernel_expandable_error:nnn - { kernel } { fp-missing-number } { ) } - \exp_after:wN \c_nan_fp \exp:w \exp_end_continue_f:w + \if_int_compare:w #1 = \c__fp_prec_tuple_int + \exp_after:wN \c__fp_empty_tuple_fp \exp:w + \else: + \__kernel_msg_expandable_error:nnn + { kernel } { fp-missing-number } { ) } + \exp_after:wN \c_nan_fp \exp:w + \fi: + \exp_end_continue_f:w \fi: \__fp_parse_infix:NN #1 ) } @@ -12712,12 +12918,12 @@ } \cs_new:Npn \__fp_parse_function:NNN #1#2#3 { - \exp_after:wN \__fp_parse_apply_unary:NNNwN + \exp_after:wN \__fp_parse_apply_function:NNNwN \exp_after:wN #3 \exp_after:wN #2 \exp_after:wN #1 \exp:w - \__fp_parse_operand:Nw \c__fp_prec_funcii_int \__fp_parse_expand:w + \__fp_parse_operand:Nw \c__fp_prec_func_int \__fp_parse_expand:w } \cs_new:Npn \__fp_parse:n #1 { @@ -12749,52 +12955,100 @@ \exp:w } \cs_new:Npn \__fp_parse_continue:NwN #1 #2 @ #3 { #3 #1 #2 @ } -\cs_new:Npn \__fp_parse_apply_binary:NwNwN #1 #2@ #3 #4@ #5 +\cs_new:Npn \__fp_parse_apply_binary:NwNwN #1 #2#3@ #4 #5#6@ #7 { \exp_after:wN \__fp_parse_continue:NwN \exp_after:wN #1 - \exp:w \exp_end_continue_f:w \cs:w __fp_#3_o:ww \cs_end: #2 #4 - \exp:w \exp_end_continue_f:w #5 #1 + \exp:w \exp_end_continue_f:w + \exp_after:wN \__fp_parse_apply_binary_chk:NN + \cs:w + __fp + \__fp_type_from_scan:N #2 + _#4 + \__fp_type_from_scan:N #5 + _o:ww + \cs_end: + #4 + #2#3 #5#6 + \exp:w \exp_end_continue_f:w #7 #1 + } +\cs_new:Npn \__fp_parse_apply_binary_chk:NN #1#2 + { + \if_meaning:w \scan_stop: #1 + \__fp_parse_apply_binary_error:NNN #2 + \fi: + #1 + } +\cs_new:Npn \__fp_parse_apply_binary_error:NNN #1#2#3 + { + #2 + \__fp_invalid_operation_o:Nww #1 + } +\cs_new:Npn \__fp_binary_type_o:Nww #1 #2#3 ; #4 + { + \exp_after:wN \__fp_parse_apply_binary_chk:NN + \cs:w + __fp + \__fp_type_from_scan:N #2 + _ #1 + \__fp_type_from_scan:N #4 + _o:ww + \cs_end: + #1 + #2 #3 ; #4 + } +\cs_new:Npn \__fp_binary_rev_type_o:Nww #1 #2#3 ; #4#5 ; + { + \exp_after:wN \__fp_parse_apply_binary_chk:NN + \cs:w + __fp + \__fp_type_from_scan:N #4 + _ #1 + \__fp_type_from_scan:N #2 + _o:ww + \cs_end: + #1 + #4 #5 ; #2 #3 ; } \cs_new:Npn \__fp_parse_infix_after_operand:NwN #1 #2; { \__fp_exp_after_f:nw { \__fp_parse_infix:NN #1 } #2; } - \cs_new:Npn \__fp_parse_infix:NN #1 #2 - { - \if_catcode:w \scan_stop: \exp_not:N #2 - \if_int_compare:w - \__str_if_eq_x:nn { \s__fp_mark } { \exp_not:N #2 } - = 0 \exp_stop_f: - \exp_after:wN \exp_after:wN - \exp_after:wN \__fp_parse_infix_mark:NNN - \else: - \exp_after:wN \exp_after:wN - \exp_after:wN \__fp_parse_infix_juxtapose:N - \fi: +\cs_new:Npn \__fp_parse_infix:NN #1 #2 + { + \if_catcode:w \scan_stop: \exp_not:N #2 + \if_int_compare:w + \__str_if_eq_x:nn { \s__fp_mark } { \exp_not:N #2 } + = 0 \exp_stop_f: + \exp_after:wN \exp_after:wN + \exp_after:wN \__fp_parse_infix_mark:NNN \else: - \if_int_compare:w - \__int_eval:w - ( `#2 \if_int_compare:w `#2 > `Z - 32 \fi: ) / 26 - = 3 \exp_stop_f: - \exp_after:wN \exp_after:wN - \exp_after:wN \__fp_parse_infix_juxtapose:N - \else: - \exp_after:wN \__fp_parse_infix_check:NNN - \cs:w - __fp_parse_infix_ \token_to_str:N #2 :N - \exp_after:wN \exp_after:wN \exp_after:wN - \cs_end: - \fi: + \exp_after:wN \exp_after:wN + \exp_after:wN \__fp_parse_infix_mul:N \fi: - #1 - #2 - } + \else: + \if_int_compare:w + \__int_eval:w + ( `#2 \if_int_compare:w `#2 > `Z - 32 \fi: ) / 26 + = 3 \exp_stop_f: + \exp_after:wN \exp_after:wN + \exp_after:wN \__fp_parse_infix_mul:N + \else: + \exp_after:wN \__fp_parse_infix_check:NNN + \cs:w + __fp_parse_infix_ \token_to_str:N #2 :N + \exp_after:wN \exp_after:wN \exp_after:wN + \cs_end: + \fi: + \fi: + #1 + #2 + } \cs_new:Npx \__fp_parse_infix_check:NNN #1#2#3 { \exp_not:N \if_meaning:w \scan_stop: #1 - \exp_not:N \__msg_kernel_expandable_error:nnn + \exp_not:N \__kernel_msg_expandable_error:nnn { kernel } { fp-missing } { * } \exp_not:N \exp_after:wN \exp_not:c { __fp_parse_infix_*:N } @@ -12815,15 +13069,15 @@ { \cs_new:Npn #1 ##1 { - \if_int_compare:w ##1 < \c__fp_prec_paren_int - \__msg_kernel_expandable_error:nnn { kernel } { fp-extra } { ) } - \exp_after:wN \__fp_parse_infix:NN - \exp_after:wN ##1 - \exp:w \exp_after:wN \__fp_parse_expand:w - \else: + \if_int_compare:w ##1 > \c__fp_prec_end_int \exp_after:wN @ \exp_after:wN \use_none:n \exp_after:wN #1 + \else: + \__kernel_msg_expandable_error:nnn { kernel } { fp-extra } { ) } + \exp_after:wN \__fp_parse_infix:NN + \exp_after:wN ##1 + \exp:w \exp_after:wN \__fp_parse_expand:w \fi: } } @@ -12838,10 +13092,15 @@ \exp_after:wN #1 \else: \if_int_compare:w ##1 < \c__fp_prec_comma_int - \__fp_parse_infix_comma_error:w + \exp_after:wN @ + \exp_after:wN \__fp_parse_apply_comma:NwNwN + \exp_after:wN , + \exp:w + \else: + \exp_after:wN \__fp_parse_infix_comma:w + \exp:w \fi: - \exp_after:wN \__fp_parse_infix_comma:w - \exp:w \__fp_parse_operand:Nw \c__fp_prec_comma_int + \__fp_parse_operand:Nw \c__fp_prec_comma_int \exp_after:wN \__fp_parse_expand:w \fi: } @@ -12849,28 +13108,15 @@ \exp_args:Nc \__fp_tmp:w { __fp_parse_infix_,:N } \cs_new:Npn \__fp_parse_infix_comma:w #1 @ { #1 @ \use_none:n } -\cs_new:Npn \__fp_parse_infix_comma_error:w #1 \exp:w - { - \fi: - \__msg_kernel_expandable_error:nn { kernel } { fp-extra-comma } - \exp_after:wN @ - \exp_after:wN \__fp_parse_apply_binary:NwNwN - \exp_after:wN , - \exp:w - } -\cs_set_protected:Npn \__fp_tmp:w #1 +\cs_new:Npn \__fp_parse_apply_comma:NwNwN #1 #2@ #3 #4@ #5 { - \cs_new:Npn #1 ##1 - { - \if_meaning:w \s__fp ##1 - \exp_after:wN \__fp_use_i_until_s:nw - \exp_after:wN #1 - \fi: - \exp_after:wN \c_nan_fp - ##1 - } + \exp_after:wN \__fp_parse_continue:NwN + \exp_after:wN #1 + \exp:w \exp_end_continue_f:w + \__fp_exp_after_tuple_f:nw { } + \s__fp_tuple \__fp_tuple_chk:w { #2 #4 } ; + #5 #1 } -\exp_args:Nc \__fp_tmp:w { __fp_,_o:ww } \cs_set_protected:Npn \__fp_tmp:w #1#2#3#4 { \cs_new:Npn #1 ##1 @@ -12904,32 +13150,7 @@ \exp_args:Nc \__fp_tmp:w { __fp_parse_infix_or:N } | \c__fp_prec_or_int \c__fp_prec_or_int \cs_new:cpn { __fp_parse_infix_(:N } #1 - { \__fp_parse_infix_juxtapose:N #1 ( } -\cs_new:Npn \__fp_parse_infix_juxtapose:N #1 - { - \if_int_compare:w #1 < \c__fp_prec_times_int - \exp_after:wN @ - \exp_after:wN \__fp_parse_apply_juxtapose:NwwN - \exp:w - \__fp_parse_operand:Nw \c__fp_prec_times_int - \exp_after:wN \__fp_parse_expand:w - \else: - \exp_after:wN @ - \exp_after:wN \use_none:n - \exp_after:wN \__fp_parse_infix_juxtapose:N - \fi: - } -\cs_new:Npn \__fp_parse_apply_juxtapose:NwwN #1 #2;#3@ #4;#5@ - { - \if_catcode:w ^ \tl_to_str:n { #3 #5 } ^ - \else: - \__fp_error:nffn { fp-invalid-ii } - { \__fp_array_to_clist:n { #2; #3 } } - { \__fp_array_to_clist:n { #4; #5 } } - { } - \fi: - \__fp_parse_apply_binary:NwNwN #1 #2;@ * #4;@ - } + { \__fp_parse_infix_mul:N #1 ( } \cs_set_protected:Npn \__fp_tmp:w #1 { \cs_new:cpn { __fp_parse_infix_*:N } ##1##2 @@ -12985,7 +13206,7 @@ \exp_args:Nc \__fp_tmp:w { __fp_parse_infix_::N } \__fp_ternary_auxii:NwwN \c__fp_prec_colon_int { - \__msg_kernel_expandable_error:nnnn + \__kernel_msg_expandable_error:nnnn { kernel } { fp-missing } { ? } { ~for~?: } } \cs_new:cpn { __fp_parse_infix_<:N } #1 @@ -13006,7 +13227,7 @@ } \cs_new:Npn \__fp_parse_excl_error: { - \__msg_kernel_expandable_error:nnnn + \__kernel_msg_expandable_error:nnnn { kernel } { fp-missing } { = } { ~after~!. } } \cs_new:Npn \__fp_parse_compare:NNNNNNN #1 @@ -13095,12 +13316,99 @@ } \cs_new:Npn \__fp_parse_continue_compare:NNwNN #1#2 #3@ #4#5 { #4 #2 #3@ #1 } +\cs_new:Npn \__fp_parse_function_all_fp_o:fnw #1#2#3 @ + { + \__fp_array_if_all_fp:nTF {#3} + { #2 #3 @ } + { + \__fp_error:nffn { fp-bad-args } + {#1} + { \fp_to_tl:n { \s__fp_tuple \__fp_tuple_chk:w {#3} ; } } + { } + \exp_after:wN \c_nan_fp + } + } +\cs_new:Npn \__fp_parse_function_one_two:nnw #1#2#3 + { + \__fp_if_type_fp:NTwFw + #3 { } \s__fp \__fp_parse_function_one_two_error_o:w \q_stop + \__fp_parse_function_one_two_aux:nnw {#1} {#2} #3 + } +\cs_new:Npn \__fp_parse_function_one_two_error_o:w #1#2#3#4 @ + { + \__fp_error:nffn { fp-bad-args } + {#2} + { \fp_to_tl:n { \s__fp_tuple \__fp_tuple_chk:w {#4} ; } } + { } + \exp_after:wN \c_nan_fp + } +\cs_new:Npn \__fp_parse_function_one_two_aux:nnw #1#2 #3; #4 + { + \__fp_if_type_fp:NTwFw + #4 { } + \s__fp + { + \if_meaning:w @ #4 + \exp_after:wN \use_iv:nnnn + \fi: + \__fp_parse_function_one_two_error_o:w + } + \q_stop + \__fp_parse_function_one_two_auxii:nnw {#1} {#2} #3; #4 + } +\cs_new:Npn \__fp_parse_function_one_two_auxii:nnw #1#2#3; #4; #5 + { + \if_meaning:w @ #5 \else: + \exp_after:wN \__fp_parse_function_one_two_error_o:w + \fi: + \use_ii:nn {#1} { \use_none:n #2 } #3; #4; #5 + } +\cs_new:Npn \__fp_tuple_map_o:nw #1 \s__fp_tuple \__fp_tuple_chk:w #2 ; + { + \exp_after:wN \s__fp_tuple + \exp_after:wN \__fp_tuple_chk:w + \exp_after:wN { + \exp:w \exp_end_continue_f:w + \__fp_tuple_map_loop_o:nw {#1} #2 + { \s__fp \__prg_break: } ; + \__prg_break_point: + \exp_after:wN } \exp_after:wN ; + } +\cs_new:Npn \__fp_tuple_map_loop_o:nw #1#2#3 ; + { + \use_none:n #2 + #1 #2 #3 ; + \exp:w \exp_end_continue_f:w + \__fp_tuple_map_loop_o:nw {#1} + } +\cs_new:Npn \__fp_tuple_mapthread_o:nww #1 + \s__fp_tuple \__fp_tuple_chk:w #2 ; + \s__fp_tuple \__fp_tuple_chk:w #3 ; + { + \exp_after:wN \s__fp_tuple + \exp_after:wN \__fp_tuple_chk:w + \exp_after:wN { + \exp:w \exp_end_continue_f:w + \__fp_tuple_mapthread_loop_o:nw {#1} + #2 { \s__fp \__prg_break: } ; @ + #3 { \s__fp \__prg_break: } ; + \__prg_break_point: + \exp_after:wN } \exp_after:wN ; + } +\cs_new:Npn \__fp_tuple_mapthread_loop_o:nw #1#2#3 ; #4 @ #5#6 ; + { + \use_none:n #2 + \use_none:n #5 + #1 #2 #3 ; #5 #6 ; + \exp:w \exp_end_continue_f:w + \__fp_tuple_mapthread_loop_o:nw {#1} #4 @ + } \cs_new:Npn \fp_function:Nw #1 { \exp_after:wN \__fp_function_apply:nw \exp_after:wN #1 \exp:w - \__fp_parse_operand:Nw \c__fp_prec_funcii_int \__fp_parse_expand:w + \__fp_parse_operand:Nw \c__fp_prec_func_int \__fp_parse_expand:w } \cs_new_protected:Npn \fp_new_function:Npn #1#2# { @@ -13120,7 +13428,7 @@ \__int_value:w #3 \exp_after:wN ; \exp_after:wN } \exp:w - \__fp_parse_operand:Nw \c__fp_prec_funcii_int \__fp_parse_expand:w + \__fp_parse_operand:Nw \c__fp_prec_func_int \__fp_parse_expand:w } \cs_new:Npn #2 #4 {#5} } @@ -13130,7 +13438,7 @@ \int_compare:nNnTF { \tl_count:n {#3} } = {#2} { #1 #3 } { - \__msg_kernel_expandable_error:nnnnn + \__kernel_msg_expandable_error:nnnnn { kernel } { fp-num-args } { #1() } {#2} {#2} \c_nan_fp } @@ -13152,32 +13460,96 @@ \cs_new:Npn \__fp_function_store_end:wnnn #1 \s__fp_stop #2#3#4 { #4 {#2} } -\__msg_kernel_new:nnn { kernel } { fp-deprecated } +\__kernel_msg_new:nnn { kernel } { fp-deprecated } { '#1'~deprecated;~use~'#2' } -\__msg_kernel_new:nnn { kernel } { unknown-fp-word } +\__kernel_msg_new:nnn { kernel } { unknown-fp-word } { Unknown~fp~word~#1. } -\__msg_kernel_new:nnn { kernel } { fp-missing } +\__kernel_msg_new:nnn { kernel } { fp-missing } { Missing~#1~inserted #2. } -\__msg_kernel_new:nnn { kernel } { fp-extra } +\__kernel_msg_new:nnn { kernel } { fp-extra } { Extra~#1~ignored. } -\__msg_kernel_new:nnn { kernel } { fp-early-end } +\__kernel_msg_new:nnn { kernel } { fp-early-end } { Premature~end~in~fp~expression. } -\__msg_kernel_new:nnn { kernel } { fp-after-e } +\__kernel_msg_new:nnn { kernel } { fp-after-e } { Cannot~use~#1 after~'e'. } -\__msg_kernel_new:nnn { kernel } { fp-missing-number } +\__kernel_msg_new:nnn { kernel } { fp-missing-number } { Missing~number~before~'#1'. } -\__msg_kernel_new:nnn { kernel } { fp-unknown-symbol } +\__kernel_msg_new:nnn { kernel } { fp-unknown-symbol } { Unknown~symbol~#1~ignored. } -\__msg_kernel_new:nnn { kernel } { fp-extra-comma } - { Unexpected~comma:~extra~arguments~ignored. } -\__msg_kernel_new:nnn { kernel } { fp-num-args } +\__kernel_msg_new:nnn { kernel } { fp-extra-comma } + { Unexpected~comma~turned~to~nan~result. } +\__kernel_msg_new:nnn { kernel } { fp-no-arg } + { #1~got~no~argument;~used~nan. } +\__kernel_msg_new:nnn { kernel } { fp-multi-arg } + { #1~got~more~than~one~argument;~used~nan. } +\__kernel_msg_new:nnn { kernel } { fp-num-args } { #1~expects~between~#2~and~#3~arguments. } +\__kernel_msg_new:nnn { kernel } { fp-bad-args } + { Arguments~in~#1#2~are~invalid. } \cs_if_exist:cT { @unexpandable@protect } { - \__msg_kernel_new:nnn { kernel } { fp-robust-cmd } + \__kernel_msg_new:nnn { kernel } { fp-robust-cmd } { Robust~command~#1 invalid~in~fp~expression! } } -%% File: l3fp-logic.dtx Copyright (C) 2011-2017 The LaTeX3 Project +%% File: l3fp-assign.dtx Copyright (C) 2011-2017 The LaTeX3 project +\cs_new_protected:Npn \fp_new:N #1 + { \cs_new_eq:NN #1 \c_zero_fp } +\cs_generate_variant:Nn \fp_new:N {c} +\cs_new_protected:Npn \fp_set:Nn #1#2 + { \tl_set:Nx #1 { \exp_not:f { \__fp_parse:n {#2} } } } +\cs_new_protected:Npn \fp_gset:Nn #1#2 + { \tl_gset:Nx #1 { \exp_not:f { \__fp_parse:n {#2} } } } +\cs_new_protected:Npn \fp_const:Nn #1#2 + { \tl_const:Nx #1 { \exp_not:f { \__fp_parse:n {#2} } } } +\cs_generate_variant:Nn \fp_set:Nn {c} +\cs_generate_variant:Nn \fp_gset:Nn {c} +\cs_generate_variant:Nn \fp_const:Nn {c} +\cs_new_eq:NN \fp_set_eq:NN \tl_set_eq:NN +\cs_new_eq:NN \fp_gset_eq:NN \tl_gset_eq:NN +\cs_generate_variant:Nn \fp_set_eq:NN { c , Nc , cc } +\cs_generate_variant:Nn \fp_gset_eq:NN { c , Nc , cc } +\cs_new_protected:Npn \fp_zero:N #1 { \fp_set_eq:NN #1 \c_zero_fp } +\cs_new_protected:Npn \fp_gzero:N #1 { \fp_gset_eq:NN #1 \c_zero_fp } +\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 + { \fp_if_exist:NTF #1 { \fp_zero:N #1 } { \fp_new:N #1 } } +\cs_new_protected:Npn \fp_gzero_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:Npn \fp_add:Nn { \__fp_add:NNNn \fp_set:Nn + } +\cs_new_protected:Npn \fp_gadd:Nn { \__fp_add:NNNn \fp_gset:Nn + } +\cs_new_protected:Npn \fp_sub:Nn { \__fp_add:NNNn \fp_set:Nn - } +\cs_new_protected:Npn \fp_gsub:Nn { \__fp_add:NNNn \fp_gset:Nn - } +\cs_new_protected:Npn \__fp_add:NNNn #1#2#3#4 + { #1 #3 { #3 #2 \__fp_parse:n {#4} } } +\cs_generate_variant:Nn \fp_add:Nn { c } +\cs_generate_variant:Nn \fp_gadd:Nn { c } +\cs_generate_variant:Nn \fp_sub:Nn { c } +\cs_generate_variant:Nn \fp_gsub:Nn { c } +\cs_new_protected:Npn \fp_show:N { \__fp_show:NN \tl_show:n } +\cs_generate_variant:Nn \fp_show:N { c } +\cs_new_protected:Npn \fp_log:N { \__fp_show:NN \tl_log:n } +\cs_generate_variant:Nn \fp_log:N { c } +\cs_new_protected:Npn \__fp_show:NN #1#2 + { + \__kernel_check_defined:NT #2 + { \exp_args:Nx #1 { \token_to_str:N #2 = \fp_to_tl:N #2 } } + } +\cs_new_protected:Npn \fp_show:n + { \msg_show_eval:Nn \fp_to_tl:n } +\cs_new_protected:Npn \fp_log:n + { \msg_log_eval:Nn \fp_to_tl:n } +\fp_const:Nn \c_e_fp { 2.718 2818 2845 9045 } +\fp_const:Nn \c_one_fp { 1 } +\fp_const:Nn \c_pi_fp { 3.141 5926 5358 9793 } +\fp_const:Nn \c_one_degree_fp { 0.0 1745 3292 5199 4330 } +\fp_new:N \l_tmpa_fp +\fp_new:N \l_tmpb_fp +\fp_new:N \g_tmpa_fp +\fp_new:N \g_tmpb_fp +%% File: l3fp-logic.dtx Copyright (C) 2011-2018 The LaTeX3 Project \cs_new:Npn \__fp_parse_word_max:N { \__fp_parse_function:NNN \__fp_minmax_o:Nw 2 } \cs_new:Npn \__fp_parse_word_min:N @@ -13335,7 +13707,7 @@ } { \token_if_eq_meaning:NNTF #2 0 - { \__msg_kernel_expandable_error:nnn { kernel } { zero-step } {#6} } + { \__kernel_msg_expandable_error:nnn { kernel } { zero-step } {#6} } { \__fp_error:nnfn { fp-bad-step } { } { \fp_to_tl:n { \s__fp \__fp_chk:w #2#3#4 ; } } {#6} @@ -13386,11 +13758,17 @@ \fp_step_function:nnnN {#3} {#4} {#5} #2 \__prg_break_point:Nn \scan_stop: { \int_gdecr:N \g__prg_map_int } } -\__msg_kernel_new:nnn { kernel } { fp-bad-step } +\__kernel_msg_new:nnn { kernel } { fp-bad-step } { Invalid~step~size~#2~in~step~function~#3. } -\__msg_kernel_new:nnn { kernel } { fp-tiny-step } +\__kernel_msg_new:nnn { kernel } { fp-tiny-step } { Tiny~step~size~(#1+#2=#1)~in~step~function~#3. } -\cs_new:Npn \__fp_minmax_o:Nw #1#2 @ +\cs_new:Npn \__fp_minmax_o:Nw #1 + { + \__fp_parse_function_all_fp_o:fnw + { \token_if_eq_meaning:NNTF 0 #1 { min } { max } } + { \__fp_minmax_aux_o:Nw #1 } + } +\cs_new:Npn \__fp_minmax_aux_o:Nw #1#2 @ { \if_meaning:w 0 #1 \exp_after:wN \__fp_minmax_loop:Nww \exp_after:wN + @@ -13467,7 +13845,7 @@ \__fp_parse_operand:Nw \c__fp_prec_colon_int \__fp_parse_expand:w \else: - \__msg_kernel_expandable_error:nnnn + \__kernel_msg_expandable_error:nnnn { kernel } { fp-missing } { : } { ~for~?: } \exp_after:wN \__fp_parse_continue:NwN \exp_after:wN #1 @@ -13507,7 +13885,7 @@ \__fp_exp_after_array_f:w #3 \s__fp_stop #4 #1 } -%% File: l3fp-basics.dtx Copyright (C) 2011-2014,2016,2017 The LaTeX3 Project +%% File: l3fp-basics.dtx Copyright (C) 2011-2014,2016-2018 The LaTeX3 Project \cs_new:Npn \__fp_parse_word_abs:N { \__fp_parse_unary_function:NNN \__fp_set_sign_o:w 0 } \cs_new:Npn \__fp_parse_word_sign:N @@ -14269,6 +14647,43 @@ \if_case:w #3 \exp_stop_f: #1 \or: 1 \or: 0 \fi: \exp_stop_f: #4; } +\cs_new:Npn \__fp_tuple_set_sign_o:w #1 + { + \if_meaning:w 2 #1 + \exp_after:wN \__fp_tuple_set_sign_aux_o:Nnw + \fi: + \__fp_invalid_operation_o:nw { abs } + } +\cs_new:Npn \__fp_tuple_set_sign_aux_o:Nnw #1#2#3 @ + { \__fp_tuple_map_o:nw \__fp_tuple_set_sign_aux_o:w #3 } +\cs_new:Npn \__fp_tuple_set_sign_aux_o:w #1#2 ; + { + \__fp_change_func_type:NNN #1 \__fp_set_sign_o:w + \__fp_parse_apply_unary_error:NNw + 2 #1 #2 ; @ + } +\cs_new:cpn { __fp_*_tuple_o:ww } #1 ; + { \__fp_tuple_map_o:nw { \__fp_binary_type_o:Nww * #1 ; } } +\cs_new:cpn { __fp_tuple_*_o:ww } #1 ; #2 ; + { \__fp_tuple_map_o:nw { \__fp_binary_rev_type_o:Nww * #2 ; } #1 ; } +\cs_new:cpn { __fp_tuple_/_o:ww } #1 ; #2 ; + { \__fp_tuple_map_o:nw { \__fp_binary_rev_type_o:Nww / #2 ; } #1 ; } +\cs_set_protected:Npn \__fp_tmp:w #1 + { + \cs_new:cpn { __fp_tuple_#1_tuple_o:ww } + \s__fp_tuple \__fp_tuple_chk:w ##1 ; + \s__fp_tuple \__fp_tuple_chk:w ##2 ; + { + \int_compare:nNnTF + { \__fp_array_count:n {##1} } = { \__fp_array_count:n {##2} } + { \__fp_tuple_mapthread_o:nww { \__fp_binary_type_o:Nww #1 } } + { \__fp_invalid_operation_o:nww #1 } + \s__fp_tuple \__fp_tuple_chk:w {##1} ; + \s__fp_tuple \__fp_tuple_chk:w {##2} ; + } + } +\__fp_tmp:w + +\__fp_tmp:w - %% File: l3fp-extended.dtx Copyright (C) 2011-2017 The LaTeX3 Project \tl_const:Nn \c__fp_one_fixed_tl { {10000} {0000} {0000} {0000} {0000} {0000} ; } @@ -15379,7 +15794,7 @@ 1 \fi: } -%% File: l3fp-trig.dtx Copyright (C) 2011-2017 The LaTeX3 Project +%% File: l3fp-trig.dtx Copyright (C) 2011-2018 The LaTeX3 Project \tl_map_inline:nn { {acos} {acsc} {asec} {asin} @@ -15912,32 +16327,21 @@ } #1 } -\cs_new:Npn \__fp_atan_o:Nw - { - \__fp_atan_dispatch_o:NNnNw - \__fp_acotii_o:Nww \__fp_atanii_o:Nww { atan } - } -\cs_new:Npn \__fp_acot_o:Nw +\cs_new:Npn \__fp_atan_o:Nw #1 { - \__fp_atan_dispatch_o:NNnNw - \__fp_atanii_o:Nww \__fp_acotii_o:Nww { acot } + \__fp_parse_function_one_two:nnw + { #1 { atan } { atand } } + { \__fp_atan_default:w \__fp_atanii_o:Nww #1 } } -\cs_new:Npn \__fp_atan_dispatch_o:NNnNw #1#2#3#4#5@ +\cs_new:Npn \__fp_acot_o:Nw #1 { - \if_case:w - \__int_eval:w \__fp_array_count:n {#5} - 1 \__int_eval_end: - \exp_after:wN #1 \exp_after:wN #4 \c_one_fp #5 - \exp:w - \or: #2 #4 #5 \exp:w - \else: - \__msg_kernel_expandable_error:nnnnn - { kernel } { fp-num-args } { #3() } { 1 } { 2 } - \exp_after:wN \c_nan_fp \exp:w - \fi: - \exp_after:wN \exp_end: + \__fp_parse_function_one_two:nnw + { #1 { acot } { acotd } } + { \__fp_atan_default:w \__fp_acotii_o:Nww #1 } } +\cs_new:Npx \__fp_atan_default:w #1#2#3 @ { #1 #2 #3 \c_one_fp @ } \cs_new:Npn \__fp_atanii_o:Nww - #1 \s__fp \__fp_chk:w #2#3#4; \s__fp \__fp_chk:w #5 + #1 \s__fp \__fp_chk:w #2#3#4; \s__fp \__fp_chk:w #5 #6 @ { \if_meaning:w 3 #2 \__fp_case_return_i_o:ww \fi: \if_meaning:w 3 #5 \__fp_case_return_ii_o:ww \fi: @@ -15954,7 +16358,7 @@ \fi: \__fp_atan_normal_o:NNnwNnw #1 \s__fp \__fp_chk:w #2#3#4; - \s__fp \__fp_chk:w #5 + \s__fp \__fp_chk:w #5 #6 } \cs_new:Npn \__fp_acotii_o:Nww #1#2; #3; { \__fp_atanii_o:Nww #1#3; #2; } @@ -16185,7 +16589,28 @@ { \__fp_asin_auxi_o:NnNww #1 {#3} #4 } } } -%% File: l3fp-convert.dtx Copyright(C) 2011-2017 The LaTeX3 Project +%% File: l3fp-convert.dtx Copyright(C) 2011-2018 The LaTeX3 Project +\cs_new:Npn \__fp_tuple_convert:Nw #1 \s__fp_tuple \__fp_tuple_chk:w #2 ; + { + \int_case:nnF { \__fp_array_count:n {#2} } + { + { 0 } { ( ) } + { 1 } { \__fp_tuple_convert_end:w @ { #1 #2 , } } + } + { + \__fp_tuple_convert_loop:nNw { } #1 + #2 { ? \__fp_tuple_convert_end:w } ; + @ { \use_none:nn } + } + } +\cs_new:Npn \__fp_tuple_convert_loop:nNw #1#2#3#4; #5 @ #6 + { + \use_none:n #3 + \exp_args:Nf \__fp_tuple_convert_loop:nNw { #2 #3#4 ; } #2 #5 + @ { #6 , ~ #1 } + } +\cs_new:Npn \__fp_tuple_convert_end:w #1 @ #2 + { \exp_after:wN ( \exp:w \exp_end_continue_f:w #2 ) } \cs_new:Npn \__fp_trim_zeros:w #1 ; { \__fp_trim_zeros_loop:w #1 @@ -16202,7 +16627,20 @@ \exp_after:wN \__fp_to_scientific_dispatch:w \exp:w \exp_end_continue_f:w \__fp_parse:n } -\cs_new:Npn \__fp_to_scientific_dispatch:w \s__fp \__fp_chk:w #1#2 +\cs_new:Npn \__fp_to_scientific_dispatch:w #1 + { + \__fp_change_func_type:NNN + #1 \__fp_to_scientific:w \__fp_to_scientific_recover:w + #1 + } +\cs_new:Npn \__fp_to_scientific_recover:w #1 #2 ; + { + \__fp_error:nffn { fp-unknown-type } { \tl_to_str:n { #2 ; } } { } { } + nan + } +\cs_new:Npn \__fp_tuple_to_scientific:w + { \__fp_tuple_convert:Nw \__fp_to_scientific_dispatch:w } +\cs_new:Npn \__fp_to_scientific:w \s__fp \__fp_chk:w #1#2 { \if_meaning:w 2 #2 \exp_after:wN - \exp:w \exp_end_continue_f:w \fi: \if_case:w #1 \exp_stop_f: @@ -16243,7 +16681,20 @@ \exp_after:wN \__fp_to_decimal_dispatch:w \exp:w \exp_end_continue_f:w \__fp_parse:n } -\cs_new:Npn \__fp_to_decimal_dispatch:w \s__fp \__fp_chk:w #1#2 +\cs_new:Npn \__fp_to_decimal_dispatch:w #1 + { + \__fp_change_func_type:NNN + #1 \__fp_to_decimal:w \__fp_to_decimal_recover:w + #1 + } +\cs_new:Npn \__fp_to_decimal_recover:w #1 #2 ; + { + \__fp_error:nffn { fp-unknown-type } { \tl_to_str:n { #2 ; } } { } { } + nan + } +\cs_new:Npn \__fp_tuple_to_decimal:w + { \__fp_tuple_convert:Nw \__fp_to_decimal_dispatch:w } +\cs_new:Npn \__fp_to_decimal:w \s__fp \__fp_chk:w #1#2 { \if_meaning:w 2 #2 \exp_after:wN - \exp:w \exp_end_continue_f:w \fi: \if_case:w #1 \exp_stop_f: @@ -16308,7 +16759,16 @@ \exp_after:wN \__fp_to_tl_dispatch:w \exp:w \exp_end_continue_f:w \__fp_parse:n } -\cs_new:Npn \__fp_to_tl_dispatch:w \s__fp \__fp_chk:w #1#2 +\cs_new:Npn \__fp_to_tl_dispatch:w #1 + { \__fp_change_func_type:NNN #1 \__fp_to_tl:w \__fp_to_tl_recover:w #1 } +\cs_new:Npn \__fp_to_tl_recover:w #1 #2 ; + { + \__fp_error:nffn { fp-unknown-type } { \tl_to_str:n { #2 ; } } { } { } + nan + } +\cs_new:Npn \__fp_tuple_to_tl:w + { \__fp_tuple_convert:Nw \__fp_to_tl_dispatch:w } +\cs_new:Npn \__fp_to_tl:w \s__fp \__fp_chk:w #1#2 { \if_meaning:w 2 #2 \exp_after:wN - \exp:w \exp_end_continue_f:w \fi: \if_case:w #1 \exp_stop_f: @@ -16337,10 +16797,21 @@ \cs_new:Npn \__fp_to_tl_scientific:wNw #1 ; #2#3; { \__fp_trim_zeros:w #2.#3 ; #1 } \cs_new:Npn \fp_to_dim:N #1 - { \fp_to_decimal:N #1 pt } + { \exp_after:wN \__fp_to_dim_dispatch:w #1 } \cs_generate_variant:Nn \fp_to_dim:N { c } -\cs_new:Npn \fp_to_dim:n #1 - { \fp_to_decimal:n {#1} pt } +\cs_new:Npn \fp_to_dim:n + { + \exp_after:wN \__fp_to_dim_dispatch:w + \exp:w \exp_end_continue_f:w \__fp_parse:n + } +\cs_new:Npn \__fp_to_dim_dispatch:w #1#2 ; + { + \__fp_change_func_type:NNN #1 \__fp_to_dim:w \__fp_to_dim_recover:w + #1 #2 ; + } +\cs_new:Npn \__fp_to_dim_recover:w #1 + { \__fp_invalid_operation:nnw { 0pt } { fp_to_dim } } +\cs_new:Npn \__fp_to_dim:w #1 ; { \__fp_to_decimal:w #1 ; pt } \cs_new:Npn \fp_to_int:N #1 { \exp_after:wN \__fp_to_int_dispatch:w #1 } \cs_generate_variant:Nn \fp_to_int:N { c } \cs_new:Npn \fp_to_int:n @@ -16348,12 +16819,19 @@ \exp_after:wN \__fp_to_int_dispatch:w \exp:w \exp_end_continue_f:w \__fp_parse:n } -\cs_new:Npn \__fp_to_int_dispatch:w #1; +\cs_new:Npn \__fp_to_int_dispatch:w #1#2 ; { - \exp_after:wN \__fp_to_decimal_dispatch:w \exp:w \exp_end_continue_f:w + \__fp_change_func_type:NNN #1 \__fp_to_int:w \__fp_to_int_recover:w + #1 #2 ; + } +\cs_new:Npn \__fp_to_int_recover:w #1 + { \__fp_invalid_operation:nnw { 0 } { fp_to_int } } +\cs_new:Npn \__fp_to_int:w #1; + { + \exp_after:wN \__fp_to_decimal:w \exp:w \exp_end_continue_f:w \__fp_round:Nwn \__fp_round_to_nearest:NNN #1; { 0 } } -\__debug_patch_args:nNNpn { { (#1) } } +\__kernel_patch_args:nNNpn { { (#1) } } \cs_new:Npn \dim_to_fp:n #1 { \exp_after:wN \__fp_from_dim_test:ww @@ -16423,18 +16901,18 @@ } \exp_not:N \__fp_array_to_clist_loop:Nw } -%% File: l3fp-random.dtx Copyright (C) 2016,2017 The LaTeX3 Project +%% File: l3fp-random.dtx Copyright (C) 2016-2018 The LaTeX3 Project \cs_new:Npn \__fp_parse_word_rand:N { \__fp_parse_function:NNN \__fp_rand_o:Nw ? } \cs_new:Npn \__fp_parse_word_randint:N { \__fp_parse_function:NNN \__fp_randint_o:Nw ? } \cs_if_exist:NF \pdftex_uniformdeviate:D { - \__msg_kernel_new:nnn { kernel } { fp-no-random } + \__kernel_msg_new:nnn { kernel } { fp-no-random } { Random~numbers~unavailable } \cs_new:Npn \__fp_rand_o:Nw ? #1 @ { - \__msg_kernel_expandable_error:nn { kernel } { fp-no-random } + \__kernel_msg_expandable_error:nn { kernel } { fp-no-random } \exp_after:wN \c_nan_fp } \cs_new_eq:NN \__fp_randint_o:Nw \__fp_rand_o:Nw @@ -16495,26 +16973,20 @@ \tl_if_empty:nTF {#1} { \__fp_rand_o: } { - \__msg_kernel_expandable_error:nnnnn + \__kernel_msg_expandable_error:nnnnn { kernel } { fp-num-args } { rand() } { 0 } { 0 } \exp_after:wN \c_nan_fp } } \cs_new:Npn \__fp_rand_o: { \__fp_parse_o:n { . \__fp_rand_myriads:n { xxxx } } } -\cs_new:Npn \__fp_randint_o:Nw ? #1 @ +\cs_new:Npn \__fp_randint_o:Nw ? { - \if_case:w - \__int_eval:w \__fp_array_count:n {#1} - 1 \__int_eval_end: - \exp_after:wN \__fp_randint_e:w \c_one_fp #1 - \or: \__fp_randint_e:w #1 - \else: - \__msg_kernel_expandable_error:nnnnn - { kernel } { fp-num-args } { randint() } { 1 } { 2 } - \exp_after:wN \c_nan_fp \exp:w - \fi: - \exp_after:wN \exp_end: + \__fp_parse_function_one_two:nnw + { randint } + { \__fp_randint_default:w \__fp_randint_o:w } } +\cs_new:Npn \__fp_randint_default:w #1 { \exp_after:wN #1 \c_one_fp } \cs_new:Npn \__fp_randint_badarg:w \s__fp \__fp_chk:w #1#2#3; { \__fp_int:wTF \s__fp \__fp_chk:w #1#2#3; @@ -16528,7 +17000,7 @@ } { 1 \exp_stop_f: } } -\cs_new:Npn \__fp_randint_e:w #1; #2; +\cs_new:Npn \__fp_randint_o:w #1; #2; @ { \if_case:w \__fp_randint_badarg:w #1; @@ -16541,6 +17013,7 @@ { randint } { \__fp_array_to_clist:n { #1; #2; } } \exp:w \fi: + \exp_after:wN \exp_end: } \cs_new:Npn \__fp_randint_e:wnn #1; { @@ -16585,65 +17058,7 @@ { \__fp_exp_after_o:w #1 ; \exp:w } } } -%% File: l3fp-assign.dtx Copyright (C) 2011-2017 The LaTeX3 project -\cs_new_protected:Npn \fp_new:N #1 - { \cs_new_eq:NN #1 \c_zero_fp } -\cs_generate_variant:Nn \fp_new:N {c} -\cs_new_protected:Npn \fp_set:Nn #1#2 - { \tl_set:Nx #1 { \exp_not:f { \__fp_parse:n {#2} } } } -\cs_new_protected:Npn \fp_gset:Nn #1#2 - { \tl_gset:Nx #1 { \exp_not:f { \__fp_parse:n {#2} } } } -\cs_new_protected:Npn \fp_const:Nn #1#2 - { \tl_const:Nx #1 { \exp_not:f { \__fp_parse:n {#2} } } } -\cs_generate_variant:Nn \fp_set:Nn {c} -\cs_generate_variant:Nn \fp_gset:Nn {c} -\cs_generate_variant:Nn \fp_const:Nn {c} -\cs_new_eq:NN \fp_set_eq:NN \tl_set_eq:NN -\cs_new_eq:NN \fp_gset_eq:NN \tl_gset_eq:NN -\cs_generate_variant:Nn \fp_set_eq:NN { c , Nc , cc } -\cs_generate_variant:Nn \fp_gset_eq:NN { c , Nc , cc } -\cs_new_protected:Npn \fp_zero:N #1 { \fp_set_eq:NN #1 \c_zero_fp } -\cs_new_protected:Npn \fp_gzero:N #1 { \fp_gset_eq:NN #1 \c_zero_fp } -\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 - { \fp_if_exist:NTF #1 { \fp_zero:N #1 } { \fp_new:N #1 } } -\cs_new_protected:Npn \fp_gzero_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:Npn \fp_add:Nn { \__fp_add:NNNn \fp_set:Nn + } -\cs_new_protected:Npn \fp_gadd:Nn { \__fp_add:NNNn \fp_gset:Nn + } -\cs_new_protected:Npn \fp_sub:Nn { \__fp_add:NNNn \fp_set:Nn - } -\cs_new_protected:Npn \fp_gsub:Nn { \__fp_add:NNNn \fp_gset:Nn - } -\cs_new_protected:Npn \__fp_add:NNNn #1#2#3#4 - { #1 #3 { #3 #2 \__fp_parse:n {#4} } } -\cs_generate_variant:Nn \fp_add:Nn { c } -\cs_generate_variant:Nn \fp_gadd:Nn { c } -\cs_generate_variant:Nn \fp_sub:Nn { c } -\cs_generate_variant:Nn \fp_gsub:Nn { c } -\cs_new_protected:Npn \fp_show:N { \__fp_show:NN \tl_show:n } -\cs_generate_variant:Nn \fp_show:N { c } -\cs_new_protected:Npn \fp_log:N { \__fp_show:NN \tl_log:n } -\cs_generate_variant:Nn \fp_log:N { c } -\cs_new_protected:Npn \__fp_show:NN #1#2 - { - \__kernel_check_defined:NT #2 - { \exp_args:Nx #1 { \token_to_str:N #2 = \fp_to_tl:N #2 } } - } -\cs_new_protected:Npn \fp_show:n - { \msg_show_eval:Nn \fp_to_tl:n } -\cs_new_protected:Npn \fp_log:n - { \msg_log_eval:Nn \fp_to_tl:n } -\fp_const:Nn \c_e_fp { 2.718 2818 2845 9045 } -\fp_const:Nn \c_one_fp { 1 } -\fp_const:Nn \c_pi_fp { 3.141 5926 5358 9793 } -\fp_const:Nn \c_one_degree_fp { 0.0 1745 3292 5199 4330 } -\fp_new:N \l_tmpa_fp -\fp_new:N \l_tmpb_fp -\fp_new:N \g_tmpa_fp -\fp_new:N \g_tmpb_fp -%% File l3sort.dtx (C) Copyright 2012-2017 The LaTeX3 Project +%% File l3sort.dtx (C) Copyright 2012-2018 The LaTeX3 Project \int_new:N \l__sort_length_int \int_new:N \l__sort_min_int \int_new:N \l__sort_top_int @@ -16864,14 +17279,14 @@ \cs_new_protected:Npn \__sort_return_mark:N #1 { } \cs_new_protected:Npn \__sort_return_none_error: { - \__msg_kernel_error:nnxx { kernel } { return-none } + \__kernel_msg_error:nnxx { kernel } { return-none } { \tex_the:D \tex_toks:D \l__sort_A_int } { \tex_the:D \tex_toks:D \l__sort_C_int } \__sort_return_same: } \cs_new_protected:Npn \__sort_return_two_error:w #1 \__sort_return_none_error: - { \__msg_kernel_error:nn { kernel } { return-two } } + { \__kernel_msg_error:nn { kernel } { return-two } } \cs_new_protected:Npn \__sort_return_same: { \tex_toks:D \l__sort_B_int \tex_toks:D \l__sort_C_int @@ -16993,12 +17408,12 @@ { \cs_set_eq:NN \toksdef \__sort_disabled_toksdef:n } \cs_new_protected:Npn \__sort_disabled_toksdef:n #1 { - \__msg_kernel_error:nnx { kernel } { toksdef } + \__kernel_msg_error:nnx { kernel } { toksdef } { \token_to_str:N #1 } \__sort_error: \tex_toksdef:D #1 } -\__msg_kernel_new:nnnn { kernel } { toksdef } +\__kernel_msg_new:nnnn { kernel } { toksdef } { Allocation~of~\iow_char:N\\toks~registers~impossible~while~sorting. } { The~comparison~code~used~for~sorting~a~list~has~attempted~to~ @@ -17008,20 +17423,20 @@ \cs_new_protected:Npn \__sort_too_long_error:NNw #1#2 \fi: { \fi: - \__msg_kernel_error:nnxxx { kernel } { too-large } + \__kernel_msg_error:nnxxx { kernel } { too-large } { \token_to_str:N #2 } { \int_eval:n { \l__sort_true_max_int - \l__sort_min_int } } { \int_eval:n { \l__sort_top_int - \l__sort_min_int } } #1 \__sort_error: } -\__msg_kernel_new:nnnn { kernel } { too-large } +\__kernel_msg_new:nnnn { kernel } { too-large } { The~list~#1~is~too~long~to~be~sorted~by~TeX. } { TeX~has~#2~toks~registers~still~available:~ this~only~allows~to~sort~with~up~to~#3~ items.~All~extra~items~will~be~deleted. } -\__msg_kernel_new:nnnn { kernel } { return-none } +\__kernel_msg_new:nnnn { kernel } { return-none } { The~comparison~code~did~not~return. } { When~sorting~a~list,~the~code~to~compare~items~#1~and~#2~ @@ -17030,7 +17445,7 @@ \iow_char:N\\sort_return_swapped: .~ Exactly~one~of~these~should~be~called. } -\__msg_kernel_new:nnnn { kernel } { return-two } +\__kernel_msg_new:nnnn { kernel } { return-two } { The~comparison~code~returned~multiple~times. } { When~sorting~a~list,~the~code~to~compare~items~called~ @@ -17038,9 +17453,9 @@ \iow_char:N\\sort_return_swapped: ~multiple~times.~ Exactly~one~of~these~should~be~called. } -\__debug_deprecation:nnNNpn { 2018-12-31 } { \sort_return_same: } +\__kernel_patch_deprecation:nnNNpn { 2018-12-31 } { \sort_return_same: } \cs_new_protected:Npn \sort_ordered: { \sort_return_same: } -\__debug_deprecation:nnNNpn { 2018-12-31 } { \sort_return_swapped: } +\__kernel_patch_deprecation:nnNNpn { 2018-12-31 } { \sort_return_swapped: } \cs_new_protected:Npn \sort_reversed: { \sort_return_swapped: } %% File: l3tl-build.dtx Copyright (C) 2011-2017 The LaTeX3 Project \int_new:N \l__tl_build_start_index_int @@ -17519,14 +17934,14 @@ \cs_generate_variant:Nn \__tl_analysis_show_long_aux:nnnn { oof } \tl_const:Nx \c__tl_analysis_show_etc_str % ( { \token_to_str:N \ETC.) } -\__msg_kernel_new:nnn { kernel } { show-tl-analysis } +\__kernel_msg_new:nnn { kernel } { show-tl-analysis } { The~token~list~ \tl_if_empty:nF {#1} { #1 ~ } \tl_if_empty:nTF {#2} { is~empty } { contains~the~tokens: #2 } } -%% File: l3regex.dtx Copyright (C) 2011-2017 The LaTeX3 Project +%% File: l3regex.dtx Copyright (C) 2011-2018 The LaTeX3 Project \cs_new_protected:Npn \__regex_standard_escapechar: { \int_set:Nn \tex_escapechar:D { `\\ } } \cs_new:Npn \__regex_toks_use:w { \tex_the:D \tex_toks:D } @@ -17785,11 +18200,11 @@ \__regex_item_caseful_range:nn { `A } { `F } \__regex_item_caseful_range:nn { `a } { `f } } -\__debug_patch:nnNNpn +\__kernel_patch:nnNNpn { - \__debug_trace_push:nnN { regex } { 1 } \__regex_escape_use:nnnn + \__regex_trace_push:nnN { regex } { 1 } \__regex_escape_use:nnnn \__tl_build:Nw \l__regex_internal_a_tl - \__tl_build_one:n { \__debug_trace_pop:nnN { regex } { 1 } \__regex_escape_use:nnnn } + \__tl_build_one:n { \__regex_trace_pop:nnN { regex } { 1 } \__regex_escape_use:nnnn } \use_none:nn } { } @@ -17830,7 +18245,7 @@ \cs_new:cpn { __regex_escape_/break:w } { \if_false: { \fi: } - \__msg_kernel_error:nn { kernel } { trailing-backslash } + \__kernel_msg_error:nn { kernel } { trailing-backslash } \exp_after:wN \use_none:n \exp_after:wN { \if_false: } \fi: } \cs_new:cpn { __regex_escape_~:w } { } @@ -17857,7 +18272,7 @@ { \if_false: { \fi: } \__tl_build_one:o \l__regex_internal_b_tl - \__msg_kernel_error:nnx { kernel } { x-overflow } {#1} + \__kernel_msg_error:nnx { kernel } { x-overflow } {#1} \tl_set:Nx \l__regex_internal_b_tl { \if_false: } \fi: } @@ -17921,7 +18336,7 @@ { \if_false: { \fi: } \__tl_build_one:o \l__regex_internal_b_tl - \__msg_kernel_error:nnx { kernel } { x-missing-rbrace } {#1} + \__kernel_msg_error:nnx { kernel } { x-missing-rbrace } {#1} \tl_set:Nx \l__regex_internal_b_tl { \if_false: } \fi: \__regex_escape_loop:N #1 } @@ -18085,7 +18500,7 @@ \if_int_compare:w \l__regex_mode_int = \c__regex_class_mode_int \exp_after:wN \exp_after:wN \exp_after:wN \use:n \else: - \__msg_kernel_error:nn { kernel } { c-bad-mode } + \__kernel_msg_error:nn { kernel } { c-bad-mode } \exp_after:wN \exp_after:wN \exp_after:wN \use_none:n \fi: \fi: @@ -18114,13 +18529,13 @@ { \__regex_if_in_class:TF { - \__msg_kernel_error:nn { kernel } { missing-rbrack } + \__kernel_msg_error:nn { kernel } { missing-rbrack } \use:c { __regex_compile_]: } \prg_do_nothing: \prg_do_nothing: } { } \if_int_compare:w \l__regex_group_level_int > 0 \exp_stop_f: - \__msg_kernel_error:nnx { kernel } { missing-rparen } + \__kernel_msg_error:nnx { kernel } { missing-rparen } { \int_use:N \l__regex_group_level_int } \prg_replicate:nn { \l__regex_group_level_int } @@ -18156,10 +18571,10 @@ \prg_do_nothing: \prg_do_nothing: \prg_do_nothing: \prg_do_nothing: \int_compare:nNnT \l__regex_mode_int = \c__regex_catcode_mode_int - { \__msg_kernel_error:nn { kernel } { c-trailing } } + { \__kernel_msg_error:nn { kernel } { c-trailing } } \int_compare:nNnT \l__regex_mode_int < \c__regex_outer_mode_int { - \__msg_kernel_error:nn { kernel } { c-missing-rbrace } + \__kernel_msg_error:nn { kernel } { c-missing-rbrace } \__regex_compile_end_cs: \prg_do_nothing: \prg_do_nothing: \prg_do_nothing: \prg_do_nothing: @@ -18219,7 +18634,7 @@ \cs_new_protected:Npn \__regex_compile_quantifier_abort:xNN #1#2#3 { \__regex_compile_quantifier_none: - \__msg_kernel_warning:nnxx { kernel } { invalid-quantifier } {#1} {#3} + \__kernel_msg_warning:nnxx { kernel } { invalid-quantifier } {#1} {#3} \__regex_compile_abort_tokens:x {#1} #2 #3 } @@ -18286,7 +18701,7 @@ { #1 #2 } { \__regex_compile_special:N \c_right_brace_str } { \if_int_compare:w \l__regex_internal_a_int > \l__regex_internal_b_int - \__msg_kernel_error:nnxx { kernel } { backwards-quantifier } + \__kernel_msg_error:nnxx { kernel } { backwards-quantifier } { \int_use:N \l__regex_internal_a_int } { \int_use:N \l__regex_internal_b_int } \int_zero:N \l__regex_internal_b_int @@ -18309,7 +18724,7 @@ } \cs_new_protected:Npn \__regex_compile_raw_error:N #1 { - \__msg_kernel_error:nnx { kernel } { bad-escape } {#1} + \__kernel_msg_error:nnx { kernel } { bad-escape } {#1} \__regex_compile_raw:N #1 } \cs_new_protected:Npn \__regex_compile_raw:N #1#2#3 @@ -18351,7 +18766,7 @@ \__regex_if_end_range:NNTF #2 #3 { \if_int_compare:w `#1 > `#3 \exp_stop_f: - \__msg_kernel_error:nnxx { kernel } { range-backwards } {#1} {#3} + \__kernel_msg_error:nnxx { kernel } { range-backwards } {#1} {#3} \else: \__tl_build_one:x { @@ -18365,7 +18780,7 @@ \fi: } { - \__msg_kernel_warning:nnxx { kernel } { range-missing-end } + \__kernel_msg_warning:nnxx { kernel } { range-missing-end } {#1} { \c_backslash_str #3 } \__tl_build_one:x { @@ -18517,8 +18932,8 @@ \str_case:nn { #2 } { : { \__regex_compile_class_posix:NNNNw } - = { \__msg_kernel_warning:nnx { kernel } { posix-unsupported } { = } } - . { \__msg_kernel_warning:nnx { kernel } { posix-unsupported } { . } } + = { \__kernel_msg_warning:nnx { kernel } { posix-unsupported } { = } } + . { \__kernel_msg_warning:nnx { kernel } { posix-unsupported } { . } } } } \__regex_compile_raw:N [ #1 #2 @@ -18557,7 +18972,7 @@ } } { - \__msg_kernel_warning:nnx { kernel } { posix-unknown } + \__kernel_msg_warning:nnx { kernel } { posix-unknown } { \l__regex_internal_a_tl } \__regex_compile_abort_tokens:x { @@ -18567,7 +18982,7 @@ } } { - \__msg_kernel_error:nnxx { kernel } { posix-missing-close } + \__kernel_msg_error:nnxx { kernel } { posix-missing-close } { [: \l__regex_internal_a_tl } { #2 #4 } \__regex_compile_abort_tokens:x { [: \l__regex_internal_a_tl } #1 #2 #3 #4 @@ -18591,7 +19006,7 @@ \__tl_build_one:o \l__regex_internal_regex \exp_after:wN \__regex_compile_quantifier:w \else: - \__msg_kernel_warning:nn { kernel } { extra-rparen } + \__kernel_msg_warning:nn { kernel } { extra-rparen } \exp_after:wN \__regex_compile_raw:N \exp_after:wN ) \fi: } @@ -18607,7 +19022,7 @@ \cs_if_exist_use:cF { __regex_compile_special_group_\token_to_str:N #4 :w } { - \__msg_kernel_warning:nnx { kernel } { special-group-unknown } + \__kernel_msg_warning:nnx { kernel } { special-group-unknown } { (? #4 } \__regex_compile_group_begin:N \__regex_group:nnnN \__regex_compile_raw:N ? #3 #4 @@ -18643,7 +19058,7 @@ \cs_set:Npn \__regex_item_range:nn { \__regex_item_caseless_range:nn } } { - \__msg_kernel_warning:nnx { kernel } { unknown-option } { (?i #2 } + \__kernel_msg_warning:nnx { kernel } { unknown-option } { (?i #2 } \__regex_compile_raw:N ( \__regex_compile_raw:N ? \__regex_compile_raw:N i @@ -18659,7 +19074,7 @@ \cs_set:Npn \__regex_item_range:nn { \__regex_item_caseful_range:nn } } { - \__msg_kernel_warning:nnx { kernel } { unknown-option } { (?-#2#4 } + \__kernel_msg_warning:nnx { kernel } { unknown-option } { (?-#2#4 } \__regex_compile_raw:N ( \__regex_compile_raw:N ? \__regex_compile_raw:N - @@ -18686,7 +19101,7 @@ } { \cs_if_exist_use:cF { __regex_compile_c_#2:w } } { - \__msg_kernel_error:nnx { kernel } { c-missing-category } {#2} + \__kernel_msg_error:nnx { kernel } { c-missing-category } {#2} #1 #2 } } @@ -18699,7 +19114,7 @@ { \token_if_eq_charcode:NNF #2 ( } % ) } { \use:n } - { \__msg_kernel_error:nnn { kernel } { c-C-invalid } {#2} } + { \__kernel_msg_error:nnn { kernel } { c-C-invalid } {#2} } #1 #2 } \cs_new_protected:cpn { __regex_compile_c_[:w } #1#2 @@ -18738,7 +19153,7 @@ { \__regex_compile_c_lbrack_end: } } { - \__msg_kernel_error:nnx { kernel } { c-missing-rbrack } {#2} + \__kernel_msg_error:nnx { kernel } { c-missing-rbrack } {#2} \__regex_compile_c_lbrack_end: #1 #2 } @@ -18840,7 +19255,7 @@ \__regex_compile_u_loop:NN } { - \__msg_kernel_error:nn { kernel } { u-missing-lbrace } + \__kernel_msg_error:nn { kernel } { u-missing-lbrace } \__regex_compile_raw:N u #1 #2 } } @@ -18858,7 +19273,7 @@ } { \if_false: { \fi: } - \__msg_kernel_error:nnx { kernel } { u-missing-rbrace } {#2} + \__kernel_msg_error:nnx { kernel } { u-missing-rbrace } {#2} \__regex_compile_u_end: #1 #2 } @@ -19078,11 +19493,11 @@ \__regex_compile:n {#1} \__regex_build:N \l__regex_internal_regex } -\__debug_patch:nnNNpn - { \__debug_trace_push:nnN { regex } { 1 } \__regex_build:N } +\__kernel_patch:nnNNpn + { \__regex_trace_push:nnN { regex } { 1 } \__regex_build:N } { \__regex_trace_states:n { 2 } - \__debug_trace_pop:nnN { regex } { 1 } \__regex_build:N + \__regex_trace_pop:nnN { regex } { 1 } \__regex_build:N } \cs_new_protected:Npn \__regex_build:N #1 { @@ -19097,11 +19512,11 @@ \__regex_toks_put_right:Nn \l__regex_right_state_int { \__regex_action_success: } } -\__debug_patch:nnNNpn - { \__debug_trace_push:nnN { regex } { 1 } \__regex_build_for_cs:n } +\__kernel_patch:nnNNpn + { \__regex_trace_push:nnN { regex } { 1 } \__regex_build_for_cs:n } { \__regex_trace_states:n { 2 } - \__debug_trace_pop:nnN { regex } { 1 } \__regex_build_for_cs:n + \__regex_trace_pop:nnN { regex } { 1 } \__regex_build_for_cs:n } \cs_new_protected:Npn \__regex_build_for_cs:n #1 { @@ -19136,9 +19551,9 @@ { \__regex_toks_put_left:Nx #2 { #1 { \int_eval:n { #3 - #2 } } } } \cs_new_protected:Npn \__regex_build_transition_right:nNn #1#2#3 { \__regex_toks_put_right:Nx #2 { #1 { \int_eval:n { #3 - #2 } } } } -\__debug_patch:nnNNpn +\__kernel_patch:nnNNpn { - \__debug_trace:nnx { regex } { 2 } + \__regex_trace:nnx { regex } { 2 } { regex~new~state~ L=\int_use:N \l__regex_left_state_int ~ -> ~ @@ -19220,9 +19635,9 @@ \__regex_tests_action_cost:n \l__regex_right_state_int } } -\__debug_patch:nnNNpn - { \__debug_trace_push:nnN { regex } { 1 } \__regex_group_aux:nnnnN } - { \__debug_trace_pop:nnN { regex } { 1 } \__regex_group_aux:nnnnN } +\__kernel_patch:nnNNpn + { \__regex_trace_push:nnN { regex } { 1 } \__regex_group_aux:nnnnN } + { \__regex_trace_pop:nnN { regex } { 1 } \__regex_group_aux:nnnnN } \cs_new_protected:Npn \__regex_group_aux:nnnnN #1#2#3#4#5 { \if_int_compare:w #3 = 0 \exp_stop_f: @@ -19272,9 +19687,9 @@ { \int_max:nn {#1} { \l__regex_capturing_group_int } } {#2} } -\__debug_patch:nnNNpn - { \__debug_trace_push:nnN { regex } { 1 } \__regex_branch:n } - { \__debug_trace_pop:nnN { regex } { 1 } \__regex_branch:n } +\__kernel_patch:nnNNpn + { \__regex_trace_push:nnN { regex } { 1 } \__regex_branch:n } + { \__regex_trace_pop:nnN { regex } { 1 } \__regex_branch:n } \cs_new_protected:Npn \__regex_branch:n #1 { \__regex_build_new_state: @@ -19461,12 +19876,12 @@ \bool_new:N \g__regex_success_bool \bool_new:N \l__regex_saved_success_bool \bool_new:N \l__regex_match_success_bool -\__debug_patch:nnNNpn +\__kernel_patch:nnNNpn { - \__debug_trace_push:nnN { regex } { 1 } \__regex_match:n - \__debug_trace:nnx { regex } { 1 } { analyzing~query~token~list } + \__regex_trace_push:nnN { regex } { 1 } \__regex_match:n + \__regex_trace:nnx { regex } { 1 } { analyzing~query~token~list } } - { \__debug_trace_pop:nnN { regex } { 1 } \__regex_match:n } + { \__regex_trace_pop:nnN { regex } { 1 } \__regex_match:n } \cs_new_protected:Npn \__regex_match:n #1 { \int_zero:N \l__regex_balance_int @@ -19480,8 +19895,8 @@ \__regex_match_init: \__regex_match_once: } -\__debug_patch:nnNNpn - { \__debug_trace:nnx { regex } { 1 } { initializing } } +\__kernel_patch:nnNNpn + { \__regex_trace:nnx { regex } { 1 } { initializing } } { } \cs_new_protected:Npn \__regex_match_init: { @@ -19586,8 +20001,8 @@ = \__intarray_item_fast:Nn \g__regex_catcode_intarray { \l__regex_curr_pos_int } \scan_stop: } -\__debug_patch:nnNNpn - { \__debug_trace:nnx { regex } { 2 } { state~\int_use:N \l__regex_curr_state_int } } +\__kernel_patch:nnNNpn + { \__regex_trace:nnx { regex } { 2 } { state~\int_use:N \l__regex_curr_state_int } } { } \cs_new_protected:Npn \__regex_use_state: { @@ -19737,9 +20152,9 @@ } } } -\__debug_patch:nnNNpn - { \__debug_trace_push:nnN { regex } { 1 } \__regex_replacement:n } - { \__debug_trace_pop:nnN { regex } { 1 } \__regex_replacement:n } +\__kernel_patch:nnNNpn + { \__regex_trace_push:nnN { regex } { 1 } \__regex_replacement:n } + { \__regex_trace_pop:nnN { regex } { 1 } \__regex_replacement:n } \cs_new_protected:Npn \__regex_replacement:n #1 { \__tl_build:Nw \l__regex_internal_a_tl @@ -19759,14 +20174,14 @@ {#1} \prg_do_nothing: \prg_do_nothing: \if_int_compare:w \l__regex_replacement_csnames_int > 0 \exp_stop_f: - \__msg_kernel_error:nnx { kernel } { replacement-missing-rbrace } + \__kernel_msg_error:nnx { kernel } { replacement-missing-rbrace } { \int_use:N \l__regex_replacement_csnames_int } \__tl_build_one:x { \prg_replicate:nn \l__regex_replacement_csnames_int \cs_end: } \fi: \seq_if_empty:NF \l__regex_replacement_category_seq { - \__msg_kernel_error:nnx { kernel } { replacement-missing-rparen } + \__kernel_msg_error:nnx { kernel } { replacement-missing-rparen } { \seq_count:N \l__regex_replacement_category_seq } \seq_clear:N \l__regex_replacement_category_seq } @@ -19901,11 +20316,11 @@ \cs_new_protected:Npn \__regex_replacement_cat:NNN #1#2#3 { \token_if_eq_meaning:NNTF \prg_do_nothing: #3 - { \__msg_kernel_error:nn { kernel } { replacement-catcode-end } } + { \__kernel_msg_error:nn { kernel } { replacement-catcode-end } } { \int_compare:nNnTF { \l__regex_replacement_csnames_int } > 0 { - \__msg_kernel_error:nnnn + \__kernel_msg_error:nnnn { kernel } { replacement-catcode-in-cs } {#1} {#3} #2 #3 } @@ -19921,7 +20336,7 @@ { \__regex_char_if_alphanumeric:NTF #3 { - \__msg_kernel_error:nnnn + \__kernel_msg_error:nnnn { kernel } { replacement-catcode-escaped } {#1} {#3} } @@ -19982,7 +20397,7 @@ \cs_new_protected:Npn \__regex_replacement_c_S:w #1#2 { \if_int_compare:w `#2 = 0 \exp_stop_f: - \__msg_kernel_error:nn { kernel } { replacement-null-space } + \__kernel_msg_error:nn { kernel } { replacement-null-space } \fi: \tex_lccode:D `\ = `#2 \scan_stop: \tex_lowercase:D { \__tl_build_one:n {~} } @@ -19996,7 +20411,7 @@ \group_end: \cs_new_protected:Npn \__regex_replacement_error:NNN #1#2#3 { - \__msg_kernel_error:nnx { kernel } { replacement-#1 } {#3} + \__kernel_msg_error:nnx { kernel } { replacement-#1 } {#3} #2 #3 } \cs_new_protected:Npn \regex_new:N #1 @@ -20181,7 +20596,7 @@ { \flag_height:n { __regex_begin } + \flag_height:n { __regex_end } } = 0 { - \__msg_kernel_error:nnxxx { kernel } { result-unbalanced } + \__kernel_msg_error:nnxxx { kernel } { result-unbalanced } { splitting~or~extracting~submatches } { \flag_height:n { __regex_end } } { \flag_height:n { __regex_begin } } @@ -20304,7 +20719,7 @@ { \if_int_compare:w \l__regex_balance_int = 0 \exp_stop_f: \else: - \__msg_kernel_error:nnxxx { kernel } { result-unbalanced } + \__kernel_msg_error:nnxxx { kernel } { result-unbalanced } { replacing } { \int_max:nn { - \l__regex_balance_int } { 0 } } { \int_max:nn { \l__regex_balance_int } { 0 } } @@ -20326,20 +20741,20 @@ } } } -\__msg_kernel_new:nnnn { kernel } { trailing-backslash } +\__kernel_msg_new:nnnn { kernel } { trailing-backslash } { Trailing~escape~character~'\iow_char:N\\'. } { A~regular~expression~or~its~replacement~text~ends~with~ the~escape~character~'\iow_char:N\\'.~It~will~be~ignored. } -\__msg_kernel_new:nnnn { kernel } { x-missing-rbrace } +\__kernel_msg_new:nnnn { kernel } { x-missing-rbrace } { Missing~closing~brace~in~'\iow_char:N\\x'~hexadecimal~sequence. } { You~wrote~something~like~ '\iow_char:N\\x\{...#1'.~ The~closing~brace~is~missing. } -\__msg_kernel_new:nnnn { kernel } { x-overflow } +\__kernel_msg_new:nnnn { kernel } { x-overflow } { Character~code~'#1'~too~large~in~'\iow_char:N\\x'~hexadecimal~sequence. } { You~wrote~something~like~ @@ -20347,20 +20762,20 @@ The~character~code~#1~is~larger~than~ the~maximum~value~\int_use:N \c_max_char_int. } -\__msg_kernel_new:nnnn { kernel } { invalid-quantifier } +\__kernel_msg_new:nnnn { kernel } { invalid-quantifier } { Braced~quantifier~'#1'~may~not~be~followed~by~'#2'. } { The~character~'#2'~is~invalid~in~the~braced~quantifier~'#1'.~ The~only~valid~quantifiers~are~'*',~'?',~'+',~'{<int>}',~ '{<min>,}'~and~'{<min>,<max>}',~optionally~followed~by~'?'. } -\__msg_kernel_new:nnnn { kernel } { missing-rbrack } +\__kernel_msg_new:nnnn { kernel } { missing-rbrack } { Missing~right~bracket~inserted~in~regular~expression. } { LaTeX~was~given~a~regular~expression~where~a~character~class~ was~started~with~'[',~but~the~matching~']'~is~missing. } -\__msg_kernel_new:nnnn { kernel } { missing-rparen } +\__kernel_msg_new:nnnn { kernel } { missing-rparen } { Missing~right~ \int_compare:nTF { #1 = 1 } { parenthesis } { parentheses } ~ @@ -20370,13 +20785,13 @@ LaTeX~was~given~a~regular~expression~with~\int_eval:n {#1} ~ more~left~parentheses~than~right~parentheses. } -\__msg_kernel_new:nnnn { kernel } { extra-rparen } +\__kernel_msg_new:nnnn { kernel } { extra-rparen } { Extra~right~parenthesis~ignored~in~regular~expression. } { LaTeX~came~across~a~closing~parenthesis~when~no~submatch~group~ was~open.~The~parenthesis~will~be~ignored. } -\__msg_kernel_new:nnnn { kernel } { bad-escape } +\__kernel_msg_new:nnnn { kernel } { bad-escape } { Invalid~escape~'\iow_char:N\\#1'~ \__regex_if_in_cs:TF { within~a~control~sequence. } @@ -20400,14 +20815,14 @@ because~it~does~not~match~exactly~one~character. } } -\__msg_kernel_new:nnnn { kernel } { range-missing-end } +\__kernel_msg_new:nnnn { kernel } { range-missing-end } { Invalid~end-point~for~range~'#1-#2'~in~character~class. } { The~end-point~'#2'~of~the~range~'#1-#2'~may~not~serve~as~an~ end-point~for~a~range:~alphanumeric~characters~should~not~be~ escaped,~and~non-alphanumeric~characters~should~be~escaped. } -\__msg_kernel_new:nnnn { kernel } { range-backwards } +\__kernel_msg_new:nnnn { kernel } { range-backwards } { Range~'[#1-#2]'~out~of~order~in~character~class. } { In~ranges~of~characters~'[x-y]'~appearing~in~character~classes,~ @@ -20415,34 +20830,34 @@ Here,~'#1'~has~character~code~\int_eval:n {`#1},~while~ '#2'~has~character~code~\int_eval:n {`#2}. } -\__msg_kernel_new:nnnn { kernel } { c-bad-mode } +\__kernel_msg_new:nnnn { kernel } { c-bad-mode } { Invalid~nested~'\iow_char:N\\c'~escape~in~regular~expression. } { The~'\iow_char:N\\c'~escape~cannot~be~used~within~ a~control~sequence~test~'\iow_char:N\\c{...}'.~ To~combine~several~category~tests,~use~'\iow_char:N\\c[...]'. } -\__msg_kernel_new:nnnn { kernel } { c-C-invalid } +\__kernel_msg_new:nnnn { kernel } { c-C-invalid } { '\iow_char:N\\cC'~should~be~followed~by~'.'~or~'(',~not~'#1'. } { The~'\iow_char:N\\cC'~construction~restricts~the~next~item~to~be~a~ control~sequence~or~the~next~group~to~be~made~of~control~sequences.~ It~only~makes~sense~to~follow~it~by~'.'~or~by~a~group. } -\__msg_kernel_new:nnnn { kernel } { c-missing-rbrace } +\__kernel_msg_new:nnnn { kernel } { c-missing-rbrace } { Missing~right~brace~inserted~for~'\iow_char:N\\c'~escape. } { LaTeX~was~given~a~regular~expression~where~a~ '\iow_char:N\\c\iow_char:N\{...'~construction~was~not~ended~ with~a~closing~brace~'\iow_char:N\}'. } -\__msg_kernel_new:nnnn { kernel } { c-missing-rbrack } +\__kernel_msg_new:nnnn { kernel } { c-missing-rbrack } { Missing~right~bracket~inserted~for~'\iow_char:N\\c'~escape. } { A~construction~'\iow_char:N\\c[...'~appears~in~a~ regular~expression,~but~the~closing~']'~is~not~present. } -\__msg_kernel_new:nnnn { kernel } { c-missing-category } +\__kernel_msg_new:nnnn { kernel } { c-missing-category } { Invalid~character~'#1'~following~'\iow_char:N\\c'~escape. } { In~regular~expressions,~the~'\iow_char:N\\c'~escape~sequence~ @@ -20450,19 +20865,19 @@ capital~letter~representing~a~character~category,~namely~ one~of~'ABCDELMOPSTU'. } -\__msg_kernel_new:nnnn { kernel } { c-trailing } +\__kernel_msg_new:nnnn { kernel } { c-trailing } { Trailing~category~code~escape~'\iow_char:N\\c'... } { A~regular~expression~ends~with~'\iow_char:N\\c'~followed~ by~a~letter.~It~will~be~ignored. } -\__msg_kernel_new:nnnn { kernel } { u-missing-lbrace } +\__kernel_msg_new:nnnn { kernel } { u-missing-lbrace } { Missing~left~brace~following~'\iow_char:N\\u'~escape. } { The~'\iow_char:N\\u'~escape~sequence~must~be~followed~by~ a~brace~group~with~the~name~of~the~variable~to~use. } -\__msg_kernel_new:nnnn { kernel } { u-missing-rbrace } +\__kernel_msg_new:nnnn { kernel } { u-missing-rbrace } { Missing~right~brace~inserted~for~'\iow_char:N\\u'~escape. } { LaTeX~ @@ -20471,14 +20886,14 @@ { encountered~an~escaped~alphanumeric~character '\iow_char:N\\#2'~ } when~parsing~the~argument~of~an~'\iow_char:N\\u\iow_char:N\{...\}'~escape. } -\__msg_kernel_new:nnnn { kernel } { posix-unsupported } +\__kernel_msg_new:nnnn { kernel } { posix-unsupported } { POSIX~collating~element~'[#1 ~ #1]'~not~supported. } { The~'[.foo.]'~and~'[=bar=]'~syntaxes~have~a~special~meaning~ in~POSIX~regular~expressions.~This~is~not~supported~by~LaTeX.~ Maybe~you~forgot~to~escape~a~left~bracket~in~a~character~class? } -\__msg_kernel_new:nnnn { kernel } { posix-unknown } +\__kernel_msg_new:nnnn { kernel } { posix-unknown } { POSIX~class~'[:#1:]'~unknown. } { '[:#1:]'~is~not~among~the~known~POSIX~classes~ @@ -20487,10 +20902,10 @@ '[:print:]',~'[:punct:]',~'[:space:]',~'[:upper:]',~ '[:word:]',~and~'[:xdigit:]'. } -\__msg_kernel_new:nnnn { kernel } { posix-missing-close } +\__kernel_msg_new:nnnn { kernel } { posix-missing-close } { Missing~closing~':]'~for~POSIX~class. } { The~POSIX~syntax~'#1'~must~be~followed~by~':]',~not~'#2'. } -\__msg_kernel_new:nnnn { kernel } { result-unbalanced } +\__kernel_msg_new:nnnn { kernel } { result-unbalanced } { Missing~brace~inserted~when~#1. } { LaTeX~was~asked~to~do~some~regular~expression~operation,~ @@ -20498,33 +20913,33 @@ of~begin-group~and~end-group~tokens.~Braces~were~inserted:~ #2~left,~#3~right. } -\__msg_kernel_new:nnnn { kernel } { unknown-option } +\__kernel_msg_new:nnnn { kernel } { unknown-option } { Unknown~option~'#1'~for~regular~expressions. } { The~only~available~option~is~'case-insensitive',~toggled~by~ '(?i)'~and~'(?-i)'. } -\__msg_kernel_new:nnnn { kernel } { special-group-unknown } +\__kernel_msg_new:nnnn { kernel } { special-group-unknown } { Unknown~special~group~'#1~...'~in~a~regular~expression. } { The~only~valid~constructions~starting~with~'(?'~are~ '(?:~...~)',~'(?|~...~)',~'(?i)',~and~'(?-i)'. } -\__msg_kernel_new:nnnn { kernel } { replacement-c } +\__kernel_msg_new:nnnn { kernel } { replacement-c } { Misused~'\iow_char:N\\c'~command~in~a~replacement~text. } { In~a~replacement~text,~the~'\iow_char:N\\c'~escape~sequence~ can~be~followed~by~one~of~the~letters~'ABCDELMOPSTU'~ or~a~brace~group,~not~by~'#1'. } -\__msg_kernel_new:nnnn { kernel } { replacement-u } +\__kernel_msg_new:nnnn { kernel } { replacement-u } { Misused~'\iow_char:N\\u'~command~in~a~replacement~text. } { In~a~replacement~text,~the~'\iow_char:N\\u'~escape~sequence~ must~be~~followed~by~a~brace~group~holding~the~name~of~the~ variable~to~use. } -\__msg_kernel_new:nnnn { kernel } { replacement-g } +\__kernel_msg_new:nnnn { kernel } { replacement-g } { Missing~brace~for~the~'\iow_char:N\\g'~construction~ in~a~replacement~text. @@ -20534,7 +20949,7 @@ submatches~are~represented~either~as~'\iow_char:N \\g{dd..d}',~ or~'\\d',~where~'d'~are~single~digits.~Here,~a~brace~is~missing. } -\__msg_kernel_new:nnnn { kernel } { replacement-catcode-end } +\__kernel_msg_new:nnnn { kernel } { replacement-catcode-end } { Missing~character~for~the~'\iow_char:N\\c<category><character>'~ construction~in~a~replacement~text. @@ -20545,7 +20960,7 @@ the~character~category.~Then,~a~character~must~follow.~LaTeX~ reached~the~end~of~the~replacement~when~looking~for~that. } -\__msg_kernel_new:nnnn { kernel } { replacement-catcode-escaped } +\__kernel_msg_new:nnnn { kernel } { replacement-catcode-escaped } { Escaped~letter~or~digit~after~category~code~in~replacement~text. } @@ -20555,7 +20970,7 @@ the~character~category.~Then,~a~character~must~follow,~not~ '\iow_char:N\\#2'. } -\__msg_kernel_new:nnnn { kernel } { replacement-catcode-in-cs } +\__kernel_msg_new:nnnn { kernel } { replacement-catcode-in-cs } { Category~code~'\iow_char:N\\c#1#3'~ignored~inside~ '\iow_char:N\\c\{...\}'~in~a~replacement~text. @@ -20565,7 +20980,7 @@ '\iow_char:N\\c\{...\}'~are~ignored~when~building~the~control~ sequence~name. } -\__msg_kernel_new:nnnn { kernel } { replacement-null-space } +\__kernel_msg_new:nnnn { kernel } { replacement-null-space } { TeX~cannot~build~a~space~token~with~character~code~0. } { You~asked~for~a~character~token~with~category~space,~ @@ -20574,19 +20989,19 @@ This~specific~case~is~impossible~and~will~be~replaced~ by~a~normal~space. } -\__msg_kernel_new:nnnn { kernel } { replacement-missing-rbrace } +\__kernel_msg_new:nnnn { kernel } { replacement-missing-rbrace } { Missing~right~brace~inserted~in~replacement~text. } { There~ \int_compare:nTF { #1 = 1 } { was } { were } ~ #1~ missing~right~\int_compare:nTF { #1 = 1 } { brace } { braces } . } -\__msg_kernel_new:nnnn { kernel } { replacement-missing-rparen } +\__kernel_msg_new:nnnn { kernel } { replacement-missing-rparen } { Missing~right~parenthesis~inserted~in~replacement~text. } { There~ \int_compare:nTF { #1 = 1 } { was } { were } ~ #1~ missing~right~\int_compare:nTF { #1 = 1 } { parenthesis } { parentheses } . } -\__msg_kernel_new:nnn { kernel } { show-regex } +\__kernel_msg_new:nnn { kernel } { show-regex } { >~Compiled~regex~ \tl_if_empty:nTF {#1} { variable~ #2 } { {#1} } : @@ -20608,22 +21023,22 @@ } } } -\__debug:TF +\__kernel_debug:TF { - \cs_new_protected:Npn \__debug_trace_push:nnN #1#2#3 - { \__debug_trace:nnx {#1} {#2} { entering~ \token_to_str:N #3 } } - \cs_new_protected:Npn \__debug_trace_pop:nnN #1#2#3 - { \__debug_trace:nnx {#1} {#2} { leaving~ \token_to_str:N #3 } } - \cs_new_protected:Npn \__debug_trace:nnx #1#2#3 + \cs_new_protected:Npn \__regex_trace_push:nnN #1#2#3 + { \__regex_trace:nnx {#1} {#2} { entering~ \token_to_str:N #3 } } + \cs_new_protected:Npn \__regex_trace_pop:nnN #1#2#3 + { \__regex_trace:nnx {#1} {#2} { leaving~ \token_to_str:N #3 } } + \cs_new_protected:Npn \__regex_trace:nnx #1#2#3 { \int_compare:nNnF - { \int_use:c { g__debug_trace_#1_int } } < {#2} + { \int_use:c { g__regex_trace_#1_int } } < {#2} { \iow_term:x { Trace:~#3 } } } } { } -\int_new:N \g__debug_trace_regex_int -\__debug:TF +\int_new:N \g__regex_trace_regex_int +\__kernel_debug:TF { \cs_new_protected:Npn \__regex_trace_states:n #1 { @@ -20632,13 +21047,13 @@ { 1 } { \l__regex_max_state_int - 1 } { - \__debug_trace:nnx { regex } {#1} + \__regex_trace:nnx { regex } {#1} { \iow_char:N \\toks ##1 = { \__regex_toks_use:w ##1 } } } } } { } -%% File: l3box.dtx Copyright (C) 2005-2017 The LaTeX3 Project +%% File: l3box.dtx Copyright (C) 2005-2018 The LaTeX3 Project \cs_new_protected:Npn \box_new:N #1 { \__chk_if_free_cs:N #1 @@ -20657,18 +21072,18 @@ { \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 } -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \box_set_eq:NN #1#2 { \tex_setbox:D #1 \tex_copy:D #2 } -\__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \box_gset_eq:NN #1#2 { \tex_global:D \tex_setbox:D #1 \tex_copy:D #2 } \cs_generate_variant:Nn \box_set_eq:NN { c , Nc , cc } \cs_generate_variant:Nn \box_gset_eq:NN { c , Nc , cc } -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \box_set_eq_clear:NN #1#2 { \tex_setbox:D #1 \tex_box:D #2 } -\__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \box_gset_eq_clear:NN #1#2 { \tex_global:D \tex_setbox:D #1 \tex_box:D #2 } \cs_generate_variant:Nn \box_set_eq_clear:NN { c , Nc , cc } @@ -20719,10 +21134,10 @@ { \if_box_empty:N #1 \prg_return_true: \else: \prg_return_false: \fi: } \prg_generate_conditional_variant:Nnn \box_if_empty:N { c } { p , T , F , TF } -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \box_set_to_last:N #1 { \tex_setbox:D #1 \tex_lastbox:D } -\__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \box_gset_to_last:N #1 { \tex_global:D \tex_setbox:D #1 \tex_lastbox:D } \cs_generate_variant:Nn \box_set_to_last:N { c } @@ -20763,28 +21178,28 @@ \group_end: } { - \__msg_kernel_error:nnx { kernel } { variable-not-defined } + \__kernel_msg_error:nnx { kernel } { variable-not-defined } { \token_to_str:N #2 } } } \cs_generate_variant:Nn \__box_show:NNnn { NNff } \cs_new_protected:Npn \hbox:n #1 { \tex_hbox:D \scan_stop: { \group_begin: #1 \group_end: } } -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \hbox_set:Nn #1#2 { \tex_setbox:D #1 \tex_hbox:D { \group_begin: #2 \group_end: } } -\__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \hbox_gset:Nn #1#2 { \tex_global:D \tex_setbox:D #1 \tex_hbox:D { \group_begin: #2 \group_end: } } \cs_generate_variant:Nn \hbox_set:Nn { c } \cs_generate_variant:Nn \hbox_gset:Nn { c } -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \hbox_set_to_wd:Nnn #1#2#3 { \tex_setbox:D #1 \tex_hbox:D to \__dim_eval:n {#2} { \group_begin: #3 \group_end: } } -\__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \hbox_gset_to_wd:Nnn #1#2#3 { \tex_global:D \tex_setbox:D #1 \tex_hbox:D to \__dim_eval:n {#2} @@ -20792,14 +21207,14 @@ } \cs_generate_variant:Nn \hbox_set_to_wd:Nnn { c } \cs_generate_variant:Nn \hbox_gset_to_wd:Nnn { c } -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \hbox_set:Nw #1 { \tex_setbox:D #1 \tex_hbox:D \c_group_begin_token \group_begin: } -\__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \hbox_gset:Nw #1 { \tex_global:D \tex_setbox:D #1 \tex_hbox:D @@ -20814,14 +21229,14 @@ \c_group_end_token } \cs_new_eq:NN \hbox_gset_end: \hbox_set_end: -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \hbox_set_to_wd:Nnw #1#2 { \tex_setbox:D #1 \tex_hbox:D to \__dim_eval:n {#2} \c_group_begin_token \group_begin: } -\__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \hbox_gset_to_wd:Nnw #1#2 { \tex_global:D \tex_setbox:D #1 \tex_hbox:D to \__dim_eval:n {#2} @@ -20859,13 +21274,13 @@ \tex_vbox:D to \c_zero_dim { \group_begin: #1 \par \group_end: } } -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \vbox_set:Nn #1#2 { \tex_setbox:D #1 \tex_vbox:D { \group_begin: #2 \par \group_end: } } -\__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \vbox_gset:Nn #1#2 { \tex_global:D \tex_setbox:D #1 \tex_vbox:D @@ -20873,13 +21288,13 @@ } \cs_generate_variant:Nn \vbox_set:Nn { c } \cs_generate_variant:Nn \vbox_gset:Nn { c } -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \vbox_set_top:Nn #1#2 { \tex_setbox:D #1 \tex_vtop:D { \group_begin: #2 \par \group_end: } } -\__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \vbox_gset_top:Nn #1#2 { \tex_global:D \tex_setbox:D #1 \tex_vtop:D @@ -20887,13 +21302,13 @@ } \cs_generate_variant:Nn \vbox_set_top:Nn { c } \cs_generate_variant:Nn \vbox_gset_top:Nn { c } -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \vbox_set_to_ht:Nnn #1#2#3 { \tex_setbox:D #1 \tex_vbox:D to \__dim_eval:n {#2} { \group_begin: #3 \par \group_end: } } -\__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \vbox_gset_to_ht:Nnn #1#2#3 { \tex_global:D \tex_setbox:D #1 \tex_vbox:D to \__dim_eval:n {#2} @@ -20901,14 +21316,14 @@ } \cs_generate_variant:Nn \vbox_set_to_ht:Nnn { c } \cs_generate_variant:Nn \vbox_gset_to_ht:Nnn { c } -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \vbox_set:Nw #1 { \tex_setbox:D #1 \tex_vbox:D \c_group_begin_token \group_begin: } -\__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \vbox_gset:Nw #1 { \tex_global:D \tex_setbox:D #1 \tex_vbox:D @@ -20924,14 +21339,14 @@ \c_group_end_token } \cs_new_eq:NN \vbox_gset_end: \vbox_set_end: -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \vbox_set_to_ht:Nnw #1#2 { \tex_setbox:D #1 \tex_vbox:D to \__dim_eval:n {#2} \c_group_begin_token \group_begin: } -\__debug_patch:nnNNpn { \__debug_chk_var_global:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_global:N #1 } { } \cs_new_protected:Npn \vbox_gset_to_ht:Nnw #1#2 { \tex_global:D \tex_setbox:D #1 \tex_vbox:D to \__dim_eval:n {#2} @@ -20944,7 +21359,7 @@ \cs_new_eq:NN \vbox_unpack_clear:N \tex_unvbox:D \cs_generate_variant:Nn \vbox_unpack:N { c } \cs_generate_variant:Nn \vbox_unpack_clear:N { c } -\__debug_patch:nnNNpn { \__debug_chk_var_local:N #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_local:N #1 } { } \cs_new_protected:Npn \vbox_set_split_to_ht:NNn #1#2#3 { \tex_setbox:D #1 \tex_vsplit:D #2 to \__dim_eval:n {#3} } \fp_new:N \l__box_angle_fp @@ -21246,19 +21661,19 @@ } } } -\__debug_deprecation:nnNNpn +\__kernel_patch_deprecation:nnNNpn { 2018-12-31 } { \box_resize_to_wd_and_ht_plus_dp:Nnn } \cs_new_protected:Npn \box_resize:Nnn { \box_resize_to_wd_and_ht_plus_dp:Nnn } -\__debug_deprecation:nnNNpn +\__kernel_patch_deprecation:nnNNpn { 2018-12-31 } { \box_resize_to_wd_and_ht_plus_dp:cnn } \cs_new_protected:Npn \box_resize:cnn { \box_resize_to_wd_and_ht_plus_dp:cnn } -\__debug_deprecation:nnNNpn - { 2018-12-31 } { \box_use_clear:N } +\__kernel_patch_deprecation:nnNNpn + { 2018-12-31 } { \box_use_drop:N } \cs_new_protected:Npn \box_use_clear:N { \box_use_drop:N } -\__debug_deprecation:nnNNpn - { 2018-12-31 } { \box_use_clear:c } +\__kernel_patch_deprecation:nnNNpn + { 2018-12-31 } { \box_use_drop:c } \cs_new_protected:Npn \box_use_clear:c { \box_use_drop:c } %% File: l3coffins.dtx Copyright(C) 2010-2017 The LaTeX3 Project \box_new:N \l__coffin_internal_box @@ -21311,7 +21726,7 @@ \coffin_if_exist:NTF #1 { #2 } { - \__msg_kernel_error:nnx { kernel } { unknown-coffin } + \__kernel_msg_error:nnx { kernel } { unknown-coffin } { \token_to_str:N #1 } } } @@ -21456,7 +21871,7 @@ \prop_get:cnNF { l__coffin_poles_ \__int_value:w #1 _prop } {#2} #3 { - \__msg_kernel_error:nnxx { kernel } { unknown-coffin-pole } + \__kernel_msg_error:nnxx { kernel } { unknown-coffin-pole } {#2} { \token_to_str:N #1 } \tl_set:Nn #3 { { 0pt } { 0pt } { 0pt } { 0pt } } } @@ -21564,7 +21979,7 @@ \l__coffin_pole_a_tl \l__coffin_pole_b_tl \bool_if:NT \l__coffin_error_bool { - \__msg_kernel_error:nn { kernel } { no-pole-intersection } + \__kernel_msg_error:nn { kernel } { no-pole-intersection } \dim_zero:N \l__coffin_x_dim \dim_zero:N \l__coffin_y_dim } @@ -22039,7 +22454,7 @@ { } } } -\__msg_kernel_new:nnnn { kernel } { no-pole-intersection } +\__kernel_msg_new:nnnn { kernel } { no-pole-intersection } { No~intersection~between~coffin~poles. } { \c__msg_coding_error_text_tl @@ -22047,22 +22462,22 @@ but~they~do~not~have~a~unique~meeting~point:~ the~value~(0~pt,~0~pt)~will~be~used. } -\__msg_kernel_new:nnnn { kernel } { unknown-coffin } +\__kernel_msg_new:nnnn { kernel } { unknown-coffin } { Unknown~coffin~'#1'. } { The~coffin~'#1'~was~never~defined. } -\__msg_kernel_new:nnnn { kernel } { unknown-coffin-pole } +\__kernel_msg_new:nnnn { kernel } { unknown-coffin-pole } { Pole~'#1'~unknown~for~coffin~'#2'. } { \c__msg_coding_error_text_tl LaTeX~was~asked~to~find~a~typesetting~pole~for~a~coffin,~ but~either~the~coffin~does~not~exist~or~the~pole~name~is~wrong. } -\__msg_kernel_new:nnn { kernel } { show-coffin } +\__kernel_msg_new:nnn { kernel } { show-coffin } { Size~of~coffin~#1 : #2 \\ Poles~of~coffin~#1 : #3 . } -%% File: l3color.dtx Copyright(C) 2011,2012,2014,2016,2017 The LaTeX3 Project +%% File: l3color-base.dtx Copyright(C) 2011,2012,2014,2016-2018 The LaTeX3 Project \cs_new_eq:NN \color_group_begin: \group_begin: \cs_new_protected:Npn \color_group_end: { @@ -22071,10 +22486,23 @@ } \cs_new_protected:Npn \color_ensure_current: { - \__driver_color_pickup:N \l__color_current_tl - \__driver_color_select:V \l__color_current_tl - \group_insert_after:N \__driver_color_reset: - } + \driver_color_pickup:N \l__color_current_tl + \__color_select:V \l__color_current_tl + \group_insert_after:N \driver_color_reset: + } +\cs_new_protected:Npn \__color_select:n #1 + { \__color_select:w #1 \q_stop } +\cs_generate_variant:Nn \__color_select:n { V } +\cs_new_protected:Npn \__color_select:w #1 ~ #2 \q_stop + { \use:c { __color_select_ #1 :w } #2 \q_stop } +\cs_new_protected:Npn \__color_select_cmyk:w #1 ~ #2 ~ #3 ~ #4 \q_stop + { \driver_color_cmyk:nnnn {#1} {#2} {#3} {#4} } +\cs_new_protected:Npn \__color_select_gray:w #1 \q_stop + { \driver_color_gray:n {#1} } +\cs_new_protected:Npn \__color_select_rgb:w #1 ~ #2 ~ #3 \q_stop + { \driver_color_rgb:nnn {#1} {#2} {#3} } +\cs_new_protected:Npn \__color_select_spot:w #1 ~ #2 \q_stop + { \driver_color_spot:nn {#1} {#2} } \tl_new:N \l__color_current_tl \tl_set:Nn \l__color_current_tl { gray~0 } %% File: l3sys.dtx Copyright (C) 2015-2017 The LaTeX3 Project @@ -22161,15 +22589,15 @@ \cs_new_eq:NN \sys_if_output_pdf_p: \c_false_bool \str_const:Nn \c_sys_output_str { dvi } } -%% File: l3deprecation.dtx (C) Copyright 2017 The LaTeX3 Project +%% File: l3deprecation.dtx (C) Copyright 2017-2018 The LaTeX3 Project \cs_new_protected:Npn \__deprecation_error:Nnn #1#2#3 { \etex_protected:D \tex_outer:D \tex_edef:D #1 { - \exp_not:N \__msg_kernel_expandable_error:nnnnn + \exp_not:N \__kernel_msg_expandable_error:nnnnn { kernel } { deprecated-command } { \tl_to_str:n {#3} } { \token_to_str:N #1 } { \tl_to_str:n {#2} } - \exp_not:N \__msg_kernel_error:nnxxx + \exp_not:N \__kernel_msg_error:nnxxx { kernel } { deprecated-command } { \tl_to_str:n {#3} } { \token_to_str:N #1 } { \tl_to_str:n {#2} } } @@ -22205,21 +22633,16 @@ \__deprecation_error:Nnn \xetex_if_engine:F { \sys_if_engine_xetex:F } { 2017-01-01 } \__deprecation_error:Nnn \xetex_if_engine:T { \sys_if_engine_xetex:T } { 2017-01-01 } \__deprecation_error:Nnn \xetex_if_engine:TF { \sys_if_engine_xetex:TF } { 2017-01-01 } -\__debug:TF +\__kernel_deprecation_code:nn { - \tl_gput_right:Nn \g__debug_deprecation_on_tl - { - \cs_set_protected:Npn \__cs_generate_variant_loop_warning:nnxxxx - { \__msg_kernel_error:nnxxxx } - } - \tl_gput_right:Nn \g__debug_deprecation_off_tl - { - \cs_set_protected:Npn \__cs_generate_variant_loop_warning:nnxxxx - { \__msg_kernel_warning:nnxxxx } - } + \cs_set_protected:Npn \__cs_generate_variant_loop_warning:nnxxxx + { \__kernel_msg_error:nnxxxx } } - { } -%% File: l3candidates.dtx Copyright (C) 2012-2017 The LaTeX3 Project + { + \cs_set_protected:Npn \__cs_generate_variant_loop_warning:nnxxxx + { \__kernel_msg_warning:nnxxxx } + } +%% File: l3candidates.dtx Copyright (C) 2012-2018 The LaTeX3 Project \cs_new_protected:Npx \mode_leave_vertical: { \cs_if_exist:NTF \pdftex_quitvmode:D @@ -22615,13 +23038,13 @@ \cs_set_protected:Npn \__file_get_details:nnN #1#2#3 { \tl_clear:N #3 - \__msg_kernel_error:nnx + \__kernel_msg_error:nnx { kernel } { xetex-primitive-not-available } { \exp_not:c { pdffile #2 } } } } } -\__msg_kernel_new:nnnn { kernel } { xetex-primitive-not-available } +\__kernel_msg_new:nnnn { kernel } { xetex-primitive-not-available } { Primitive~\token_to_str:N #1 not~available } { XeTeX~does~not~currently~provide~functionality~equivalent~to~the~ @@ -22640,7 +23063,7 @@ {#2} { \__file_input:V \l__file_full_name_str } } -\__debug_deprecation:nnNNpn { 2017-12-31 } +\__kernel_patch_deprecation:nnNNpn { 2017-12-31 } { \file_if_exist:nTF and~ \file_input:n } \cs_new_protected:Npn \file_if_exist_input:nTF #1#2#3 { @@ -22648,7 +23071,7 @@ \str_if_empty:NTF \l__file_full_name_str {#3} { #2 \__file_input:V \l__file_full_name_str } } -\__debug_deprecation:nnNNpn { 2017-12-31 } +\__kernel_patch_deprecation:nnNNpn { 2017-12-31 } { \file_if_exist:nT and~ \file_input:n } \cs_new_protected:Npn \file_if_exist_input:nT #1#2 { @@ -22659,10 +23082,10 @@ \cs_new_protected:Npn \file_input_stop: { \tex_endinput:D } \cs_if_exist:NTF \pdftex_uniformdeviate:D { - \__debug_patch_args:nNNpn + \__kernel_patch_args:nNNpn { - { \__debug_chk_expr:nNnN {#1} \__int_eval:w { } \int_rand:nn } - { \__debug_chk_expr:nNnN {#2} \__int_eval:w { } \int_rand:nn } + { \__kernel_chk_expr:nNnN {#1} \__int_eval:w { } \int_rand:nn } + { \__kernel_chk_expr:nNnN {#2} \__int_eval:w { } \int_rand:nn } } \cs_new:Npn \int_rand:nn #1#2 { @@ -22674,7 +23097,7 @@ { \int_compare:nNnTF {#1} > {#2} { - \__msg_kernel_expandable_error:nnnn + \__kernel_msg_expandable_error:nnnn { kernel } { backward-range } {#1} {#2} \__int_rand:ww #2; #1; } @@ -22709,13 +23132,13 @@ { \cs_new:Npn \int_rand:nn #1#2 { - \__msg_kernel_expandable_error:nn { kernel } { fp-no-random } + \__kernel_msg_expandable_error:nn { kernel } { fp-no-random } \int_eval:n {#1} } } \cs_if_exist:NT \pdftex_uniformdeviate:D { - \__msg_kernel_new:nnn { kernel } { backward-range } + \__kernel_msg_new:nnn { kernel } { backward-range } { Bounds~ordered~backwards~in~\int_rand:nn {#1}~{#2}. } } \cs_new:Npn \msg_expandable_error:nnnnnn #1#2#3#4#5#6 @@ -22768,7 +23191,7 @@ \use:nn { ~ } { ~ } => \use:nn { ~ } { ~ } \exp_not:N \tl_to_str:n {#2} } -\__debug_patch:nnNNpn { \__debug_chk_var_scope:NN c #1 } { } +\__kernel_patch:nnNNpn { \__kernel_chk_var_scope:NN c #1 } { } \cs_new_protected:Npn \bool_const:Nn #1#2 { \__chk_if_free_cs:N #1 @@ -24200,7 +24623,7 @@ { \cs_set:Npn #1 ##1 { - \__msg_kernel_expandable_error:nnn + \__kernel_msg_expandable_error:nnn { kernel } { luatex-required } { #1 } } } @@ -24209,12 +24632,12 @@ { \cs_set_protected:Npn #1 ##1 { - \__msg_kernel_error:nnn + \__kernel_msg_error:nnn { kernel } { luatex-required } { #1 } } } } -\__msg_kernel_new:nnnn { kernel } { luatex-required } +\__kernel_msg_new:nnnn { kernel } { luatex-required } { LuaTeX~engine~not~in~use!~Ignoring~#1. } { The~feature~you~are~using~is~only~available~ |