summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/l3kernel/l3str.dtx')
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3str.dtx51
1 files changed, 25 insertions, 26 deletions
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3str.dtx b/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
index 05b327cf286..376bcb729fe 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3str.dtx
@@ -37,7 +37,7 @@
\documentclass[full]{l3doc}
%</driver>
%<*driver|package>
-\GetIdInfo$Id: l3str.dtx 6441 2016-03-24 10:11:59Z joseph $
+\GetIdInfo$Id: l3str.dtx 6692 2016-08-19 22:29:47Z bruno $
{L3 Strings}
%</driver|package>
%<*driver>
@@ -91,8 +91,8 @@
% representation differently.
%
% Note that as string variables are a special case of token list variables
-% the coverage of \cs{str_\ldots{}:N} functions is somewhat smaller than
-% \cs{tl_\ldots{}:N}.
+% the coverage of \cs[no-index]{str_\ldots{}:N} functions is somewhat smaller than
+% \cs[no-index]{tl_\ldots{}:N}.
%
% The functions \cs{cs_to_str:N}, \cs{tl_to_str:n}, \cs{tl_to_str:N} and
% \cs{token_to_str:N} (and variants) will generate strings from the appropriate
@@ -101,11 +101,11 @@
%
% Most expandable functions in this module come in three flavours:
% \begin{itemize}
-% \item \cs{str_...:N}, which expect a token list or string
+% \item \cs[no-index]{str_\ldots{}:N}, which expect a token list or string
% variable as their argument;
-% \item \cs{str_...:n}, taking any token list (or string) as an
+% \item \cs[no-index]{str_\ldots{}:n}, taking any token list (or string) as an
% argument;
-% \item \cs{str_..._ignore_spaces:n}, which ignores any space
+% \item \cs[no-index]{str_\ldots{}_ignore_spaces:n}, which ignores any space
% encountered during the operation: these functions are typically
% faster than those which take care of escaping spaces
% appropriately.
@@ -145,7 +145,8 @@
% \cs{str_clear_new:N} \meta{str~var}
% \end{syntax}
% Ensures that the \meta{str~var} exists globally by applying
-% \cs{str_new:N} if necessary, then applies \cs{str_(g)clear:N} to leave
+% \cs{str_new:N} if necessary, then applies
+% \cs[index=str_clear:N]{str_(g)clear:N} to leave
% the \meta{str~var} empty.
% \end{function}
%
@@ -269,7 +270,7 @@
% is logically \texttt{true}.
% \end{function}
%
-% \begin{function}[added = 2013-07-24, updated = 2015-02-28, EXP, TF]
+% \begin{function}[added = 2013-07-24, updated = 2015-02-28, EXP, noTF]
% {\str_case:nn, \str_case:on, \str_case:nV, \str_case:nv}
% \begin{syntax}
% \cs{str_case:nnTF} \Arg{test string} \\
@@ -295,7 +296,7 @@
%
% \begin{function}[added = 2013-07-24, EXP, TF]{\str_case_x:nn}
% \begin{syntax}
-% \cs{str_case_x:nnF} \Arg{test string} \\
+% \cs{str_case_x:nnTF} \Arg{test string} \\
% ~~|{| \\
% ~~~~\Arg{string case_1} \Arg{code case_1} \\
% ~~~~\Arg{string case_2} \Arg{code case_2} \\
@@ -478,8 +479,10 @@
% \begin{itemize}
% \item Caseless comparisons: use \cs{str_fold_case:n} for this
% situation (case folding is district from lower casing).
-% \item Case changing text for typesetting: see the \cs{tl_lower_case:n(n)},
-% \cs{tl_upper_case:n(n)} and \cs{tl_mixed_case:n(n)} functions which
+% \item Case changing text for typesetting: see the
+% \cs[index=tl_lower_case:n]{tl_lower_case:n(n)},
+% \cs[index=tl_upper_case:n]{tl_upper_case:n(n)} and
+% \cs[index=tl_mixed_case:n]{tl_mixed_case:n(n)} functions which
% correctly deal with context-dependence and other factors appropriate
% to text case changing.
% \end{itemize}
@@ -608,7 +611,7 @@
% character basis, and is \texttt{true} if the two lists contain the same
% characters in the same order. Either \cs{prg_return_true:} or
% \cs{prg_return_false:} is then left in the input stream. This is a version
-% of \cs{str_if_eq_x:nn(TF)} coded for speed.
+% of \cs{str_if_eq_x:nnTF} coded for speed.
% \end{function}
%
% \begin{function}[EXP]{\__str_to_other:n}
@@ -764,7 +767,7 @@
%
% \begin{macro}[int, EXP]{\@@_if_eq_x:nn}
% \begin{macro}[aux, EXP]{\@@_escape_x:n}
-% String comparisons rely on the primitive \cs{(pdf)strcmp} if available:
+% 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
% is to wrap up in a function with defined behaviour. That's done by
@@ -872,15 +875,13 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[EXP]
-% {\str_case:nn, \str_case:on, \str_case:nV, \str_case:nv, \str_case_x:nn}
-% \begin{macro}[EXP, TF]
+% \begin{macro}[EXP, noTF]
% {\str_case:nn, \str_case:on, \str_case:nV, \str_case:nv, \str_case_x:nn}
% \begin{macro}[EXP, aux]{\@@_case:nnTF, \@@_case_x:nnTF}
% \begin{macro}[aux, EXP]
% {\@@_case:nw, \@@_case_x:nw, \@@_case_end:nw}
-% Much the same as \cs{tl_case:nn(TF)} here: just a change in the internal
-% comparison.
+% Much the same as \cs[index=tl_case:nn]{tl_case:nn(TF)} here:
+% just a change in the internal comparison.
% \begin{macrocode}
\cs_new:Npn \str_case:nn #1#2
{
@@ -947,7 +948,6 @@
% \end{macro}
% \end{macro}
% \end{macro}
-% \end{macro}
%
% \subsection{Accessing specific characters in a string}
%
@@ -1009,7 +1009,7 @@
% brace group before the string in that case: that brace group also
% covers the case where the \meta{index} is zero.
% \begin{macrocode}
-\cs_new_nopar:Npn \str_item:Nn { \exp_args:No \str_item:nn }
+\cs_new:Npn \str_item:Nn { \exp_args:No \str_item:nn }
\cs_generate_variant:Nn \str_item:Nn { c }
\cs_new:Npn \str_item:nn #1#2
{
@@ -1105,7 +1105,7 @@
% Afterwards, skip characters, then keep some more, and finally drop
% the end of the string.
% \begin{macrocode}
-\cs_new_nopar:Npn \str_range:Nnn { \exp_args:No \str_range:nnn }
+\cs_new:Npn \str_range:Nnn { \exp_args:No \str_range:nnn }
\cs_generate_variant:Nn \str_range:Nnn { c }
\cs_new:Npn \str_range:nnn #1#2#3
{
@@ -1226,7 +1226,7 @@
% \meta{number} is added to the sum of $9$ that precedes, to adjust
% the result.
% \begin{macrocode}
-\cs_new_nopar:Npn \str_count_spaces:N
+\cs_new:Npn \str_count_spaces:N
{ \exp_args:No \str_count_spaces:n }
\cs_generate_variant:Nn \str_count_spaces:N { c }
\cs_new:Npn \str_count_spaces:n #1
@@ -1268,7 +1268,7 @@
% \cs{str_count_ignore_spaces:n} but expects its argument to already
% be a string or a string with spaces escaped.
% \begin{macrocode}
-\cs_new_nopar:Npn \str_count:N { \exp_args:No \str_count:n }
+\cs_new:Npn \str_count:N { \exp_args:No \str_count:n }
\cs_generate_variant:Nn \str_count:N { c }
\cs_new:Npn \str_count:n #1
{
@@ -1331,7 +1331,7 @@
% gives an empty result after passing through
% \cs{use_i_delimit_by_q_stop:nw}.
% \begin{macrocode}
-\cs_new_nopar:Npn \str_head:N { \exp_args:No \str_head:n }
+\cs_new:Npn \str_head:N { \exp_args:No \str_head:n }
\cs_generate_variant:Nn \str_head:N { c }
\cs_set:Npn \str_head:n #1
{
@@ -1368,7 +1368,7 @@
% One can check that an empty (or blank) string yields an empty
% tail.
% \begin{macrocode}
-\cs_new_nopar:Npn \str_tail:N { \exp_args:No \str_tail:n }
+\cs_new:Npn \str_tail:N { \exp_args:No \str_tail:n }
\cs_generate_variant:Nn \str_tail:N { c }
\cs_set:Npn \str_tail:n #1
{
@@ -1623,7 +1623,6 @@
\@@_map_loop:
}
}
- \cs_set_nopar:Npn \l_@@_tmp_tl { }
% \end{macrocode}
% The lead-off parser for each line is common for all of the files. If
% the line starts with a |#| it's a comment. There's one special comment