[latex3-commits] [l3svn] r7512 - In l3str define all documented functions, speed up replacement
noreply at latex-project.org
noreply at latex-project.org
Fri Oct 20 01:48:44 CEST 2017
Author: bruno
Date: 2017-10-20 01:48:44 +0200 (Fri, 20 Oct 2017)
New Revision: 7512
Modified:
trunk/l3kernel/l3str.dtx
trunk/l3kernel/testfiles/m3expl001.luatex.tlg
trunk/l3kernel/testfiles/m3expl001.ptex.tlg
trunk/l3kernel/testfiles/m3expl001.tlg
trunk/l3kernel/testfiles/m3expl001.uptex.tlg
trunk/l3kernel/testfiles/m3expl001.xetex.tlg
trunk/l3kernel/testfiles/m3expl003.luatex.tlg
trunk/l3kernel/testfiles/m3expl003.ptex.tlg
trunk/l3kernel/testfiles/m3expl003.tlg
trunk/l3kernel/testfiles/m3expl003.uptex.tlg
trunk/l3kernel/testfiles/m3expl003.xetex.tlg
Log:
In l3str define all documented functions, speed up replacement
Modified: trunk/l3kernel/l3str.dtx
===================================================================
--- trunk/l3kernel/l3str.dtx 2017-10-19 23:45:49 UTC (rev 7511)
+++ trunk/l3kernel/l3str.dtx 2017-10-19 23:48:44 UTC (rev 7512)
@@ -209,10 +209,11 @@
% \str_greplace_once:Nnn, \str_greplace_once:cnn
% }
% \begin{syntax}
-% \cs{str_replace_once:Nnn} \meta{str~var} \Arg{old string} \Arg{new string}
+% \cs{str_replace_once:Nnn} \meta{str~var} \Arg{old} \Arg{new}
% \end{syntax}
-% Replaces the first (leftmost) occurrence of \meta{old str} in the
-% \meta{str~var} with \meta{new str}.
+% Converts the \meta{old} and \meta{new} token lists to strings, then
+% replaces the first (leftmost) occurrence of \meta{old string} in the
+% \meta{str~var} with \meta{new string}.
% \end{function}
%
% \begin{function}[added = 2017-10-08]
@@ -221,12 +222,13 @@
% \str_greplace_all:Nnn, \str_greplace_all:cnn
% }
% \begin{syntax}
-% \cs{str_replace_all:Nnn} \meta{str~var} \Arg{old string} \Arg{new string}
+% \cs{str_replace_all:Nnn} \meta{str~var} \Arg{old} \Arg{new}
% \end{syntax}
-% Replaces all occurrences of \meta{old string} in the
-% \meta{str~var} with \meta{new tokens}.
+% Converts the \meta{old} and \meta{new} token lists to strings, then
+% replaces all occurrences of \meta{old string} in the
+% \meta{str~var} with \meta{new string}.
% As this function
-% operates from left to right, the pattern \meta{old str}
+% operates from left to right, the pattern \meta{old string}
% may remain after the replacement (see \cs{str_remove_all:Nn}
% for an example).
% \end{function}
@@ -237,9 +239,10 @@
% \str_gremove_once:Nn, \str_gremove_once:cn
% }
% \begin{syntax}
-% \cs{str_remove_once:Nn} \meta{str~var} \Arg{string}
+% \cs{str_remove_once:Nn} \meta{str~var} \Arg{token list}
% \end{syntax}
-% Removes the first (leftmost) occurrence of \meta{string} from the
+% Converts the \meta{token list} to a \meta{string} then
+% removes the first (leftmost) occurrence of \meta{string} from the
% \meta{str~var}.
% \end{function}
%
@@ -249,12 +252,13 @@
% \str_gremove_all:Nn, \str_gremove_all:cn
% }
% \begin{syntax}
-% \cs{str_remove_all:Nn} \meta{str~var} \Arg{string}
+% \cs{str_remove_all:Nn} \meta{str~var} \Arg{token list}
% \end{syntax}
-% Removes all occurrences of \meta{string} from the
-% \meta{tl~var}.
+% Converts the \meta{token list} to a \meta{string} then
+% removes all occurrences of \meta{string} from the
+% \meta{str~var}.
% As this function
-% operates from left to right, the pattern \meta{tokens}
+% operates from left to right, the pattern \meta{string}
% may remain after the removal, for instance,
% \begin{quote}
% \cs{str_set:Nn} \cs{l_tmpa_str} |{abbccd}|
@@ -292,7 +296,8 @@
% \cs{str_if_eq:NNTF} \meta{str~var_1} \meta{str~var_2} \Arg{true code} \Arg{false code}
% \end{syntax}
% Compares the content of two \meta{str variables} and
-% is logically \texttt{true} if the two contain the same characters.
+% is logically \texttt{true} if the two contain the same characters
+% in the same order.
% \end{function}
%
% \begin{function}[EXP,pTF]
@@ -305,7 +310,8 @@
% \cs{str_if_eq:nnTF} \Arg{tl_1} \Arg{tl_2} \Arg{true code} \Arg{false code}
% \end{syntax}
% Compares the two \meta{token lists} on a character by character
-% basis, and is \texttt{true} if the two lists contain the same
+% basis (namely after converting them to strings),
+% and is \texttt{true} if the two \meta{strings} contain the same
% characters in the same order. Thus for example
% \begin{verbatim}
% \str_if_eq_p:no { abc } { \tl_to_str:n { abc } }
@@ -318,8 +324,9 @@
% \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}
-% Compares the full expansion of two \meta{token lists} on a character by
-% character basis, and is \texttt{true} if the two lists contain the same
+% 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 } }
@@ -329,18 +336,19 @@
%
% \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{string} \Arg{true code} \Arg{false code}
+% \cs{str_if_in:NnTF} \meta{str~var} \Arg{token list} \Arg{true code} \Arg{false code}
% \end{syntax}
-% Tests if the \meta{string} is found in the content of the
+% Converts the \meta{token list} to a \meta{string} and
+% tests if that \meta{string} is found in the content of the
% \meta{str~var}.
% \end{function}
%
% \begin{function}[TF, added = 2017-10-08]{\str_if_in:nn}
% \begin{syntax}
-% \cs{str_if_in:NnTF} \meta{string_1} \Arg{string_2} \Arg{true code} \Arg{false code}
+% \cs{str_if_in:nnTF} \meta{tl_1} \Arg{tl_2} \Arg{true code} \Arg{false code}
% \end{syntax}
-% Tests if \meta{string_2} is found in the content of the
-% \meta{string_1}.
+% Converts both \meta{token lists} to \meta{strings} and
+% tests whether \meta{string_2} is found inside \meta{string_1}.
% \end{function}
%
% \begin{function}[added = 2013-07-24, updated = 2015-02-28, EXP, noTF]
@@ -356,8 +364,9 @@
% ~~\Arg{true code}
% ~~\Arg{false code}
% \end{syntax}
-% This function compares the \meta{test string} in turn with each
-% of the \meta{string cases}. If the two are equal (as described for
+% Compares the \meta{test string} in turn with each
+% of the \meta{string cases} (all token lists are converted to strings).
+% If the two are equal (as described for
% \cs{str_if_eq:nnTF}) then the associated \meta{code} is left in the
% input stream and other cases are discarded. If any of the
% cases are matched, the \meta{true code} is also inserted into the
@@ -379,8 +388,9 @@
% ~~\Arg{true code}
% ~~\Arg{false code}
% \end{syntax}
-% This function compares the full expansion of the \meta{test string}
-% in turn with the full expansion of the \meta{string cases}. If the two
+% Compares the full expansion of the \meta{test string}
+% in turn with the full expansion of the \meta{string cases}
+% (all token lists are converted to strings). If the two
% full expansions are equal (as described for \cs{str_if_eq:nnTF}) then the
% associated \meta{code} is left in the input stream
% and other cases are discarded. If any of the
@@ -401,17 +411,18 @@
% \begin{syntax}
% \cs{str_map_function:NN} \meta{str~var} \meta{function}
% \end{syntax}
-% Applies \meta{function} to every \meta{item} in the \meta{str~var}.
+% Applies \meta{function} to every \meta{character} in the \meta{str~var}.
% See also \cs{str_map_function:nN}.
% \end{function}
%
% \begin{function}[added = 2017-10-08, rEXP]
% {\str_map_function:nN}
% \begin{syntax}
-% \cs{str_map_function:nN} \Arg{string} \meta{function}
+% \cs{str_map_function:nN} \Arg{token list} \meta{function}
% \end{syntax}
-% Applies \meta{function} to every \meta{item} in the \meta{string}.
-% See also \cs{str_map_function:nN}.
+% Converts the \meta{token list} to a \meta{string} then
+% applies \meta{function} to every \meta{character} in the \meta{string}.
+% See also \cs{str_map_function:NN}.
% \end{function}
%
% \begin{function}[added = 2017-10-08]
@@ -419,20 +430,21 @@
% \begin{syntax}
% \cs{str_map_inline:Nn} \meta{str~var} \Arg{inline function}
% \end{syntax}
-% Applies the \meta{inline function} to every \meta{item} stored within the
+% Applies the \meta{inline function} to every \meta{character} in the
% \meta{str~var}. The \meta{inline function} should consist of code which
-% receives the \meta{item} as |#1|. One in line mapping can be nested
+% receives the \meta{character} as |#1|. One in line mapping can be nested
% inside another. See also \cs{str_map_function:NN}.
% \end{function}
%
% \begin{function}[added = 2017-10-08]
% {\str_map_inline:nn}
% \begin{syntax}
-% \cs{str_map_inline:nn} \Arg{string} \Arg{inline function}
+% \cs{str_map_inline:nn} \Arg{token list} \Arg{inline function}
% \end{syntax}
-% Applies the \meta{inline function} to every \meta{item} in the
+% Converts the \meta{token list} to a \meta{string} then
+% applies the \meta{inline function} to every \meta{character} in the
% \meta{string}. The \meta{inline function} should consist of code which
-% receives the \meta{item} as |#1|. One in line mapping can be nested
+% receives the \meta{character} as |#1|. One in line mapping can be nested
% inside another. See also \cs{str_map_function:NN}.
% \end{function}
%
@@ -441,9 +453,9 @@
% \begin{syntax}
% \cs{str_map_variable:NNn} \meta{str~var} \meta{variable} \Arg{function}
% \end{syntax}
-% Applies the \meta{function} to every \meta{item} stored
-% within the \meta{str~var}. The \meta{function} should consist of code
-% which receives the \meta{item} stored in the \meta{variable}.
+% Applies the \meta{function} to every \meta{character} in
+% the \meta{str~var}. The \meta{function} should consist of code
+% which receives the \meta{character} stored in the \meta{variable}.
% One variable mapping can be nested inside another. See also
% \cs{str_map_inline:Nn}.
% \end{function}
@@ -451,11 +463,12 @@
% \begin{function}[added = 2017-10-08]
% {\str_map_variable:nNn}
% \begin{syntax}
-% \cs{str_map_variable:nNn} \Arg{string} \meta{variable} \Arg{function}
+% \cs{str_map_variable:nNn} \Arg{token list} \meta{variable} \Arg{function}
% \end{syntax}
-% Applies the \meta{function} to every \meta{item} in the \meta{string}.
+% Converts the \meta{token list} to a \meta{string} then
+% applies the \meta{function} to every \meta{character} in the \meta{string}.
% The \meta{function} should consist of code
-% which receives the \meta{item} stored in the \meta{variable}.
+% which receives the \meta{character} stored in the \meta{variable}.
% One variable mapping can be nested inside another. See also
% \cs{str_map_inline:Nn}.
% \end{function}
@@ -465,7 +478,7 @@
% \cs{str_map_break:}
% \end{syntax}
% Used to terminate a \cs[no-index]{str_map_\ldots} function before all
-% entries in the \meta{string} have been processed. This
+% characters in the \meta{string} have been processed. This
% normally takes place within a conditional statement, for example
% \begin{verbatim}
% \str_map_inline:Nn \l_my_str
@@ -479,8 +492,8 @@
% level \TeX{} errors.
% \begin{texnote}
% When the mapping is broken, additional tokens may be inserted by the
-% internal macro \cs{__prg_break_point:Nn} before the \meta{tokens} are
-% inserted into the input stream.
+% internal macro \cs{__prg_break_point:Nn} before continuing with the
+% code that follows the loop.
% This depends on the design of the mapping function.
% \end{texnote}
% \end{function}
@@ -490,7 +503,7 @@
% \cs{str_map_break:n} \Arg{tokens}
% \end{syntax}
% Used to terminate a \cs[no-index]{str_map_\ldots} function before all
-% entries in the \meta{string} have been processed, inserting
+% characters in the \meta{string} have been processed, inserting
% the \meta{tokens} after the mapping has ended. This
% normally takes place within a conditional statement, for example
% \begin{verbatim}
@@ -965,27 +978,24 @@
% \str_replace_once:Nnn, \str_replace_once:cnn,
% \str_greplace_once:Nnn, \str_greplace_once:cnn
% }
-% \begin{macro}
-% {
-% \str_remove_all:Nn, \str_remove_all:cn,
-% \str_gremove_all:Nn, \str_gremove_all:cn,
-% \str_remove_once:Nn, \str_remove_once:cn,
-% \str_gremove_once:Nn, \str_gremove_once:cn
-% }
% \begin{macro}[aux]{\@@_replace:NNNnn}
-% \begin{macro}[aux]{\@@_replace_auxi:NNNnn}
-% \begin{macro}[aux]{\@@_replace_auxii:NNNnn}
-% \begin{macro}[aux]{\@@_replace_wrap:w, \@@_replace_next:w}
-% The code here is a simplified version of the token list code: as
-% there is no issue with the delimiter (which is a non-string token)
-% we do not have to do the preliminaries. There is also a built-in
-% application of \cs{tl_to_str:N} to avoid any issues if we are fed a
-% token list.
+% \begin{macro}[aux]{\@@_replace_aux:NNNnnn}
+% \begin{macro}[aux]{\@@_replace_next:w}
+% Start by applying \cs{tl_to_str:n} to convert the old and new token
+% lists to strings, and also apply \cs{tl_to_str:N} to avoid any
+% issues if we are fed a token list variable. Then the code is a much
+% simplified version of the token list code because neither the
+% delimiter nor the replacement can contain macro parameters or
+% braces. The delimiter \cs{q_mark} cannot appear in the string to
+% edit so it is used in all cases. Some |x|-expansion is unnecessary.
+% There is no need to avoid losing braces nor to protect against
+% expansion. The ending code is much simplified and does not need to
+% hide in braces.
% \begin{macrocode}
\cs_new_protected:Npn \str_replace_once:Nnn
- { \@@_replace:NNNnn \@@_replace_wrap:w \tl_set:Nx }
+ { \@@_replace:NNNnn \prg_do_nothing: \tl_set:Nx }
\cs_new_protected:Npn \str_greplace_once:Nnn
- { \@@_replace:NNNnn \@@_replace_wrap:w \tl_gset:Nx }
+ { \@@_replace:NNNnn \prg_do_nothing: \tl_gset:Nx }
\cs_new_protected:Npn \str_replace_all:Nnn
{ \@@_replace:NNNnn \@@_replace_next:w \tl_set:Nx }
\cs_new_protected:Npn \str_greplace_all:Nnn
@@ -996,56 +1006,66 @@
\cs_generate_variant:Nn \str_greplace_all:Nnn { c }
\cs_new_protected:Npn \@@_replace:NNNnn #1#2#3#4#5
{
- \use:x
- {
- \@@_replace_auxi:NNNnn \exp_not:N #1 #2 \exp_not:N #3
- { \tl_to_str:n {#4} } { \tl_to_str:n {#5} }
- }
- }
- \cs_new_protected:Npn \@@_replace_auxi:NNNnn #1#2#3#4#5
- {
\tl_if_empty:nTF {#4}
{
\__msg_kernel_error:nnx { kernel } { empty-search-pattern } {#5}
}
- { \@@_replace_auxii:NNNnn #1 #2 #3 {#4} {#5} }
+ {
+ \use:x
+ {
+ \exp_not:n { \@@_replace_aux:NNNnnn #1 #2 #3 }
+ { \tl_to_str:N #3 }
+ { \tl_to_str:n {#4} } { \tl_to_str:n {#5} }
+ }
+ }
}
-\cs_new_protected:Npn \@@_replace_auxii:NNNnn #1#2#3#4#5
+\cs_new_protected:Npn \@@_replace_aux:NNNnnn #1#2#3#4#5#6
{
- \cs_set:Npn \@@_replace_wrap:w ##1 \q_mark ##2
- { \exp_not:o { \use_none:nn ##1 } ##2 }
- \cs_set:Npx \@@_replace_next:w ##1 #4
- {
- \exp_not:N \@@_replace_wrap:w ##1
- \exp_not:N \q_mark
- \exp_not:n { \exp_not:n {#5} }
- \exp_not:n { #1 { } { } }
- }
- #2 #3 { \tl_to_str:N #3 }
+ \cs_set:Npn \@@_replace_next:w ##1 #5 { ##1 #6 #1 }
#2 #3
{
- \exp_after:wN \@@_replace_next:w
- \exp_after:wN { \exp_after:wN }
- \exp_after:wN { \exp_after:wN }
- #3
- \q_mark
- {
- \if_false: { \fi: }
- \exp_after:wN \use_none:n \exp_after:wN { \if_false: } \fi:
- }
+ \@@_replace_next:w
#4
+ \use_none_delimit_by_q_stop:w
+ #5
+ \q_stop
}
}
-\cs_new_eq:NN \@@_replace_wrap:w ?
\cs_new_eq:NN \@@_replace_next:w ?
% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
% \end{macro}
+%
+% \begin{macro}{\str_remove_once:Nn, \str_remove_once:cn}
+% \begin{macro}{\str_gremove_once:Nn, \str_gremove_once:cn}
+% Removal is just a special case of replacement.
+% \begin{macrocode}
+\cs_new_protected:Npn \str_remove_once:Nn #1#2
+ { \str_replace_once:Nnn #1 {#2} { } }
+\cs_new_protected:Npn \str_gremove_once:Nn #1#2
+ { \str_greplace_once:Nnn #1 {#2} { } }
+\cs_generate_variant:Nn \str_remove_once:Nn { c }
+\cs_generate_variant:Nn \str_gremove_once:Nn { c }
+% \end{macrocode}
% \end{macro}
% \end{macro}
%
+% \begin{macro}{\str_remove_all:Nn, \str_remove_all:cn}
+% \begin{macro}{\str_gremove_all:Nn, \str_gremove_all:cn}
+% Removal is just a special case of replacement.
+% \begin{macrocode}
+\cs_new_protected:Npn \str_remove_all:Nn #1#2
+ { \str_replace_all:Nnn #1 {#2} { } }
+\cs_new_protected:Npn \str_gremove_all:Nn #1#2
+ { \str_greplace_all:Nnn #1 {#2} { } }
+\cs_generate_variant:Nn \str_remove_all:Nn { c }
+\cs_generate_variant:Nn \str_gremove_all:Nn { c }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
% \subsection{String comparisons}
%
% \begin{macro}[pTF, EXP]
@@ -1173,41 +1193,25 @@
% \end{macro}
%
% \begin{macro}[TF]{\str_if_in:Nn, \str_if_in:cn \str_if_in:nn}
-% Everything here needs to be detokenized but beyond that it is a simple
-% token list test.
+% Everything here needs to be detokenized but beyond that it is a
+% simple token list test. It would be faster to fine-tune the |T|,
+% |F|, |TF| variants by calling the appropriate variant of
+% \cs{tl_if_in:nnTF} directly but that takes more code.
% \begin{macrocode}
-\cs_new_protected:Npn \str_if_in:NnT #1#2
+\prg_new_protected_conditional:Npnn \str_if_in:Nn #1#2 { T , F , TF }
{
\use:x
- { \tl_if_in:nnT { \tl_to_str:N #1 } { \tl_to_str:n {#2} } }
- }
-\cs_new_protected:Npn \str_if_in:NnF #1#2
- {
- \use:x
- { \tl_if_in:nnF { \tl_to_str:N #1 } { \tl_to_str:n {#2} } }
- }
-\cs_new_protected:Npn \str_if_in:NnTF #1#2
- {
- \use:x
{ \tl_if_in:nnTF { \tl_to_str:N #1 } { \tl_to_str:n {#2} } }
+ { \prg_return_true: } { \prg_return_false: }
}
\cs_generate_variant:Nn \str_if_in:NnT { c }
\cs_generate_variant:Nn \str_if_in:NnF { c }
\cs_generate_variant:Nn \str_if_in:NnTF { c }
-\cs_new_protected:Npn \str_if_in:nnT #1#2
+\prg_new_protected_conditional:Npnn \str_if_in:nn #1#2 { T , F , TF }
{
\use:x
- { \tl_if_in:nnT { \tl_to_str:n {#1} } { \tl_to_str:n {#2} } }
- }
-\cs_new_protected:Npn \str_if_in:nnF #1#2
- {
- \use:x
- { \tl_if_in:nnF { \tl_to_str:n {#1} } { \tl_to_str:n {#2} } }
- }
-\cs_new_protected:Npn \str_if_in:nnTF #1#2
- {
- \use:x
{ \tl_if_in:nnTF { \tl_to_str:n {#1} } { \tl_to_str:n {#2} } }
+ { \prg_return_true: } { \prg_return_false: }
}
% \end{macrocode}
% \end{macro}
Modified: trunk/l3kernel/testfiles/m3expl001.luatex.tlg
===================================================================
--- trunk/l3kernel/testfiles/m3expl001.luatex.tlg 2017-10-19 23:45:49 UTC (rev 7511)
+++ trunk/l3kernel/testfiles/m3expl001.luatex.tlg 2017-10-19 23:48:44 UTC (rev 7512)
@@ -647,10 +647,16 @@
Defining \str_replace_all:cnn on line ...
Defining \str_greplace_all:cnn on line ...
Defining \__str_replace:NNNnn on line ...
-Defining \__str_replace_auxi:NNNnn on line ...
-Defining \__str_replace_auxii:NNNnn on line ...
-Defining \__str_replace_wrap:w on line ...
+Defining \__str_replace_aux:NNNnnn on line ...
Defining \__str_replace_next:w on line ...
+Defining \str_remove_once:Nn on line ...
+Defining \str_gremove_once:Nn on line ...
+Defining \str_remove_once:cn on line ...
+Defining \str_gremove_once:cn on line ...
+Defining \str_remove_all:Nn on line ...
+Defining \str_gremove_all:Nn on line ...
+Defining \str_remove_all:cn on line ...
+Defining \str_gremove_all:cn on line ...
Defining \str_if_exist_p:N on line ...
Defining \str_if_exist:NT on line ...
Defining \str_if_exist:NF on line ...
Modified: trunk/l3kernel/testfiles/m3expl001.ptex.tlg
===================================================================
--- trunk/l3kernel/testfiles/m3expl001.ptex.tlg 2017-10-19 23:45:49 UTC (rev 7511)
+++ trunk/l3kernel/testfiles/m3expl001.ptex.tlg 2017-10-19 23:48:44 UTC (rev 7512)
@@ -646,10 +646,16 @@
Defining \str_replace_all:cnn on line ...
Defining \str_greplace_all:cnn on line ...
Defining \__str_replace:NNNnn on line ...
-Defining \__str_replace_auxi:NNNnn on line ...
-Defining \__str_replace_auxii:NNNnn on line ...
-Defining \__str_replace_wrap:w on line ...
+Defining \__str_replace_aux:NNNnnn on line ...
Defining \__str_replace_next:w on line ...
+Defining \str_remove_once:Nn on line ...
+Defining \str_gremove_once:Nn on line ...
+Defining \str_remove_once:cn on line ...
+Defining \str_gremove_once:cn on line ...
+Defining \str_remove_all:Nn on line ...
+Defining \str_gremove_all:Nn on line ...
+Defining \str_remove_all:cn on line ...
+Defining \str_gremove_all:cn on line ...
Defining \str_if_exist_p:N on line ...
Defining \str_if_exist:NT on line ...
Defining \str_if_exist:NF on line ...
Modified: trunk/l3kernel/testfiles/m3expl001.tlg
===================================================================
--- trunk/l3kernel/testfiles/m3expl001.tlg 2017-10-19 23:45:49 UTC (rev 7511)
+++ trunk/l3kernel/testfiles/m3expl001.tlg 2017-10-19 23:48:44 UTC (rev 7512)
@@ -646,10 +646,16 @@
Defining \str_replace_all:cnn on line ...
Defining \str_greplace_all:cnn on line ...
Defining \__str_replace:NNNnn on line ...
-Defining \__str_replace_auxi:NNNnn on line ...
-Defining \__str_replace_auxii:NNNnn on line ...
-Defining \__str_replace_wrap:w on line ...
+Defining \__str_replace_aux:NNNnnn on line ...
Defining \__str_replace_next:w on line ...
+Defining \str_remove_once:Nn on line ...
+Defining \str_gremove_once:Nn on line ...
+Defining \str_remove_once:cn on line ...
+Defining \str_gremove_once:cn on line ...
+Defining \str_remove_all:Nn on line ...
+Defining \str_gremove_all:Nn on line ...
+Defining \str_remove_all:cn on line ...
+Defining \str_gremove_all:cn on line ...
Defining \str_if_exist_p:N on line ...
Defining \str_if_exist:NT on line ...
Defining \str_if_exist:NF on line ...
Modified: trunk/l3kernel/testfiles/m3expl001.uptex.tlg
===================================================================
--- trunk/l3kernel/testfiles/m3expl001.uptex.tlg 2017-10-19 23:45:49 UTC (rev 7511)
+++ trunk/l3kernel/testfiles/m3expl001.uptex.tlg 2017-10-19 23:48:44 UTC (rev 7512)
@@ -646,10 +646,16 @@
Defining \str_replace_all:cnn on line ...
Defining \str_greplace_all:cnn on line ...
Defining \__str_replace:NNNnn on line ...
-Defining \__str_replace_auxi:NNNnn on line ...
-Defining \__str_replace_auxii:NNNnn on line ...
-Defining \__str_replace_wrap:w on line ...
+Defining \__str_replace_aux:NNNnnn on line ...
Defining \__str_replace_next:w on line ...
+Defining \str_remove_once:Nn on line ...
+Defining \str_gremove_once:Nn on line ...
+Defining \str_remove_once:cn on line ...
+Defining \str_gremove_once:cn on line ...
+Defining \str_remove_all:Nn on line ...
+Defining \str_gremove_all:Nn on line ...
+Defining \str_remove_all:cn on line ...
+Defining \str_gremove_all:cn on line ...
Defining \str_if_exist_p:N on line ...
Defining \str_if_exist:NT on line ...
Defining \str_if_exist:NF on line ...
Modified: trunk/l3kernel/testfiles/m3expl001.xetex.tlg
===================================================================
--- trunk/l3kernel/testfiles/m3expl001.xetex.tlg 2017-10-19 23:45:49 UTC (rev 7511)
+++ trunk/l3kernel/testfiles/m3expl001.xetex.tlg 2017-10-19 23:48:44 UTC (rev 7512)
@@ -646,10 +646,16 @@
Defining \str_replace_all:cnn on line ...
Defining \str_greplace_all:cnn on line ...
Defining \__str_replace:NNNnn on line ...
-Defining \__str_replace_auxi:NNNnn on line ...
-Defining \__str_replace_auxii:NNNnn on line ...
-Defining \__str_replace_wrap:w on line ...
+Defining \__str_replace_aux:NNNnnn on line ...
Defining \__str_replace_next:w on line ...
+Defining \str_remove_once:Nn on line ...
+Defining \str_gremove_once:Nn on line ...
+Defining \str_remove_once:cn on line ...
+Defining \str_gremove_once:cn on line ...
+Defining \str_remove_all:Nn on line ...
+Defining \str_gremove_all:Nn on line ...
+Defining \str_remove_all:cn on line ...
+Defining \str_gremove_all:cn on line ...
Defining \str_if_exist_p:N on line ...
Defining \str_if_exist:NT on line ...
Defining \str_if_exist:NF on line ...
Modified: trunk/l3kernel/testfiles/m3expl003.luatex.tlg
===================================================================
--- trunk/l3kernel/testfiles/m3expl003.luatex.tlg 2017-10-19 23:45:49 UTC (rev 7511)
+++ trunk/l3kernel/testfiles/m3expl003.luatex.tlg 2017-10-19 23:48:44 UTC (rev 7512)
@@ -647,10 +647,16 @@
Defining \str_replace_all:cnn on line ...
Defining \str_greplace_all:cnn on line ...
Defining \__str_replace:NNNnn on line ...
-Defining \__str_replace_auxi:NNNnn on line ...
-Defining \__str_replace_auxii:NNNnn on line ...
-Defining \__str_replace_wrap:w on line ...
+Defining \__str_replace_aux:NNNnnn on line ...
Defining \__str_replace_next:w on line ...
+Defining \str_remove_once:Nn on line ...
+Defining \str_gremove_once:Nn on line ...
+Defining \str_remove_once:cn on line ...
+Defining \str_gremove_once:cn on line ...
+Defining \str_remove_all:Nn on line ...
+Defining \str_gremove_all:Nn on line ...
+Defining \str_remove_all:cn on line ...
+Defining \str_gremove_all:cn on line ...
Defining \str_if_exist_p:N on line ...
Defining \str_if_exist:NT on line ...
Defining \str_if_exist:NF on line ...
Modified: trunk/l3kernel/testfiles/m3expl003.ptex.tlg
===================================================================
--- trunk/l3kernel/testfiles/m3expl003.ptex.tlg 2017-10-19 23:45:49 UTC (rev 7511)
+++ trunk/l3kernel/testfiles/m3expl003.ptex.tlg 2017-10-19 23:48:44 UTC (rev 7512)
@@ -646,10 +646,16 @@
Defining \str_replace_all:cnn on line ...
Defining \str_greplace_all:cnn on line ...
Defining \__str_replace:NNNnn on line ...
-Defining \__str_replace_auxi:NNNnn on line ...
-Defining \__str_replace_auxii:NNNnn on line ...
-Defining \__str_replace_wrap:w on line ...
+Defining \__str_replace_aux:NNNnnn on line ...
Defining \__str_replace_next:w on line ...
+Defining \str_remove_once:Nn on line ...
+Defining \str_gremove_once:Nn on line ...
+Defining \str_remove_once:cn on line ...
+Defining \str_gremove_once:cn on line ...
+Defining \str_remove_all:Nn on line ...
+Defining \str_gremove_all:Nn on line ...
+Defining \str_remove_all:cn on line ...
+Defining \str_gremove_all:cn on line ...
Defining \str_if_exist_p:N on line ...
Defining \str_if_exist:NT on line ...
Defining \str_if_exist:NF on line ...
Modified: trunk/l3kernel/testfiles/m3expl003.tlg
===================================================================
--- trunk/l3kernel/testfiles/m3expl003.tlg 2017-10-19 23:45:49 UTC (rev 7511)
+++ trunk/l3kernel/testfiles/m3expl003.tlg 2017-10-19 23:48:44 UTC (rev 7512)
@@ -646,10 +646,16 @@
Defining \str_replace_all:cnn on line ...
Defining \str_greplace_all:cnn on line ...
Defining \__str_replace:NNNnn on line ...
-Defining \__str_replace_auxi:NNNnn on line ...
-Defining \__str_replace_auxii:NNNnn on line ...
-Defining \__str_replace_wrap:w on line ...
+Defining \__str_replace_aux:NNNnnn on line ...
Defining \__str_replace_next:w on line ...
+Defining \str_remove_once:Nn on line ...
+Defining \str_gremove_once:Nn on line ...
+Defining \str_remove_once:cn on line ...
+Defining \str_gremove_once:cn on line ...
+Defining \str_remove_all:Nn on line ...
+Defining \str_gremove_all:Nn on line ...
+Defining \str_remove_all:cn on line ...
+Defining \str_gremove_all:cn on line ...
Defining \str_if_exist_p:N on line ...
Defining \str_if_exist:NT on line ...
Defining \str_if_exist:NF on line ...
Modified: trunk/l3kernel/testfiles/m3expl003.uptex.tlg
===================================================================
--- trunk/l3kernel/testfiles/m3expl003.uptex.tlg 2017-10-19 23:45:49 UTC (rev 7511)
+++ trunk/l3kernel/testfiles/m3expl003.uptex.tlg 2017-10-19 23:48:44 UTC (rev 7512)
@@ -646,10 +646,16 @@
Defining \str_replace_all:cnn on line ...
Defining \str_greplace_all:cnn on line ...
Defining \__str_replace:NNNnn on line ...
-Defining \__str_replace_auxi:NNNnn on line ...
-Defining \__str_replace_auxii:NNNnn on line ...
-Defining \__str_replace_wrap:w on line ...
+Defining \__str_replace_aux:NNNnnn on line ...
Defining \__str_replace_next:w on line ...
+Defining \str_remove_once:Nn on line ...
+Defining \str_gremove_once:Nn on line ...
+Defining \str_remove_once:cn on line ...
+Defining \str_gremove_once:cn on line ...
+Defining \str_remove_all:Nn on line ...
+Defining \str_gremove_all:Nn on line ...
+Defining \str_remove_all:cn on line ...
+Defining \str_gremove_all:cn on line ...
Defining \str_if_exist_p:N on line ...
Defining \str_if_exist:NT on line ...
Defining \str_if_exist:NF on line ...
Modified: trunk/l3kernel/testfiles/m3expl003.xetex.tlg
===================================================================
--- trunk/l3kernel/testfiles/m3expl003.xetex.tlg 2017-10-19 23:45:49 UTC (rev 7511)
+++ trunk/l3kernel/testfiles/m3expl003.xetex.tlg 2017-10-19 23:48:44 UTC (rev 7512)
@@ -646,10 +646,16 @@
Defining \str_replace_all:cnn on line ...
Defining \str_greplace_all:cnn on line ...
Defining \__str_replace:NNNnn on line ...
-Defining \__str_replace_auxi:NNNnn on line ...
-Defining \__str_replace_auxii:NNNnn on line ...
-Defining \__str_replace_wrap:w on line ...
+Defining \__str_replace_aux:NNNnnn on line ...
Defining \__str_replace_next:w on line ...
+Defining \str_remove_once:Nn on line ...
+Defining \str_gremove_once:Nn on line ...
+Defining \str_remove_once:cn on line ...
+Defining \str_gremove_once:cn on line ...
+Defining \str_remove_all:Nn on line ...
+Defining \str_gremove_all:Nn on line ...
+Defining \str_remove_all:cn on line ...
+Defining \str_gremove_all:cn on line ...
Defining \str_if_exist_p:N on line ...
Defining \str_if_exist:NT on line ...
Defining \str_if_exist:NF on line ...
More information about the latex3-commits
mailing list