diff options
author | Karl Berry <karl@freefriends.org> | 2018-08-24 22:18:02 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-08-24 22:18:02 +0000 |
commit | 9067afb3f8bce172638d12a6f926ab82547590e6 (patch) | |
tree | fa13c48c4ed98564fbcee7220e7c1b76b4fbfefe /Master/texmf-dist/source/latex/l3kernel | |
parent | 8d113437aa8a3fae9dc8603507fa4aa9f64c5517 (diff) |
l3 (24aug18)
git-svn-id: svn://tug.org/texlive/trunk@48476 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/l3kernel')
52 files changed, 433 insertions, 277 deletions
diff --git a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx index 72f276c7c6c..9d19e45ee11 100644 --- a/Master/texmf-dist/source/latex/l3kernel/expl3.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/expl3.dtx @@ -21,7 +21,7 @@ % for those people who are interested. % %<*driver|generic|package> -\def\ExplFileDate{2018-06-14}% +\def\ExplFileDate{2018-08-23}% %</driver|generic|package> %<*driver> \documentclass[full]{l3doc} @@ -49,7 +49,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx b/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx index a92680e7e71..f8926277432 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3alloc.dtx @@ -41,7 +41,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx index c5581d46850..90f6d3c80ec 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx @@ -41,7 +41,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % @@ -939,6 +939,20 @@ % (\emph{i.e.}~an \texttt{N} argument). % \end{function} % +% \begin{function}[EXP, added = 2018-06-18]{\use:e} +% \begin{syntax} +% \cs{use:e} \Arg{expandable tokens} +% \end{syntax} +% Fully expands the \meta{token list} in an \texttt{x}-type manner, +% \emph{but} the function remains fully expandable, and parameter +% character (usually~|#|) need not be doubled. +% \begin{texnote} +% \cs{use:e} the a wrapper around the primitive \tn{expanded} +% where it is available: +% it requires two expansions to complete its action. +% \end{texnote} +% \end{function} +% % \begin{function}[updated = 2011-12-31]{\use:x} % \begin{syntax} % \cs{use:x} \Arg{expandable tokens} @@ -1454,11 +1468,13 @@ %<@@=use> % \end{macrocode} % -% \begin{macro}[EXP]{\use_x:n} -% A candidate, but needed early as it links to string comparisons. -% Currently \LuaTeX-only. +% \begin{macro}[EXP]{\use:e} +% Currently \LuaTeX-only: emulated for older engines. % \begin{macrocode} -\cs_set:Npn \use_x:n #1 { \tex_expanded:D {#1} } +\cs_set:Npn \use:e #1 { \tex_expanded:D {#1} } +\tex_ifdefined:D \tex_expanded:D \tex_else:D + \cs_set:Npn \use:e #1 { \exp_args:Ne \use:n {#1} } +\tex_fi:D % \end{macrocode} % \end{macro} % @@ -3240,7 +3256,7 @@ { \bool_if:NTF #3 { - \str_if_eq_x:nnF { } + \str_if_eq:eeF { } { \tl_map_function:nN {#2} \@@_generate_from_signature:n } { \__kernel_msg_error:nnx { kernel } { non-base-function } diff --git a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx index 0d69acb9600..de180429e47 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx @@ -138,7 +138,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % @@ -340,7 +340,7 @@ }>0 % \everyjob\expandafter{% \the\expandafter\everyjob - \csname\detokenize{lua_now_x:n}\endcsname{require("expl3")}% + \csname\detokenize{lua_now:n}\endcsname{require("expl3")}% }% \fi \fi diff --git a/Master/texmf-dist/source/latex/l3kernel/l3box.dtx b/Master/texmf-dist/source/latex/l3kernel/l3box.dtx index d9e6e44abe6..552a2e93ed9 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3box.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3box.dtx @@ -41,7 +41,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % @@ -1606,7 +1606,7 @@ % % \begin{macro}{\box_rotate:Nn} % \begin{macro}{\@@_rotate:N} -% \begin{macro}{\@@_rotate_x:nnN, \@@_rotate_y:nnN} +% \begin{macro}{\@@_rotate_xdir:nnN, \@@_rotate_ydir:nnN} % \begin{macro} % { % \@@_rotate_quadrant_one:, \@@_rotate_quadrant_two:, @@ -1729,7 +1729,7 @@ % the equivalent function in the \pkg{l3coffins} module, where both parts % are needed. % \begin{macrocode} -\cs_new_protected:Npn \@@_rotate_x:nnN #1#2#3 +\cs_new_protected:Npn \@@_rotate_xdir:nnN #1#2#3 { \dim_set:Nn #3 { @@ -1740,7 +1740,7 @@ } } } -\cs_new_protected:Npn \@@_rotate_y:nnN #1#2#3 +\cs_new_protected:Npn \@@_rotate_ydir:nnN #1#2#3 { \dim_set:Nn #3 { @@ -1762,46 +1762,46 @@ % \begin{macrocode} \cs_new_protected:Npn \@@_rotate_quadrant_one: { - \@@_rotate_y:nnN \l_@@_right_dim \l_@@_top_dim + \@@_rotate_ydir:nnN \l_@@_right_dim \l_@@_top_dim \l_@@_top_new_dim - \@@_rotate_y:nnN \l_@@_left_dim \l_@@_bottom_dim + \@@_rotate_ydir:nnN \l_@@_left_dim \l_@@_bottom_dim \l_@@_bottom_new_dim - \@@_rotate_x:nnN \l_@@_left_dim \l_@@_top_dim + \@@_rotate_xdir:nnN \l_@@_left_dim \l_@@_top_dim \l_@@_left_new_dim - \@@_rotate_x:nnN \l_@@_right_dim \l_@@_bottom_dim + \@@_rotate_xdir:nnN \l_@@_right_dim \l_@@_bottom_dim \l_@@_right_new_dim } \cs_new_protected:Npn \@@_rotate_quadrant_two: { - \@@_rotate_y:nnN \l_@@_right_dim \l_@@_bottom_dim + \@@_rotate_ydir:nnN \l_@@_right_dim \l_@@_bottom_dim \l_@@_top_new_dim - \@@_rotate_y:nnN \l_@@_left_dim \l_@@_top_dim + \@@_rotate_ydir:nnN \l_@@_left_dim \l_@@_top_dim \l_@@_bottom_new_dim - \@@_rotate_x:nnN \l_@@_right_dim \l_@@_top_dim + \@@_rotate_xdir:nnN \l_@@_right_dim \l_@@_top_dim \l_@@_left_new_dim - \@@_rotate_x:nnN \l_@@_left_dim \l_@@_bottom_dim + \@@_rotate_xdir:nnN \l_@@_left_dim \l_@@_bottom_dim \l_@@_right_new_dim } \cs_new_protected:Npn \@@_rotate_quadrant_three: { - \@@_rotate_y:nnN \l_@@_left_dim \l_@@_bottom_dim + \@@_rotate_ydir:nnN \l_@@_left_dim \l_@@_bottom_dim \l_@@_top_new_dim - \@@_rotate_y:nnN \l_@@_right_dim \l_@@_top_dim + \@@_rotate_ydir:nnN \l_@@_right_dim \l_@@_top_dim \l_@@_bottom_new_dim - \@@_rotate_x:nnN \l_@@_right_dim \l_@@_bottom_dim + \@@_rotate_xdir:nnN \l_@@_right_dim \l_@@_bottom_dim \l_@@_left_new_dim - \@@_rotate_x:nnN \l_@@_left_dim \l_@@_top_dim + \@@_rotate_xdir:nnN \l_@@_left_dim \l_@@_top_dim \l_@@_right_new_dim } \cs_new_protected:Npn \@@_rotate_quadrant_four: { - \@@_rotate_y:nnN \l_@@_left_dim \l_@@_top_dim + \@@_rotate_ydir:nnN \l_@@_left_dim \l_@@_top_dim \l_@@_top_new_dim - \@@_rotate_y:nnN \l_@@_right_dim \l_@@_bottom_dim + \@@_rotate_ydir:nnN \l_@@_right_dim \l_@@_bottom_dim \l_@@_bottom_new_dim - \@@_rotate_x:nnN \l_@@_left_dim \l_@@_bottom_dim + \@@_rotate_xdir:nnN \l_@@_left_dim \l_@@_bottom_dim \l_@@_left_new_dim - \@@_rotate_x:nnN \l_@@_right_dim \l_@@_top_dim + \@@_rotate_xdir:nnN \l_@@_right_dim \l_@@_top_dim \l_@@_right_new_dim } % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx index 58c53afecc0..43c19185279 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3candidates.dtx @@ -42,7 +42,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % @@ -137,19 +137,6 @@ % \end{texnote} % \end{function} % -% \begin{function}[EXP, added = 2018-04-17]{\use_x:n} -% \begin{syntax} -% \cs{use_x:n} \Arg{token list} -% \end{syntax} -% Fully expands the \meta{token list} in an \texttt{x}-type manner, -% \emph{but} the function remains fully expandable, and parameter -% character (usually~|#|) need not be doubled. -% \begin{texnote} -% \cs{use_x:n} the a wrapper around the primitive \tn{expanded}: -% it requires two expansions to complete its action. -% \end{texnote} -% \end{function} -% % \section{Additions to \pkg{l3box}} % % \subsection{Viewing part of a box} @@ -359,7 +346,7 @@ % If found, sets the \meta{str var} to the size of the file in bytes. % Where the file is not found, the \meta{str var} will be empty. % \begin{texnote} -% The \XeTeX{} engine provides no way to implement this function. +% Currently this is not available with \XeTeX{}. % \end{texnote} % \end{function} % @@ -375,7 +362,7 @@ % (UTC) or \meta{plus-minus}\meta{hours}|'|\meta{minutes}|'|. % Where the file is not found, the \meta{str var} will be empty. % \begin{texnote} -% The \XeTeX{} engine provides no way to implement this function. +% Currently this is not available with \XeTeX{}. % \end{texnote} % \end{function} % @@ -905,6 +892,24 @@ % \end{texnote} % \end{function} % +% \begin{function}[added = 2018-07-27, EXP, pTF] +% { +% \sys_if_platform_unix:, +% \sys_if_platform_windows: +% } +% \begin{syntax} +% \cs{sys_if_platform_unix:TF} \Arg{true code} \Arg{false code} +% \end{syntax} +% Conditionals which allow platform-specific code to be used. The names +% follow the \Lua{} |os.type()| function, \emph{i.e.}~all Unix-like systems +% are |unix| (including Linux and MacOS). +% \end{function} +% +% \begin{variable}[added = 2018-07-27]{\c_sys_platform_str} +% The current platform given as a lower case string: one of +% |unix|, |windows| or |unknown|. +% \end{variable} +% % \begin{variable}[added = 2017-05-27]{\c_sys_shell_escape_int} % This variable exposes the internal triple of the shell escape % status. The possible values are @@ -1225,6 +1230,21 @@ % argument. % \end{function} % +% \begin{function}[added = 2018-07-23] +% { +% \tl_set_from_shell:Nnn, \tl_set_from_shell:cnn, +% \tl_gset_from_shell:Nnn, \tl_gset_from_shell:cnn +% } +% \begin{syntax} +% \cs{tl_set_from_shell:Nnn} \meta{tl~var} \Arg{setup} \Arg{shell~command} +% \end{syntax} +% Defines \meta{tl} to the text returned by the \meta{shell command}. +% Category codes may need to be set appropriately via the \meta{setup} +% argument. If shell escape is disabled, the \meta{tl~var} will be empty. +% Note that quote characters (|"|) \emph{cannot} be used inside the +% \meta{shell command}. +% \end{function} +% % \begin{function}[EXP, added = 2016-12-06] % {\tl_rand_item:N, \tl_rand_item:c, \tl_rand_item:n} % \begin{syntax} @@ -2164,10 +2184,10 @@ \file_get_full_name:nN {#1} \l_@@_full_name_str \str_set:Nx #3 { - \lua_now_x:n + \lua_now:e { l3kernel.file#2 - ( " \lua_escape_x:n { \l_@@_full_name_str } " ) + ( " \lua_escape:e { \l_@@_full_name_str } " ) } } } @@ -2878,6 +2898,45 @@ % \end{macrocode} % \end{variable} % +% \begin{variable}{\c_sys_platform_str} +% Detecting the platform on \LuaTeX{} is easy: for other engines, we use +% the fact that the two common cases have special null files. It is possible +% to probe further (see package \pkg{platform}), but that requires shell +% escape and seems unlikely to be useful. +% \begin{macrocode} +\sys_if_engine_luatex:TF + { + \str_const:Nx \c_sys_platform_str + { \lua_now:n { tex.print(os.type) } } + } + { + \file_if_exist:nTF { nul: } + { + \file_if_exist:nF { /dev/null } + { \str_const:Nn \c_sys_platform_str { windows } } + } + { + \file_if_exist:nT { /dev/null } + { \str_const:Nn \c_sys_platform_str { unix } } + } + } +\cs_if_exist:NF \c_sys_platform_str + { \str_const:Nn \c_sys_platform_str { unknown } } +% \end{macrocode} +% \end{variable} +% \begin{macro}[pTF]{\sys_if_platform_unix:} +% \begin{macro}[pTF]{\sys_if_platform_windows:} +% We can now set up the tests. +% \begin{macrocode} +\clist_map_inline:nn { unix , windows } + { + \@@_const:nn { sys_if_platform_ #1 } + { \str_if_eq_p:Vn \c_sys_platform_str { #1 } } + } +% \end{macrocode} +% \end{macro} +% \end{macro} +% % \begin{macro}[EXP, pTF]{\sys_if_shell:, \sys_if_shell_unrestricted:, \sys_if_shell_restricted:} % Performs a check for whether shell escape is enabled. The first set % of functions returns true if either of restricted or unrestricted @@ -2895,7 +2954,7 @@ % % \begin{variable}{\c_@@_shell_stream_int} % This is not needed for \LuaTeX{}: shell escape there isn't done using -% a \TeX{} interface +% a \TeX{} interface. % \begin{macrocode} \sys_if_engine_luatex:F { \int_const:Nn \c_@@_shell_stream_int { 18 } } @@ -2909,8 +2968,8 @@ { \cs_new_protected:Npn \sys_shell_now:n #1 { - \lua_now_x:n - { os.execute(" \lua_escape_x:n { \tl_to_str:n {#1} } ") } + \lua_now:e + { os.execute(" \lua_escape:e { \tl_to_str:n {#1} } ") } } } { @@ -2928,8 +2987,8 @@ { \cs_new_protected:Npn \sys_shell_shipout:n #1 { - \lua_shipout_x:n - { os.execute(" \lua_escape_x:n { \tl_to_str:n {#1} } ") } + \lua_shipout_e:n + { os.execute(" \lua_escape:e { \tl_to_str:n {#1} } ") } } } { @@ -3048,6 +3107,7 @@ % } % \begin{macro}{\@@_set_from_file:NNnn} % \begin{macro}{\@@_from_file_do:w} +% \begin{macro}{\@@_set_from:nNNn} % The approach here is similar to that for doing a rescan, and so the same % internals can be reused. Thus the plan is to insert a pair of tokens of % the same charcode but different catcodes after the file has been read. @@ -3066,25 +3126,32 @@ \str_if_empty:NTF \l_@@_file_name_str { \__kernel_file_missing:n {#4} } { - \group_begin: - \exp_args:No \tex_everyeof:D - { \c_@@_rescan_marker_tl \exp_not:N } - #3 \scan_stop: - \exp_after:wN \@@_from_file_do:w - \exp_after:wN \prg_do_nothing: - \tex_input:D \l_@@_file_name_str \scan_stop: - \exp_args:NNNo \group_end: - #1 #2 \l_@@_internal_a_tl + \exp_args:NV \@@_set_from:nNNn + \l_@@_file_name_str + #1 #2 {#3} } } \exp_args:Nno \use:nn { \cs_new_protected:Npn \@@_from_file_do:w #1 } { \c_@@_rescan_marker_tl } { \tl_set:No \l_@@_internal_a_tl {#1} } +\cs_new_protected:Npn \@@_set_from:nNNn #1#2#3#4 + { + \group_begin: + \exp_args:No \tex_everyeof:D + { \c_@@_rescan_marker_tl \exp_not:N } + #4 \scan_stop: + \exp_after:wN \@@_from_file_do:w + \exp_after:wN \prg_do_nothing: + \tex_input:D #1 \scan_stop: + \exp_args:NNNo \group_end: + #2 #3 \l_@@_internal_a_tl + } % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} +% \end{macro} % % \begin{macro} % { @@ -3128,6 +3195,42 @@ % \end{macrocode} % \end{variable} % +% \begin{macro} +% { +% \tl_set_from_shell:Nnn, \tl_set_from_shell:cnn, +% \tl_gset_from_shell:Nnn, \tl_gset_from_shell:cnn +% } +% \begin{macro}{\@@_set_from_shell:NNnn} +% Setting using a shell is at this level just a slightly specialised file +% operation. +% \begin{macrocode} +\cs_new_protected:Npn \tl_set_from_shell:Nnn + { \@@_set_from_shell:NNnn \tl_set:Nn } +\cs_generate_variant:Nn \tl_set_from_shell:Nnn { c } +\cs_new_protected:Npn \tl_gset_from_shell:Nnn + { \@@_set_from_shell:NNnn \tl_gset:Nn } +\cs_generate_variant:Nn \tl_gset_from_shell:Nnn { c } +\cs_new_protected:Npn \@@_set_from_shell:NNnn #1#2#3#4 + { + \sys_if_shell:TF + { + \tl_set:Nn \l_@@_internal_a_tl {#4} + \tl_if_in:NnTF \l_@@_internal_a_tl { " } + { + \__kernel_msg_error:nnx + { kernel } { quote-in-shell } {#4} + } + { \@@_set_from:nNNn { | " #4 " } #1 #2 {#3} } + } + { #1 #2 { } } + } +\__kernel_msg_new:nnnn { kernel } { quote-in-shell } + { Quotes~in~shell~command~'#1'. } + { Shell~commands~cannot~contain~quotes~("). } +% \end{macrocode} +% \end{macro} +% \end{macro} +% % \subsubsection{Unicode case changing} % % The mechanisms needed for case changing are somewhat involved, particularly diff --git a/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx b/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx index 85f9dcc0f5a..97ff75f1a17 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3clist.dtx @@ -43,7 +43,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx b/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx index b43b944ae69..fb396cf66e6 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3coffins.dtx @@ -41,7 +41,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx b/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx index 0dea8a8f8ee..9ac01cb070d 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3color-base.dtx @@ -41,7 +41,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx b/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx index bdfc64fb87d..c8f6a5e5da7 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3deprecation.dtx @@ -41,7 +41,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % @@ -138,7 +138,7 @@ \__kernel_deprecation_error:Nnn \str_case:onn { \str_case:onF } { 2015-07-14 } \__kernel_deprecation_error:Nnn \str_case_x:nnn - { \str_case_x:nnF } { 2015-07-14 } + { \str_case_e:nnF } { 2015-07-14 } \__kernel_deprecation_error:Nnn \tl_case:cnn { \tl_case:cnF } { 2015-07-14 } \__kernel_deprecation_error:Nnn \tl_case:Nnn diff --git a/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx b/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx index d8346b81541..b1f0a63c060 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3doc.dtx @@ -77,7 +77,7 @@ and all files in that bundle must be distributed together. % % \title{The \cls{l3doc} class} % \author{\Team} -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % \maketitle % \tableofcontents % @@ -2191,7 +2191,7 @@ and all files in that bundle must be distributed together. \tl_greplace_all:Nno \g_@@_base_name_tl { ~ } { \c_catcode_other_space_tl } \seq_get:NN #1 \l_@@_tmpa_tl - \str_if_eq_x:nnTF { \l_@@_tmpa_tl } { \scan_stop: } + \str_if_eq:VnTF \l_@@_tmpa_tl { \scan_stop: } { \seq_gclear:N \g_@@_variants_seq \@@_names_typeset_auxii:x { \g_@@_base_name_tl } @@ -2296,7 +2296,7 @@ and all files in that bundle must be distributed together. #1 { \l_@@_tmpa_tl - \str_if_eq_x:nnF { \l_@@_tmpb_tl } { \scan_stop: } + \str_if_eq:VnF \l_@@_tmpb_tl { \scan_stop: } { : \l_@@_tmpb_tl } \bool_if:NT \l_@@_macro_TF_bool { TF } } @@ -3983,7 +3983,7 @@ and all files in that bundle must be distributed together. \tl_if_empty:nTF {#3} { { } { } { } } { - \str_if_eq_x:nnTF {#3} { TeX } + \str_if_eq:nnTF {#3} { TeX } { { TeX~and~LaTeX2e } { \string\TeX{}~and~\string\LaTeXe{} } diff --git a/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx index 632d72902ea..14eb116ba35 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3docstrip.dtx @@ -61,7 +61,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx b/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx index 52987355f9f..d46578027d6 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3drivers.dtx @@ -41,7 +41,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % @@ -481,23 +481,23 @@ %<*package> \ProvidesExplFile %<*dvipdfmx> - {l3dvidpfmx.def}{2018-06-14}{} + {l3dvidpfmx.def}{2018-08-23}{} {L3 Experimental driver: dvipdfmx} %</dvipdfmx> %<*dvips> - {l3dvips.def}{2018-06-14}{} + {l3dvips.def}{2018-08-23}{} {L3 Experimental driver: dvips} %</dvips> %<*dvisvgm> - {l3dvisvgm.def}{2018-06-14}{} + {l3dvisvgm.def}{2018-08-23}{} {L3 Experimental driver: dvisvgm} %</dvisvgm> %<*pdfmode> - {l3pdfmode.def}{2018-06-14}{} + {l3pdfmode.def}{2018-08-23}{} {L3 Experimental driver: PDF mode} %</pdfmode> %<*xdvipdfmx> - {l3xdvidpfmx.def}{2018-06-14}{} + {l3xdvidpfmx.def}{2018-08-23}{} {L3 Experimental driver: xdvipdfmx} %</xdvipdfmx> %</package> @@ -514,14 +514,14 @@ % takes most of the same code. % \end{itemize} % -% \begin{macro}{\@@_literal_x:n, \@@_literal:n, \@@_literal:x} +% \begin{macro}{\@@_literal:e, \@@_literal:n, \@@_literal:x} % The one shared function for all drivers is access to the basic % \tn{special} primitive: it has slightly odd expansion behaviour % so a wrapper is provided. % \begin{macrocode} -\cs_new_eq:NN \@@_literal_x:n \tex_special:D +\cs_new_eq:NN \@@_literal:e \tex_special:D \cs_new_protected:Npn \@@_literal:n #1 - { \@@_literal_x:n { \exp_not:n {#1} } } + { \@@_literal:e { \exp_not:n {#1} } } \cs_generate_variant:Nn \@@_literal:n { x } % \end{macrocode} % \end{macro} @@ -695,7 +695,7 @@ % \end{variable} % % \begin{macro}{\driver_color_cmyk:nnnn, \@@_color_cmyk:nnnn} -% \begin{macro}{\driver_color_gray:n, @@_color_gray:n} +% \begin{macro}{\driver_color_gray:n, \@@_color_gray:n} % \begin{macro}{\driver_color_rgb:nnn, \@@_color_rgb:nnn} % \begin{macro}{\driver_color_spot:nn} % \begin{macro}{\@@_color_select:n, \@@_color_select:x} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx index 0352ce35604..4a4224b5936 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3expan.dtx @@ -41,7 +41,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3file.dtx b/Master/texmf-dist/source/latex/l3kernel/l3file.dtx index 724bdfeb3d0..ecacb84a841 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3file.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3file.dtx @@ -42,7 +42,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3final.dtx b/Master/texmf-dist/source/latex/l3kernel/l3final.dtx index b8dd58c15cc..bf5c5d7e3b5 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3final.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3final.dtx @@ -41,7 +41,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % @@ -255,7 +255,7 @@ \tex_everyjob:D \exp_after:wN { \tex_the:D \tex_everyjob:D - \lua_now_x:n { require("l3format.lua") } + \lua_now:n { require("l3format.lua") } } } \use:x diff --git a/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx b/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx index 0f41b396bba..5caf1ad0be1 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3flag.dtx @@ -41,7 +41,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx index 84debbf16d5..9e98ff8f43e 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-assign.dtx @@ -38,7 +38,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % \maketitle % % \begin{documentation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx index 639e1261738..0e17a7ddb4d 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-aux.dtx @@ -41,7 +41,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % @@ -1238,17 +1238,17 @@ % % \subsection{Fast string comparison} % -% \begin{macro}{\@@_str_if_eq_x:nn} +% \begin{macro}{\@@_str_if_eq:nn} % A private version of the low-level string comparison function. As % the nature of the arguments is restricted and as speed is of the essence, % this version does not seek to deal with |#| tokens. % No \pkg{l3sys} or \pkg{l3luatex} just yet so we have to define in terms of % primitives. % \begin{macrocode} -\cs_new:Npn \@@_str_if_eq_x:nn #1#2 { \tex_strcmp:D {#1} {#2} } +\cs_new:Npn \@@_str_if_eq:nn #1#2 { \tex_strcmp:D {#1} {#2} } \sys_if_engine_luatex:T { - \cs_set:Npn \@@_str_if_eq_x:nn #1#2 + \cs_set:Npn \@@_str_if_eq:nn #1#2 { \tex_directlua:D { diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx index c57242901d4..fed862dc2f2 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-basics.dtx @@ -38,7 +38,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx index 2e4af3817a8..c473ab1b110 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-convert.dtx @@ -41,7 +41,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx index b07da9d6fd5..dddaebe50e9 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-expo.dtx @@ -38,7 +38,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % @@ -995,7 +995,7 @@ \cs_new:Npn \@@_pow_normal_o:ww \s_@@ \@@_chk:w 1 #1#2#3; \s_@@ \@@_chk:w #4#5 { - \if_int_compare:w \@@_str_if_eq_x:nn { #2 #3 } + \if_int_compare:w \@@_str_if_eq:nn { #2 #3 } { 1 {1000} {0000} {0000} {0000} } = 0 \exp_stop_f: \if_int_compare:w #4 #1 = 32 \exp_stop_f: \exp_after:wN \@@_case_return_ii_o:ww diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx index c6bb0534d92..99bfe1d1ae7 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-extended.dtx @@ -38,7 +38,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx index bd7bbf096c6..ffc7edf283b 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-logic.dtx @@ -38,7 +38,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx index aca31d7b51b..c56d92ea761 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx @@ -38,7 +38,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % @@ -1752,7 +1752,7 @@ \if_catcode:w \scan_stop: \exp_not:N #1 \if_meaning:w \scan_stop: #1 \if_int_compare:w - \@@_str_if_eq_x:nn { \s_@@ } { \exp_not:N #1 } + \@@_str_if_eq:nn { \s_@@ } { \exp_not:N #1 } = 0 \exp_stop_f: 0 \__kernel_msg_expandable_error:nnn @@ -1766,7 +1766,7 @@ \fi: \else: \if_int_compare:w - \@@_str_if_eq_x:nn { \int_value:w #1 } { \tex_the:D #1 } + \@@_str_if_eq:nn { \int_value:w #1 } { \tex_the:D #1 } = 0 \exp_stop_f: \int_value:w #1 \else: @@ -2260,7 +2260,7 @@ { \if_catcode:w \scan_stop: \exp_not:N #2 \if_int_compare:w - \@@_str_if_eq_x:nn { \s_@@_mark } { \exp_not:N #2 } + \@@_str_if_eq:nn { \s_@@_mark } { \exp_not:N #2 } = 0 \exp_stop_f: \exp_after:wN \exp_after:wN \exp_after:wN \@@_parse_infix_mark:NNN diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx index 76472fd51bf..3526519ddc4 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-random.dtx @@ -38,7 +38,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx index 7b49f5b1f88..9eed28891c5 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-round.dtx @@ -41,7 +41,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx index ecf482fd402..c01862ddec1 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-traps.dtx @@ -38,7 +38,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % \maketitle % % \begin{documentation} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx index df678477317..373d0b111e7 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-trig.dtx @@ -38,7 +38,7 @@ % {latex-team@latex-project.org}^^A % }^^A % } -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx index b4e2bfa1c00..33ac720b455 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fp.dtx @@ -47,7 +47,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx index 345cdbe8df0..76b4668c239 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3fparray.dtx @@ -42,7 +42,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx index 80bf9afd7f7..29b930a6340 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3int.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3int.dtx @@ -41,7 +41,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx b/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx index 75f4bb46740..7739ddd76d3 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3intarray.dtx @@ -42,7 +42,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx b/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx index f1e28968315..ef418edc446 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3kernel-functions.dtx @@ -41,7 +41,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % @@ -136,6 +136,14 @@ % the \meta{follow-on}. % \end{function} % +% \begin{function}{\__kernel_deprecation_code:nn} +% \begin{syntax} +% \cs{__kernel_deprecation_code:nn} \Arg{error code} \Arg{working code} +% \end{syntax} +% Stores both an \meta{error} and \meta{working} definition for given material +% such that they can be exchanged by \cs{debug_on:} and \cs{debug_off:}. +% \end{function} +% % \begin{function}{\__kernel_if_debug:TF} % \begin{syntax} % \cs{__kernel_if_debug:TF} \Arg{true code} \Arg{false code} @@ -394,6 +402,14 @@ % because that would interfere with the action of the conditional. % \end{function} % +% \begin{function}{\__kernel_patch_deprecation:nnNNpn} +% \begin{syntax} +% \cs{__kernel_patch_deprecation:nnNNpn} \Arg{before} \Arg{after} +% \meta{definition} \meta{function}\meta{parameters} \Arg{type} \Arg{code} +% \end{syntax} +% Similar to \cs{__kernel_patch:nnNNpn} for deprecated functions. +% \end{function} +% % \begin{function} % {\__kernel_patch_args:nNNpn, \__kernel_patch_conditional_args:nNNpnn} % \begin{syntax} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx index f711bf5cbdb..da03797c65d 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3keys.dtx @@ -41,7 +41,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % @@ -1459,11 +1459,8 @@ \cs_if_exist:cTF { \c_@@_type_root_tl \@@_parent:o \l_keys_path_tl } { - \str_if_eq_x:nnTF - { - \exp_not:v - { \c_@@_type_root_tl \@@_parent:o \l_keys_path_tl } - } + \str_if_eq:vnTF + { \c_@@_type_root_tl \@@_parent:o \l_keys_path_tl } { choice } { \__kernel_msg_error:nnxx { kernel } { nested-choice-key } diff --git a/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx index 87a535ce163..ca9935e58cc 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3luatex.dtx @@ -41,7 +41,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % @@ -56,7 +56,7 @@ % % \section{Breaking out to \Lua{}} % -% \begin{function}[EXP, added = 2015-06-29]{\lua_now_x:n, \lua_now:n} +% \begin{function}[EXP, added = 2018-06-18]{\lua_now:n, \lua_now:e} % \begin{syntax} % \cs{lua_now:n} \Arg{token list} % \end{syntax} @@ -67,18 +67,14 @@ % Each \cs{lua_now:n} block is treated by \Lua{} as a separate chunk. % The \Lua{} interpreter executes the \meta{\Lua{} input} immediately, % and in an expandable manner. -% -% In the case of the \cs{lua_now_x:n} version the input is fully expanded -% by \TeX{} in an \texttt{x}-type manner \emph{but} the function remains -% fully expandable. % \begin{texnote} -% \cs{lua_now_x:n} is a macro wrapper around \tn{directlua}: when +% \cs{lua_now:e} is a macro wrapper around \tn{directlua}: when % \LuaTeX{} is in use two expansions are required to yield the % result of the \Lua{} code. % \end{texnote} % \end{function} % -% \begin{function}[added = 2015-06-30]{\lua_shipout_x:n, \lua_shipout:n} +% \begin{function}[added = 2018-06-18]{\lua_shipout_e:n, \lua_shipout:n} % \begin{syntax} % \cs{lua_shipout:n} \Arg{token list} % \end{syntax} @@ -92,8 +88,8 @@ % page-building routine: no \TeX{} expansion of the \meta{\Lua{} input} % will occur at this stage. % -% In the case of the \cs{lua_shipout_x:n} version the input is fully -% expanded by \TeX{} in an \texttt{x}-type manner during the shipout +% In the case of the \cs{lua_shipout_e:n} version the input is fully +% expanded by \TeX{} in an \texttt{e}-type manner during the shipout % operation. % \begin{texnote} % At a \TeX{} level, the \meta{\Lua{} input} is stored as a @@ -101,7 +97,7 @@ % \end{texnote} % \end{function} % -% \begin{function}[EXP, added = 2015-06-29]{\lua_escape_x:n, \lua_escape:n} +% \begin{function}[EXP, added = 2015-06-29]{\lua_escape:n, \lua_escape:e} % \begin{syntax} % \cs{lua_escape:n} \Arg{token list} % \end{syntax} @@ -110,12 +106,8 @@ % and carriage returns are escaped. This is done by prepending an extra % token consisting of a backslash with category code~$12$, and for the line % endings, converting them to |\n| and |\r|, respectively. -% -% In the case of the \cs{lua_escape_x:n} version the input is fully expanded -% by \TeX{} in an \texttt{x}-type manner \emph{but} the function remains -% fully expandable. % \begin{texnote} -% \cs{lua_escape_x:n} is a macro wrapper around \tn{luaescapestring}: +% \cs{lua_escape:e} is a macro wrapper around \tn{luaescapestring}: % when \LuaTeX{} is in use two expansions are required to yield the % result of the \Lua{} code. % \end{texnote} @@ -197,46 +189,45 @@ % \end{macrocode} % % \begin{macrocode} -%<@@=luatex> +%<@@=lua> % \end{macrocode} % -% \begin{macro}[EXP]{\@@_escape_x:n, \@@_now_x:n, \@@_shipout_x:n} +% \begin{macro}[EXP]{\@@_escape:n, \@@_now:n, \@@_shipout:n} % Copies of primitives. % \begin{macrocode} -\cs_new_eq:NN \@@_escape_x:n \tex_luaescapestring:D -\cs_new_eq:NN \@@_now_x:n \tex_directlua:D -\cs_new_eq:NN \@@_shipout_x:n \tex_latelua:D +\cs_new_eq:NN \@@_escape:n \tex_luaescapestring:D +\cs_new_eq:NN \@@_now:n \tex_directlua:D +\cs_new_eq:NN \@@_shipout:n \tex_latelua:D % \end{macrocode} % \end{macro} % % These functions are set up in \pkg{l3str} for bootstrapping: we want to % replace them with a \enquote{proper} version at this stage, so clean up. % \begin{macrocode} -\cs_undefine:N \lua_escape_x:n -\cs_undefine:N \lua_now_x:n +\cs_undefine:N \lua_escape:e +\cs_undefine:N \lua_now:e % \end{macrocode} % -% \begin{macro}[EXP]{\lua_now_x:n, \lua_now:n} -% \begin{macro}{\lua_shipout_x:n, \lua_shipout:n} -% \begin{macro}[EXP]{\lua_escape_x:n, \lua_escape:n} +% \begin{macro}[EXP]{\lua_now:n, \lua_now:e} +% \begin{macro}{\lua_shipout_e:n, \lua_shipout:n} +% \begin{macro}[EXP]{\lua_escape:n, \lua_escape:e} % Wrappers around the primitives. As with engines other than \LuaTeX{} % these have to be macros, we give them the same status in all cases. % When \LuaTeX{} is not in use, simply give an error message/ % \begin{macrocode} -\cs_new:Npn \lua_now_x:n #1 { \@@_now_x:n {#1} } -\cs_new:Npn \lua_now:n #1 { \lua_now_x:n { \exp_not:n {#1} } } -\cs_new_protected:Npn \lua_shipout_x:n #1 { \@@_shiphout_x:n {#1} } +\cs_new:Npn \lua_now:e #1 { \@@_now:n {#1} } +\cs_new:Npn \lua_now:n #1 { \lua_now:e { \exp_not:n {#1} } } +\cs_new_protected:Npn \lua_shipout_e:n #1 { \@@_shiphout:n {#1} } \cs_new_protected:Npn \lua_shipout:n #1 - { \lua_shipout_x:n { \exp_not:n {#1} } } -\cs_new:Npn \lua_escape_x:n #1 { \@@_escape_x:n {#1} } -\cs_new:Npn \lua_escape:n #1 { \lua_escape_x:n { \exp_not:n {#1} } } + { \lua_shipout_e:n { \exp_not:n {#1} } } +\cs_new:Npn \lua_escape:e #1 { \@@_escape:n {#1} } +\cs_new:Npn \lua_escape:n #1 { \lua_escape:e { \exp_not:n {#1} } } \sys_if_engine_luatex:F { \clist_map_inline:nn { - \use_x:n , - \lua_escape_x:n , \lua_escape:n , - \lua_now_x:n , \lua_now:n + \lua_escape:n , \lua_escape:e , + \lua_now:n , \lua_now:e } { \cs_set:Npn #1 ##1 @@ -246,7 +237,7 @@ } } \clist_map_inline:nn - { \lua_shipout_x:n , \lua_shipout:n } + { \lua_shipout_e:n , \lua_shipout:n } { \cs_set_protected:Npn #1 ##1 { @@ -271,6 +262,22 @@ } % \end{macrocode} % +% \subsection{Deprecated functions} +% +% \begin{macro}[EXP, deprecated = 2019-12-31]{\lua_now_x:n, \lua_escape_x:n} +% \begin{macro}[deprecated = 2019-12-31]{\lua_shipout_x:n} +% For removal after 2019-12-31. +% \begin{macrocode} +\__kernel_patch_deprecation:nnNNpn { 2019-12-31 } { \lua_now:e } +\cs_new:Npn \lua_now_x:n #1 { \@@_now:n {#1} } +\__kernel_patch_deprecation:nnNNpn { 2019-12-31 } { \lua_escape:e } +\cs_new:Npn \lua_escape_x:n #1 { \@@_escape:n {#1} } +\__kernel_patch_deprecation:nnNNpn { 2019-12-31 } { \lua_shipout_e:n } +\cs_new_protected:Npn \lua_shipout_x:n #1 { \@@_shipout:n {#1} } +% \end{macrocode} +% \end{macro} +% \end{macro} +% % \begin{macrocode} %</tex> % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx index 1bfa2be1700..bd180cd0af9 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3msg.dtx @@ -41,7 +41,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % @@ -1429,7 +1429,7 @@ \seq_put_right:Nn \l_@@_class_loop_seq {#1} \prop_get:cnNT { l_@@_redirect_ #1 _prop } {#3} \l_@@_class_tl { - \str_if_eq_x:nnF { \l_@@_class_tl } {#1} + \str_if_eq:VnF \l_@@_class_tl {#1} { \tl_if_eq:NNTF \l_@@_class_tl \l_@@_current_class_tl { diff --git a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx b/Master/texmf-dist/source/latex/l3kernel/l3names.dtx index 39ecba1694f..52374a5935e 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3names.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3names.dtx @@ -41,7 +41,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3oldmodules.dtx b/Master/texmf-dist/source/latex/l3kernel/l3oldmodules.dtx index 43815ad5e19..eb1be68f173 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3oldmodules.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3oldmodules.dtx @@ -42,7 +42,7 @@ % } % % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx index ed55b5052be..e936df28377 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3prg.dtx @@ -41,7 +41,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx b/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx index f31874d7fe4..191c9e70157 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3prop.dtx @@ -41,7 +41,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % @@ -861,7 +861,7 @@ } \cs_new:Npn \@@_item_Nn:nwwn #1#2 \@@_pair:wn #3 \s_@@ #4 { - \str_if_eq_x:nnTF {#1} {#3} + \str_if_eq:eeTF {#1} {#3} { \prg_break:n { \exp_not:n {#4} } } { \@@_item_Nn:nwwn {#1} } } @@ -1034,10 +1034,10 @@ % but \cs{@@_split:NnTF} is non-expandable. % % Instead, the key is compared to each key in turn using -% \cs{str_if_eq_x:nn}, which is expandable. To terminate the mapping, +% \cs{str_if_eq:ee}, which is expandable. To terminate the mapping, % we append to the property list the key that is searched for. This % second \cs{tl_to_str:n} is not expanded at the start, but only when -% included in the \cs{str_if_eq_x:nn}. It cannot make the breaking +% included in the \cs{str_if_eq:ee}. It cannot make the breaking % mechanism choke, because the arbitrary token list material is % enclosed in braces. The second argument of \cs{@@_if_in:nwwn} is % most often empty. When the \meta{key} is found in the list, @@ -1058,7 +1058,7 @@ } \cs_new:Npn \@@_if_in:nwwn #1#2 \@@_pair:wn #3 \s_@@ #4 { - \str_if_eq_x:nnTF {#1} {#3} + \str_if_eq:eeTF {#1} {#3} { \@@_if_in:N } { \@@_if_in:nwwn {#1} } } diff --git a/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx b/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx index 727c0e9974c..e649702601a 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3quark.dtx @@ -41,7 +41,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx b/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx index 02ffddf2116..d4eb2c4066c 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3regex.dtx @@ -41,7 +41,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % @@ -1612,7 +1612,7 @@ % \begin{macrocode} \cs_new:Npn \@@_escape_x_test:N #1 { - \str_if_eq_x:nnTF {#1} { break } { ; } + \str_if_eq:nnTF {#1} { break } { ; } { \if_charcode:w \c_space_token #1 \exp_after:wN \@@_escape_x_test:N @@ -1640,7 +1640,7 @@ % \begin{macrocode} \cs_new:Npn \@@_escape_x:N #1 { - \str_if_eq_x:nnTF {#1} { break } { ; } + \str_if_eq:nnTF {#1} { break } { ; } { \@@_hexadecimal_use:NTF #1 { ; \@@_escape_loop:N } @@ -1657,7 +1657,7 @@ % \begin{macrocode} \cs_new:Npn \@@_escape_x_loop:N #1 { - \str_if_eq_x:nnTF {#1} { break } + \str_if_eq:nnTF {#1} { break } { ; \@@_escape_x_loop_error:n { } {#1} } { \@@_hexadecimal_use:NTF #1 @@ -2421,7 +2421,7 @@ } \cs_new_protected:Npn \@@_compile_quantifier_braced_auxi:w #1#2 { - \str_case_x:nnF { #1 #2 } + \str_case_e:nnF { #1 #2 } { { \@@_compile_special:N \c_right_brace_str } { @@ -6468,7 +6468,7 @@ { Missing~right~brace~inserted~for~'\iow_char:N\\u'~escape. } { LaTeX~ - \str_if_eq_x:nnTF { } {#2} + \str_if_eq:eeTF { } {#2} { reached~the~end~of~the~string~ } { encountered~an~escaped~alphanumeric~character '\iow_char:N\\#2'~ } when~parsing~the~argument~of~an~ @@ -6628,7 +6628,7 @@ % \begin{macrocode} \cs_new:Npn \@@_msg_repeated:nnN #1#2#3 { - \str_if_eq_x:nnF { #1 #2 } { 1 0 } + \str_if_eq:eeF { #1 #2 } { 1 0 } { , ~ repeated ~ \int_case:nnF {#2} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx b/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx index 1c9eac77cba..5e590bd0c2d 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3seq.dtx @@ -41,7 +41,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx b/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx index 8069b0dc57b..182427cb48a 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3skip.dtx @@ -42,7 +42,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % @@ -1942,7 +1942,7 @@ % \begin{macrocode} \prg_new_conditional:Npnn \skip_if_eq:nn #1#2 { p , T , F , TF } { - \str_if_eq_x:nnTF { \skip_eval:n { #1 } } { \skip_eval:n { #2 } } + \str_if_eq:eeTF { \skip_eval:n { #1 } } { \skip_eval:n { #2 } } { \prg_return_true: } { \prg_return_false: } } diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx index 5cce081b462..b1f2b7eabe5 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3sort.dtx @@ -41,7 +41,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str.dtx index 56e01c67d4e..af918d1d164 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3str.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3str.dtx @@ -41,7 +41,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % @@ -104,8 +104,11 @@ % initially empty. % \end{function} % -% \begin{function}[added = 2015-09-18] -% {\str_const:Nn, \str_const:Nx, \str_const:cn, \str_const:cx} +% \begin{function}[added = 2015-09-18, updated = 2018-07-28] +% { +% \str_const:Nn, \str_const:NV, \str_const:Nx, +% \str_const:cn, \str_const:cV, \str_const:cx +% } % \begin{syntax} % \cs{str_const:Nn} \meta{str~var} \Arg{token list} % \end{syntax} @@ -161,10 +164,12 @@ % % \section{Adding data to string variables} % -% \begin{function}[added = 2015-09-18] +% \begin{function}[added = 2015-09-18, updated = 2018-07-28] % { -% \str_set:Nn, \str_set:Nx, \str_set:cn, \str_set:cx, -% \str_gset:Nn, \str_gset:Nx, \str_gset:cn, \str_gset:cx +% \str_set:Nn, \str_set:NV, \str_set:Nx, +% \str_set:cn, \str_set:cV, \str_set:cx, +% \str_gset:Nn, \str_gset:NV, \str_gset:Nx, +% \str_gset:cn, \str_gset:cV, \str_gset:cx % } % \begin{syntax} % \cs{str_set:Nn} \meta{str var} \Arg{token list} @@ -173,12 +178,12 @@ % result in \meta{str var}. % \end{function} % -% \begin{function}[added = 2015-09-18] +% \begin{function}[added = 2015-09-18, updated = 2018-07-28] % { -% \str_put_left:Nn, \str_put_left:Nx, -% \str_put_left:cn, \str_put_left:cx, -% \str_gput_left:Nn, \str_gput_left:Nx, -% \str_gput_left:cn, \str_gput_left:cx +% \str_put_left:Nn, \str_put_left:NV, \str_put_left:Nx, +% \str_put_left:cn, \str_put_left:cV, \str_put_left:cx, +% \str_gput_left:Nn, \str_gput_left:NV, \str_gput_left:Nx, +% \str_gput_left:cn, \str_gput_left:cV, \str_gput_left:cx % } % \begin{syntax} % \cs{str_put_left:Nn} \meta{str var} \Arg{token list} @@ -188,12 +193,12 @@ % var} are not automatically converted to a string. % \end{function} % -% \begin{function}[added = 2015-09-18] +% \begin{function}[added = 2015-09-18, updated = 2018-07-28] % { -% \str_put_right:Nn, \str_put_right:Nx, -% \str_put_right:cn, \str_put_right:cx, -% \str_gput_right:Nn, \str_gput_right:Nx, -% \str_gput_right:cn, \str_gput_right:cx +% \str_put_right:Nn, \str_put_right:NV, \str_put_right:Nx, +% \str_put_right:cn, \str_put_right:cV, \str_put_right:cx, +% \str_gput_right:Nn, \str_gput_right:NV, \str_gput_right:Nx, +% \str_gput_right:cn, \str_gput_right:cV, \str_gput_right:cx % } % \begin{syntax} % \cs{str_put_right:Nn} \meta{str var} \Arg{token list} @@ -302,10 +307,11 @@ % in the same order. % \end{function} % -% \begin{function}[EXP,pTF] +% \begin{function}[EXP,pTF, updated = 2018-06-18] % { % \str_if_eq:nn, \str_if_eq:Vn, \str_if_eq:on, \str_if_eq:no, -% \str_if_eq:nV, \str_if_eq:VV +% \str_if_eq:nV, \str_if_eq:VV, \str_if_eq:vn, \str_if_eq:nv, +% \str_if_eq:ee % } % \begin{syntax} % \cs{str_if_eq_p:nn} \Arg{tl_1} \Arg{tl_2} @@ -321,21 +327,6 @@ % is logically \texttt{true}. % \end{function} % -% \begin{function}[EXP,pTF, added = 2012-06-05]{\str_if_eq_x:nn} -% \begin{syntax} -% \cs{str_if_eq_x_p:nn} \Arg{tl_1} \Arg{tl_2} -% \cs{str_if_eq_x:nnTF} \Arg{tl_1} \Arg{tl_2} \Arg{true code} \Arg{false code} -% \end{syntax} -% Fully expands the two \meta{token lists} and converts them to \meta{strings}, then -% compares these on a character by character basis: -% it is \texttt{true} if the two \meta{strings} contain the same -% characters in the same order. Thus for example -% \begin{verbatim} -% \str_if_eq_x_p:nn { abc } { \tl_to_str:n { abc } } -% \end{verbatim} -% is logically \texttt{true}. -% \end{function} -% % \begin{function}[TF, added = 2017-10-08]{\str_if_in:Nn, \str_if_in:cn} % \begin{syntax} % \cs{str_if_in:NnTF} \meta{str~var} \Arg{token list} \Arg{true code} \Arg{false code} @@ -378,9 +369,9 @@ % available. % \end{function} % -% \begin{function}[added = 2013-07-24, EXP, noTF]{\str_case_x:nn} +% \begin{function}[added = 2018-06-19, EXP, noTF]{\str_case_e:nn} % \begin{syntax} -% \cs{str_case_x:nnTF} \Arg{test string} \\ +% \cs{str_case_e:nnTF} \Arg{test string} \\ % ~~|{| \\ % ~~~~\Arg{string case_1} \Arg{code case_1} \\ % ~~~~\Arg{string case_2} \Arg{code case_2} \\ @@ -399,7 +390,7 @@ % cases are matched, the \meta{true code} is also inserted into the % input stream (after the code for the appropriate case), while if none % match then the \meta{false code} is inserted. The function -% \cs{str_case_x:nn}, which does nothing if there is no match, is also +% \cs{str_case_e:nn}, which does nothing if there is no match, is also % available. % The \meta{test string} is expanded in each comparison, and must % always yield the same result: for example, random numbers must @@ -868,20 +859,20 @@ % % \begin{macro} % { -% \str_set:Nn, \str_set:Nx, -% \str_set:cn, \str_set:cx, -% \str_gset:Nn, \str_gset:Nx, -% \str_gset:cn, \str_gset:cx, -% \str_const:Nn, \str_const:Nx, -% \str_const:cn, \str_const:cx, -% \str_put_left:Nn, \str_put_left:Nx, -% \str_put_left:cn, \str_put_left:cx, -% \str_gput_left:Nn, \str_gput_left:Nx, -% \str_gput_left:cn, \str_gput_left:cx, -% \str_put_right:Nn, \str_put_right:Nx, -% \str_put_right:cn, \str_put_right:cx, -% \str_gput_right:Nn, \str_gput_right:Nx, -% \str_gput_right:cn, \str_gput_right:cx, +% \str_set:Nn, \str_set:NV, \str_set:Nx, +% \str_set:cn, \str_set:cV, \str_set:cx, +% \str_gset:Nn, \str_gset:NV, \str_gset:Nx, +% \str_gset:cn, \str_gset:cV, \str_gset:cx, +% \str_const:Nn, \str_const:NV, \str_const:Nx, +% \str_const:cn, \str_const:cV, \str_const:cx, +% \str_put_left:Nn, \str_put_left:NV, \str_put_left:Nx, +% \str_put_left:cn, \str_put_left:cV, \str_put_left:cx, +% \str_gput_left:Nn, \str_gput_left:NV, \str_gput_left:Nx, +% \str_gput_left:cn, \str_gput_left:cV, \str_gput_left:cx, +% \str_put_right:Nn, \str_put_right:NV, \str_put_right:Nx, +% \str_put_right:cn, \str_put_right:cV, \str_put_right:cx, +% \str_gput_right:Nn, \str_gput_right:NV, \str_gput_right:Nx, +% \str_gput_right:cn, \str_gput_right:cV, \str_gput_right:cx % } % Simply convert the token list inputs to \meta{strings}. % \begin{macrocode} @@ -895,7 +886,7 @@ \exp_not:c { tl_ #1 :Nx } ##1 { \exp_not:N \tl_to_str:n {##2} } } - \cs_generate_variant:cn { str_ #1 :Nn } { Nx , cn , cx } + \cs_generate_variant:cn { str_ #1 :Nn } { NV , Nx , cn , cV , cx } \@@_tmp:n } } @@ -1029,8 +1020,8 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}[EXP]{\@@_if_eq_x:nn} -% \begin{macro}[EXP]{\@@_escape_x:n} +% \begin{macro}[EXP]{\@@_if_eq:nn} +% \begin{macro}[EXP]{\@@_escape:n} % String comparisons rely on the primitive \cs[index=pdfstrcmp]{(pdf)strcmp} if available: % \LuaTeX{} does not have it, so emulation is required. As the net result % is that we do not \emph{always} use the primitive, the correct approach @@ -1039,30 +1030,30 @@ % the necessary Lua code is loaded in \pkg{l3boostrap}. % The need to detokenize and force % expansion of input arises from the case where a |#| token is used in the -% input, \emph{e.g.}~|\__str_if_eq_x:nn {#} { \tl_to_str:n {#} }|, which +% input, \emph{e.g.}~|\__str_if_eq:nn {#} { \tl_to_str:n {#} }|, which % otherwise would fail as \cs{tex_luaescapestring:D} does not double % such tokens. % \begin{macrocode} -\cs_new:Npn \@@_if_eq_x:nn #1#2 { \tex_strcmp:D {#1} {#2} } +\cs_new:Npn \@@_if_eq:nn #1#2 { \tex_strcmp:D {#1} {#2} } \cs_if_exist:NT \tex_luatexversion:D { - \cs_set_eq:NN \lua_escape_x:n \tex_luaescapestring:D - \cs_set_eq:NN \lua_now_x:n \tex_directlua:D - \cs_set:Npn \@@_if_eq_x:nn #1#2 + \cs_set_eq:NN \lua_escape:e \tex_luaescapestring:D + \cs_set_eq:NN \lua_now:e \tex_directlua:D + \cs_set:Npn \@@_if_eq:nn #1#2 { - \lua_now_x:n + \lua_now:e { l3kernel.strcmp ( - " \@@_escape_x:n {#1} " , - " \@@_escape_x:n {#2} " + " \@@_escape:n {#1} " , + " \@@_escape:n {#2} " ) } } - \cs_new:Npn \@@_escape_x:n #1 + \cs_new:Npn \@@_escape:n #1 { - \lua_escape_x:n - { \__kernel_tl_to_str:w \use_x:n { {#1} } } + \lua_escape:e + { \__kernel_tl_to_str:w \use:e { {#1} } } } } % \end{macrocode} @@ -1073,7 +1064,7 @@ % { % \str_if_eq:nn, \str_if_eq:Vn, \str_if_eq:on, \str_if_eq:nV, % \str_if_eq:no, \str_if_eq:VV, -% \str_if_eq_x:nn +% \str_if_eq:ee % } % Modern engines provide a direct way of comparing two token lists, % but returning a number. This set of conditionals therefore make life @@ -1083,15 +1074,15 @@ \prg_new_conditional:Npnn \str_if_eq:nn #1#2 { p , T , F , TF } { \if_int_compare:w - \@@_if_eq_x:nn { \exp_not:n {#1} } { \exp_not:n {#2} } + \@@_if_eq:nn { \exp_not:n {#1} } { \exp_not:n {#2} } = 0 \exp_stop_f: \prg_return_true: \else: \prg_return_false: \fi: } \prg_generate_conditional_variant:Nnn \str_if_eq:nn - { V , o , nV , no , VV } { p , T , F , TF } -\prg_new_conditional:Npnn \str_if_eq_x:nn #1#2 { p , T , F , TF } + { V , v , o , nV , no , VV , nv } { p , T , F , TF } +\prg_new_conditional:Npnn \str_if_eq:ee #1#2 { p , T , F , TF } { - \if_int_compare:w \@@_if_eq_x:nn {#1} {#2} = 0 \exp_stop_f: + \if_int_compare:w \@@_if_eq:nn {#1} {#2} = 0 \exp_stop_f: \prg_return_true: \else: \prg_return_false: \fi: } % \end{macrocode} @@ -1105,7 +1096,7 @@ \prg_new_conditional:Npnn \str_if_eq:NN #1#2 { p , TF , T , F } { \if_int_compare:w - \@@_if_eq_x:nn { \tl_to_str:N #1 } { \tl_to_str:N #2 } + \@@_if_eq:nn { \tl_to_str:N #1 } { \tl_to_str:N #2 } = 0 \exp_stop_f: \prg_return_true: \else: \prg_return_false: \fi: } \prg_generate_conditional_variant:Nnn \str_if_eq:NN @@ -1137,10 +1128,10 @@ % \end{macro} % % \begin{macro}[EXP, noTF] -% {\str_case:nn, \str_case:on, \str_case:nV, \str_case:nv, \str_case_x:nn} -% \begin{macro}[EXP]{\@@_case:nnTF, \@@_case_x:nnTF} +% {\str_case:nn, \str_case:on, \str_case:nV, \str_case:nv, \str_case_e:nn} +% \begin{macro}[EXP]{\@@_case:nnTF, \@@_case_e:nnTF} % \begin{macro}[EXP] -% {\@@_case:nw, \@@_case_x:nw, \@@_case_end:nw} +% {\@@_case:nw, \@@_case_e:nw, \@@_case_end:nw} % Much the same as \cs[index=tl_case:nn]{tl_case:nn(TF)} here: % just a change in the internal comparison. % \begin{macrocode} @@ -1175,33 +1166,33 @@ { \@@_case_end:nw {#3} } { \@@_case:nw {#1} } } -\cs_new:Npn \str_case_x:nn #1#2 +\cs_new:Npn \str_case_e:nn #1#2 { \exp:w - \@@_case_x:nnTF {#1} {#2} { } { } + \@@_case_e:nnTF {#1} {#2} { } { } } -\cs_new:Npn \str_case_x:nnT #1#2#3 +\cs_new:Npn \str_case_e:nnT #1#2#3 { \exp:w - \@@_case_x:nnTF {#1} {#2} {#3} { } + \@@_case_e:nnTF {#1} {#2} {#3} { } } -\cs_new:Npn \str_case_x:nnF #1#2 +\cs_new:Npn \str_case_e:nnF #1#2 { \exp:w - \@@_case_x:nnTF {#1} {#2} { } + \@@_case_e:nnTF {#1} {#2} { } } -\cs_new:Npn \str_case_x:nnTF #1#2 +\cs_new:Npn \str_case_e:nnTF #1#2 { \exp:w - \@@_case_x:nnTF {#1} {#2} + \@@_case_e:nnTF {#1} {#2} } -\cs_new:Npn \@@_case_x:nnTF #1#2#3#4 - { \@@_case_x:nw {#1} #2 {#1} { } \q_mark {#3} \q_mark {#4} \q_stop } -\cs_new:Npn \@@_case_x:nw #1#2#3 +\cs_new:Npn \@@_case_e:nnTF #1#2#3#4 + { \@@_case_e:nw {#1} #2 {#1} { } \q_mark {#3} \q_mark {#4} \q_stop } +\cs_new:Npn \@@_case_e:nw #1#2#3 { - \str_if_eq_x:nnTF {#1} {#2} + \str_if_eq:eeTF {#1} {#2} { \@@_case_end:nw {#3} } - { \@@_case_x:nw {#1} } + { \@@_case_e:nw {#1} } } \cs_new:Npn \@@_case_end:nw #1#2#3 \q_mark #4#5 \q_stop { \exp_end: #1 #4 } @@ -1921,6 +1912,32 @@ % \end{macrocode} % \end{macro} % +% \subsection{Deprecated functions} +% +% \begin{macro}[EXP, deprecated = 2019-12-31, noTF]{\str_case_x:nn} +% \begin{macro}[EXP, deprecated = 2019-12-31, pTF]{\str_if_eq_x:nn} +% For removal after 2019-12-31. +% \begin{macrocode} +\__kernel_patch_deprecation:nnNNpn { 2019-12-31 } { \str_case_e:nn } +\cs_new:Npn \str_case_x:nn { \str_case_e:nn } +\__kernel_patch_deprecation:nnNNpn { 2019-12-31 } { \str_case_e:nnT } +\cs_new:Npn \str_case_x:nnT { \str_case_e:nnT } +\__kernel_patch_deprecation:nnNNpn { 2019-12-31 } { \str_case_e:nnF } +\cs_new:Npn \str_case_x:nnF { \str_case_e:nnF } +\__kernel_patch_deprecation:nnNNpn { 2019-12-31 } { \str_case_e:nnTF } +\cs_new:Npn \str_case_x:nnTF { \str_case_e:nnTF } +\__kernel_patch_deprecation:nnNNpn { 2019-12-31 } { \str_if_eq_p:ee } +\cs_new:Npn \str_if_eq_x_p:nn { \str_if_eq_p:ee } +\__kernel_patch_deprecation:nnNNpn { 2019-12-31 } { \str_if_eq:eeT } +\cs_new:Npn \str_if_eq_x:nnT { \str_if_eq:eeT } +\__kernel_patch_deprecation:nnNNpn { 2019-12-31 } { \str_if_eq:eeF } +\cs_new:Npn \str_if_eq_x:nnF { \str_if_eq:eeF } +\__kernel_patch_deprecation:nnNNpn { 2019-12-31 } { \str_if_eq:eeTF } +\cs_new:Npn \str_if_eq_x:nnTF { \str_if_eq:eeTF } +% \end{macrocode} +% \end{macro} +% \end{macro} +% % \begin{macrocode} %</initex|package> % \end{macrocode} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx b/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx index 35e352edb99..a1d10f187c2 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3sys.dtx @@ -41,7 +41,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % @@ -237,7 +237,7 @@ \tl_map_inline:nn { { luatex } { pdftex } { ptex } { uptex } { xetex } } { \@@_const:nn { sys_if_engine_ #1 } - { \str_if_eq_x_p:nn \c_sys_engine_str {#1} } + { \str_if_eq_p:Vn \c_sys_engine_str {#1} } } % \end{macrocode} % \end{variable} @@ -261,9 +261,9 @@ { dvi } } \@@_const:nn { sys_if_output_dvi } - { \str_if_eq_x_p:nn \c_sys_output_str { dvi } } + { \str_if_eq_p:Vn \c_sys_output_str { dvi } } \@@_const:nn { sys_if_output_pdf } - { \str_if_eq_x_p:nn \c_sys_output_str { pdf } } + { \str_if_eq_p:Vn \c_sys_output_str { pdf } } % \end{macrocode} % \end{variable} % \end{macro} diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx index c365620f54b..2b8048e6dc2 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3tl-analysis.dtx @@ -42,7 +42,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx index 863cc92a668..fcd5084c318 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3tl.dtx @@ -41,7 +41,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % diff --git a/Master/texmf-dist/source/latex/l3kernel/l3token.dtx b/Master/texmf-dist/source/latex/l3kernel/l3token.dtx index 7fe05c7f502..3188f7709d9 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3token.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3token.dtx @@ -41,7 +41,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % @@ -1436,7 +1436,7 @@ { #3 \exp_after:wN \exp_after:wN \exp_after:wN \exp_end: - \lua_now_x:n { l3kernel.charcat(#1, #2) } + \lua_now:e { l3kernel.charcat(#1, #2) } } } { @@ -1855,7 +1855,7 @@ ##1 \tl_to_str:n { ma } ##2 \c_colon_str ##3 \exp_not:N \q_stop } { - \str_if_eq_x:nnTF { #2 } { cro } + \str_if_eq:nnTF { #2 } { cro } { \prg_return_true: } { \prg_return_false: } } @@ -1957,7 +1957,7 @@ % function cannot be defined on the fly because tests must remain % expandable): instead the first argument of the auxiliary (plus the % delimiter to avoid complications with trailing spaces) is compared -% using \cs{str_if_eq_x:nnTF} to the result of applying +% using \cs{str_if_eq:eeTF} to the result of applying % \cs{token_to_str:N} to a control sequence. Second, the % \tn{meaning} of primitives such as \tn{dimen} or \tn{dimendef} % starts in the same way as registers such as @@ -2005,7 +2005,7 @@ \exp_not:N \prg_return_false: \exp_not:N \else: } - \exp_not:N \str_if_eq_x:nnTF + \exp_not:N \str_if_eq:eeTF { \exp_not:N \exp_after:wN \exp_not:c { @@_delimit_by_ #2 :w } diff --git a/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx b/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx index e45aaec2a1f..e154f1850ee 100644 --- a/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx +++ b/Master/texmf-dist/source/latex/l3kernel/l3unicode.dtx @@ -41,7 +41,7 @@ % }^^A % } % -% \date{Released 2018-06-14} +% \date{Released 2018-08-23} % % \maketitle % @@ -163,7 +163,7 @@ { \tl_if_blank:nF {#1} { - \str_if_eq_x:nnF { \tl_head:n {#1} } { \c_hash_str } + \str_if_eq:eeF { \tl_head:n {#1} } { \c_hash_str } { \@@_data_auxi:w #1 \q_stop } } } @@ -205,9 +205,9 @@ { \tl_if_blank:nF {#1} { - \str_if_eq_x:nnTF { \tl_head:n {#1} } { \c_hash_str } + \str_if_eq:eeTF { \tl_head:n {#1} } { \c_hash_str } { - \str_if_eq_x:nnT + \str_if_eq:eeT {#1} { \c_hash_str \c_space_tl Conditional~Mappings } { \ior_map_break: } |