summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/l3kernel/l3basics.dtx')
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3basics.dtx232
1 files changed, 119 insertions, 113 deletions
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
index 3e2faf912cf..84e6a2c9086 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3basics.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-%% File: l3basics.dtx Copyright (C) 1990-2015 The LaTeX3 project
+%% File: l3basics.dtx Copyright (C) 1990-2016 The LaTeX3 project
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -37,7 +37,7 @@
\documentclass[full]{l3doc}
%</driver>
%<*driver|package>
-\GetIdInfo$Id: l3basics.dtx 6315 2015-11-22 22:49:22Z bruno $
+\GetIdInfo$Id: l3basics.dtx 6696 2016-09-01 16:09:52Z bruno $
{L3 Basic definitions}
%</driver|package>
%<*driver>
@@ -147,7 +147,7 @@
% Declaring a function before setting up the code means that the name
% chosen will be checked and an error raised if it is already in use.
% The name of a function can be checked at the point of definition using
-% the \cs{cs_new\ldots} functions: this is recommended for all
+% the \cs[no-index]{cs_new\ldots} functions: this is recommended for all
% functions which are defined for the first time.
%
% There are three ways to define new functions.
@@ -558,7 +558,7 @@
% \cs_gset_nopar:Nx, \cs_gset_nopar:cx
% }
% \begin{syntax}
-% \cs{cs_gset_nopar:Nn} \meta{function} \Arg{code}
+% \cs{cs_git cogset_nopar:Nn} \meta{function} \Arg{code}
% \end{syntax}
% Sets \meta{function} to expand to \meta{code} as replacement text.
% Within the \meta{code}, the number of \meta{parameters} is detected
@@ -743,25 +743,16 @@
% \end{verbatim}
% after two expansions of \cs{use:c}.
%
-% \begin{function}[EXP,added = 2012-11-10]
+% \begin{function}[noTF, EXP, added = 2012-11-10]
% {\cs_if_exist_use:N, \cs_if_exist_use:c}
% \begin{syntax}
% \cs{cs_if_exist_use:N} \meta{control sequence}
-% \end{syntax}
-% Tests whether the \meta{control sequence} is currently defined
-% (whether as a function or another control sequence type), and if it
-% does inserts the \meta{control sequence} into the input stream.
-% \end{function}
-%
-% \begin{function}[TF,EXP, added = 2012-11-10]
-% {\cs_if_exist_use:N, \cs_if_exist_use:c}
-% \begin{syntax}
% \cs{cs_if_exist_use:NTF} \meta{control sequence} \Arg{true code} \Arg{false code}
% \end{syntax}
% Tests whether the \meta{control sequence} is currently defined
% (whether as a function or another control sequence type), and if it
-% does inserts the \meta{control sequence} into the input stream followed
-% by the \meta{true code}.
+% is inserts the \meta{control sequence} into the input stream followed
+% by the \meta{true code}. Otherwise the \meta{false code} is used.
% \end{function}
%
% \begin{function}[EXP]{\cs:w, \cs_end:}
@@ -1306,7 +1297,7 @@
% These will be defined as needed in the appropriate modules, but
% do a few now, just to get started.\footnote{This renaming gets expensive
% in terms of csname usage, an alternative scheme would be to just use
-% the \cs{tex\ldots:D} name in the cases where no good alternative exists.}
+% the \cs[no-index]{tex_\ldots:D} name in the cases where no good alternative exists.}
%
% \begin{macro}[EXP]
% {
@@ -1418,7 +1409,8 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[EXP]{\token_to_meaning:c, \token_to_str:c, \cs_meaning:c}
+% \begin{macro}[EXP, documented-as=\token_to_meaning:N]
+% {\token_to_meaning:c, \token_to_str:c, \cs_meaning:c}
% A small number of variants defined by hand.
% Some of the necessary functions
% (\cs{use_i:nn}, \cs{use_ii:nn}, and \cs{exp_args:NNc}) are not
@@ -1497,18 +1489,18 @@
% \begin{macrocode}
\tex_let:D \cs_set_nopar:Npn \tex_def:D
\tex_let:D \cs_set_nopar:Npx \tex_edef:D
-\etex_protected:D \cs_set_nopar:Npn \cs_set:Npn
- { \tex_long:D \cs_set_nopar:Npn }
-\etex_protected:D \cs_set_nopar:Npn \cs_set:Npx
- { \tex_long:D \cs_set_nopar:Npx }
-\etex_protected:D \cs_set_nopar:Npn \cs_set_protected_nopar:Npn
- { \etex_protected:D \cs_set_nopar:Npn }
-\etex_protected:D \cs_set_nopar:Npn \cs_set_protected_nopar:Npx
- { \etex_protected:D \cs_set_nopar:Npx }
-\cs_set_protected_nopar:Npn \cs_set_protected:Npn
- { \etex_protected:D \tex_long:D \cs_set_nopar:Npn }
-\cs_set_protected_nopar:Npn \cs_set_protected:Npx
- { \etex_protected:D \tex_long:D \cs_set_nopar:Npx }
+\etex_protected:D \tex_long:D \tex_def:D \cs_set:Npn
+ { \tex_long:D \tex_def:D }
+\etex_protected:D \tex_long:D \tex_def:D \cs_set:Npx
+ { \tex_long:D \tex_edef:D }
+\etex_protected:D \tex_long:D \tex_def:D \cs_set_protected_nopar:Npn
+ { \etex_protected:D \tex_def:D }
+\etex_protected:D \tex_long:D \tex_def:D \cs_set_protected_nopar:Npx
+ { \etex_protected:D \tex_edef:D }
+\etex_protected:D \tex_long:D \tex_def:D \cs_set_protected:Npn
+ { \etex_protected:D \tex_long:D \tex_def:D }
+\etex_protected:D \tex_long:D \tex_def:D \cs_set_protected:Npx
+ { \etex_protected:D \tex_long:D \tex_edef:D }
% \end{macrocode}
% \end{macro}
%
@@ -1523,18 +1515,18 @@
% \begin{macrocode}
\tex_let:D \cs_gset_nopar:Npn \tex_gdef:D
\tex_let:D \cs_gset_nopar:Npx \tex_xdef:D
-\cs_set_protected_nopar:Npn \cs_gset:Npn
- { \tex_long:D \cs_gset_nopar:Npn }
-\cs_set_protected_nopar:Npn \cs_gset:Npx
- { \tex_long:D \cs_gset_nopar:Npx }
-\cs_set_protected_nopar:Npn \cs_gset_protected_nopar:Npn
- { \etex_protected:D \cs_gset_nopar:Npn }
-\cs_set_protected_nopar:Npn \cs_gset_protected_nopar:Npx
- { \etex_protected:D \cs_gset_nopar:Npx }
-\cs_set_protected_nopar:Npn \cs_gset_protected:Npn
- { \etex_protected:D \tex_long:D \cs_gset_nopar:Npn }
-\cs_set_protected_nopar:Npn \cs_gset_protected:Npx
- { \etex_protected:D \tex_long:D \cs_gset_nopar:Npx }
+\cs_set_protected:Npn \cs_gset:Npn
+ { \tex_long:D \tex_gdef:D }
+\cs_set_protected:Npn \cs_gset:Npx
+ { \tex_long:D \tex_xdef:D }
+\cs_set_protected:Npn \cs_gset_protected_nopar:Npn
+ { \etex_protected:D \tex_gdef:D }
+\cs_set_protected:Npn \cs_gset_protected_nopar:Npx
+ { \etex_protected:D \tex_xdef:D }
+\cs_set_protected:Npn \cs_gset_protected:Npn
+ { \etex_protected:D \tex_long:D \tex_gdef:D }
+\cs_set_protected:Npn \cs_gset_protected:Npx
+ { \etex_protected:D \tex_long:D \tex_xdef:D }
% \end{macrocode}
% \end{macro}
%
@@ -1703,9 +1695,9 @@
% at least two tokens: see how the logical tests are actually implemented
% to see this.
% \begin{macrocode}
-\cs_set_nopar:Npn \prg_return_true:
+\cs_set:Npn \prg_return_true:
{ \exp_after:wN \use_i:nn \exp:w }
-\cs_set_nopar:Npn \prg_return_false:
+\cs_set:Npn \prg_return_false:
{ \exp_after:wN \use_ii:nn \exp:w}
% \end{macrocode}
% An extended state space could be implemented by including a more
@@ -1731,13 +1723,13 @@
% \Arg{code} to the auxiliary function responsible for defining all
% conditionals.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \prg_set_conditional:Npnn
+\cs_set_protected:Npn \prg_set_conditional:Npnn
{ \__prg_generate_conditional_parm:nnNpnn { set } { } }
-\cs_set_protected_nopar:Npn \prg_new_conditional:Npnn
+\cs_set_protected:Npn \prg_new_conditional:Npnn
{ \__prg_generate_conditional_parm:nnNpnn { new } { } }
-\cs_set_protected_nopar:Npn \prg_set_protected_conditional:Npnn
+\cs_set_protected:Npn \prg_set_protected_conditional:Npnn
{ \__prg_generate_conditional_parm:nnNpnn { set } { _protected } }
-\cs_set_protected_nopar:Npn \prg_new_protected_conditional:Npnn
+\cs_set_protected:Npn \prg_new_protected_conditional:Npnn
{ \__prg_generate_conditional_parm:nnNpnn { new } { _protected } }
\cs_set_protected:Npn \__prg_generate_conditional_parm:nnNpnn #1#2#3#4#
{
@@ -1773,13 +1765,13 @@
% erroneous case where the function name contains no colon is captured
% later.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \prg_set_conditional:Nnn
+\cs_set_protected:Npn \prg_set_conditional:Nnn
{ \__prg_generate_conditional_count:nnNnn { set } { } }
-\cs_set_protected_nopar:Npn \prg_new_conditional:Nnn
+\cs_set_protected:Npn \prg_new_conditional:Nnn
{ \__prg_generate_conditional_count:nnNnn { new } { } }
-\cs_set_protected_nopar:Npn \prg_set_protected_conditional:Nnn
+\cs_set_protected:Npn \prg_set_protected_conditional:Nnn
{ \__prg_generate_conditional_count:nnNnn { set } { _protected } }
-\cs_set_protected_nopar:Npn \prg_new_protected_conditional:Nnn
+\cs_set_protected:Npn \prg_new_protected_conditional:Nnn
{ \__prg_generate_conditional_count:nnNnn { new } { _protected } }
\cs_set_protected:Npn \__prg_generate_conditional_count:nnNnn #1#2#3
{
@@ -1926,9 +1918,9 @@
% |,| \cs{q_recursion_stop}
% to a first auxiliary.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \prg_set_eq_conditional:NNn
+\cs_set_protected:Npn \prg_set_eq_conditional:NNn
{ \__prg_set_eq_conditional:NNNn \cs_set_eq:cc }
-\cs_set_protected_nopar:Npn \prg_new_eq_conditional:NNn
+\cs_set_protected:Npn \prg_new_eq_conditional:NNn
{ \__prg_set_eq_conditional:NNNn \cs_new_eq:cc }
\cs_set_protected:Npn \__prg_set_eq_conditional:NNNn #1#2#3#4
{
@@ -2084,7 +2076,7 @@
% In all three cases, \cs{cs_to_str:N} takes two expansion steps
% to be fully expanded.
% \begin{macrocode}
-\cs_set_nopar:Npn \cs_to_str:N
+\cs_set:Npn \cs_to_str:N
{
% \end{macrocode}
% We implement the expansion scheme using \cs{tex_romannumeral:D}
@@ -2101,6 +2093,10 @@
\cs_set:Npn \__cs_to_str:w #1 \__cs_to_str:N
{ - \__int_value:w \fi: \exp_after:wN \c_zero }
% \end{macrocode}
+% If speed is a concern we could use \tn{csstring} in \LuaTeX{}. For
+% the empty csname that primitive gives an empty result while the
+% current \cs{cs_to_str:N} gives incorrect results in all engines
+% (this is impossible to fix without huge performance hit).
% \end{macro}
% \end{macro}
%
@@ -2250,15 +2246,15 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[EXP,TF,added=2011-10-10]
+% \begin{macro}[EXP,noTF,added=2011-10-10]
% {\cs_if_exist_use:N, \cs_if_exist_use:c}
-% \begin{macro}[EXP,added=2011-10-10]
-% {\cs_if_exist_use:N, \cs_if_exist_use:c}
-% The \cs{cs_if_exist_use:\ldots{}} functions cannot be implemented
+% The \cs[index=cs_if_exist_use:N]{cs_if_exist_use:\ldots{}}
+% functions cannot be implemented
% as conditionals because the true branch must leave both the control
% sequence itself and the true code in the input stream.
% For the \texttt{c} variants, we are careful not to put the control
% sequence in the hash table if it does not exist.
+% In \LuaTeX{} we could use the \tn{lastnamedcs} primitive.
% \begin{macrocode}
\cs_set:Npn \cs_if_exist_use:NTF #1#2
{ \cs_if_exist:NTF #1 { #1 #2 } }
@@ -2278,7 +2274,6 @@
{ \cs_if_exist:cTF {#1} { \use:c {#1} } { } }
% \end{macrocode}
% \end{macro}
-% \end{macro}
%
% \subsection{Defining and checking (new) functions}
%
@@ -2292,14 +2287,14 @@
% allow us to generate error messages. The definitions here are
% only temporary, they will be redefined later on.
%
-% \begin{macro}{\iow_log:x, \iow_term:x}
+% \begin{macro}[documented-as=\iow_log:n]{\iow_log:x, \iow_term:x}
% We define a routine to write only to the log file. And a
% similar one for writing to both the log file and the terminal.
% These will be redefined later by \pkg{l3io}.
% \begin{macrocode}
-\cs_set_protected_nopar:Npn \iow_log:x
+\cs_set_protected:Npn \iow_log:x
{ \tex_immediate:D \tex_write:D \c_minus_one }
-\cs_set_protected_nopar:Npn \iow_term:x
+\cs_set_protected:Npn \iow_term:x
{ \tex_immediate:D \tex_write:D \c_sixteen }
% \end{macrocode}
% \end{macro}
@@ -2317,29 +2312,29 @@
% before that point.
% \begin{macrocode}
%<*initex>
-\cs_set_protected_nopar:Npn \__chk_log:x { \use_none:n }
-\cs_set_protected_nopar:Npn \__chk_suspend_log: { }
-\cs_set_protected_nopar:Npn \__chk_resume_log: { }
+\cs_set_protected:Npn \__chk_log:x { \use_none:n }
+\cs_set_protected:Npn \__chk_suspend_log: { }
+\cs_set_protected:Npn \__chk_resume_log: { }
%</initex>
%<*package>
\tex_ifodd:D \l@expl@log@functions@bool
- \cs_set_protected_nopar:Npn \__chk_log:x { \iow_log:x }
- \cs_set_protected_nopar:Npn \__chk_suspend_log:
+ \cs_set_protected:Npn \__chk_log:x { \iow_log:x }
+ \cs_set_protected:Npn \__chk_suspend_log:
{
- \cs_set_protected_nopar:Npx \__chk_resume_log:
+ \cs_set_protected:Npx \__chk_resume_log:
{
- \cs_set_protected_nopar:Npn \__chk_resume_log:
+ \cs_set_protected:Npn \__chk_resume_log:
{ \exp_not:o { \__chk_resume_log: } }
- \cs_set_protected_nopar:Npn \__chk_log:x
+ \cs_set_protected:Npn \__chk_log:x
{ \exp_not:o { \__chk_log:x } }
}
- \cs_set_protected_nopar:Npn \__chk_log:x { \use_none:n }
+ \cs_set_protected:Npn \__chk_log:x { \use_none:n }
}
- \cs_set_protected_nopar:Npn \__chk_resume_log: { }
+ \cs_set_protected:Npn \__chk_resume_log: { }
\else:
- \cs_set_protected_nopar:Npn \__chk_log:x { \use_none:n }
- \cs_set_protected_nopar:Npn \__chk_suspend_log: { }
- \cs_set_protected_nopar:Npn \__chk_resume_log: { }
+ \cs_set_protected:Npn \__chk_log:x { \use_none:n }
+ \cs_set_protected:Npn \__chk_suspend_log: { }
+ \cs_set_protected:Npn \__chk_resume_log: { }
\fi:
%</package>
% \end{macrocode}
@@ -2376,7 +2371,7 @@
% \begin{macro}[rEXP]{\msg_line_context:}
% Another one from \pkg{l3msg} which will be altered later.
% \begin{macrocode}
-\cs_set_nopar:Npn \msg_line_context:
+\cs_set:Npn \msg_line_context:
{ on~line~ \tex_the:D \tex_inputlineno:D }
% \end{macrocode}
% \end{macro}
@@ -2411,7 +2406,7 @@
}
\fi:
%</package>
-\cs_set_protected_nopar:Npn \__chk_if_free_cs:c
+\cs_set_protected:Npn \__chk_if_free_cs:c
{ \exp_args:Nc \__chk_if_free_cs:N }
% \end{macrocode}
% \end{macro}
@@ -2447,7 +2442,7 @@
{ \token_to_str:N #1 }
}
}
-\cs_set_protected_nopar:Npn \__chk_if_exist_cs:c
+\cs_set_protected:Npn \__chk_if_exist_cs:c
{ \exp_args:Nc \__chk_if_exist_cs:N }
% \end{macrocode}
% \end{macro}
@@ -2485,7 +2480,7 @@
% \end{macro}
% \end{macro}
%
-% \begin{macro}
+% \begin{macro}[documented-as=\cs_set_nopar:Npn]
% {
% \cs_set_nopar:cpn , \cs_set_nopar:cpx ,
% \cs_gset_nopar:cpn , \cs_gset_nopar:cpx ,
@@ -2513,7 +2508,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}
+% \begin{macro}[documented-as=\cs_set:Npn]
% {
% \cs_set:cpn , \cs_set:cpx ,
% \cs_gset:cpn , \cs_gset:cpx ,
@@ -2531,7 +2526,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}
+% \begin{macro}[documented-as=\cs_set_protected_nopar:Npn]
% {
% \cs_set_protected_nopar:cpn , \cs_set_protected_nopar:cpx ,
% \cs_gset_protected_nopar:cpn , \cs_gset_protected_nopar:cpx ,
@@ -2549,7 +2544,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}
+% \begin{macro}[documented-as=\cs_set_protected:Npn]
% {
% \cs_set_protected:cpn , \cs_set_protected:cpx ,
% \cs_gset_protected:cpn , \cs_gset_protected:cpx ,
@@ -2589,21 +2584,21 @@
% \enquote{runaway argument}.
% \begin{macrocode}
\cs_new_protected:Npn \cs_set_eq:NN #1 { \tex_let:D #1 =~ }
-\cs_new_protected_nopar:Npn \cs_set_eq:cN { \exp_args:Nc \cs_set_eq:NN }
-\cs_new_protected_nopar:Npn \cs_set_eq:Nc { \exp_args:NNc \cs_set_eq:NN }
-\cs_new_protected_nopar:Npn \cs_set_eq:cc { \exp_args:Ncc \cs_set_eq:NN }
-\cs_new_protected_nopar:Npn \cs_gset_eq:NN { \tex_global:D \cs_set_eq:NN }
-\cs_new_protected_nopar:Npn \cs_gset_eq:Nc { \exp_args:NNc \cs_gset_eq:NN }
-\cs_new_protected_nopar:Npn \cs_gset_eq:cN { \exp_args:Nc \cs_gset_eq:NN }
-\cs_new_protected_nopar:Npn \cs_gset_eq:cc { \exp_args:Ncc \cs_gset_eq:NN }
+\cs_new_protected:Npn \cs_set_eq:cN { \exp_args:Nc \cs_set_eq:NN }
+\cs_new_protected:Npn \cs_set_eq:Nc { \exp_args:NNc \cs_set_eq:NN }
+\cs_new_protected:Npn \cs_set_eq:cc { \exp_args:Ncc \cs_set_eq:NN }
+\cs_new_protected:Npn \cs_gset_eq:NN { \tex_global:D \cs_set_eq:NN }
+\cs_new_protected:Npn \cs_gset_eq:Nc { \exp_args:NNc \cs_gset_eq:NN }
+\cs_new_protected:Npn \cs_gset_eq:cN { \exp_args:Nc \cs_gset_eq:NN }
+\cs_new_protected:Npn \cs_gset_eq:cc { \exp_args:Ncc \cs_gset_eq:NN }
\cs_new_protected:Npn \cs_new_eq:NN #1
{
\__chk_if_free_cs:N #1
\tex_global:D \cs_set_eq:NN #1
}
-\cs_new_protected_nopar:Npn \cs_new_eq:cN { \exp_args:Nc \cs_new_eq:NN }
-\cs_new_protected_nopar:Npn \cs_new_eq:Nc { \exp_args:NNc \cs_new_eq:NN }
-\cs_new_protected_nopar:Npn \cs_new_eq:cc { \exp_args:Ncc \cs_new_eq:NN }
+\cs_new_protected:Npn \cs_new_eq:cN { \exp_args:Nc \cs_new_eq:NN }
+\cs_new_protected:Npn \cs_new_eq:Nc { \exp_args:NNc \cs_new_eq:NN }
+\cs_new_protected:Npn \cs_new_eq:cc { \exp_args:Ncc \cs_new_eq:NN }
% \end{macrocode}
% \end{macro}
%
@@ -2700,7 +2695,7 @@
\c_minus_one
\fi:
}
-\cs_new_nopar:Npn \__cs_count_signature:c
+\cs_new:Npn \__cs_count_signature:c
{ \exp_args:Nc \__cs_count_signature:N }
% \end{macrocode}
% \end{macro}
@@ -2737,9 +2732,9 @@
% A variant form we need right away, plus one which is used elsewhere but
% which is most logically created here.
% \begin{macrocode}
-\cs_new_protected_nopar:Npn \cs_generate_from_arg_count:cNnn
+\cs_new_protected:Npn \cs_generate_from_arg_count:cNnn
{ \exp_args:Nc \cs_generate_from_arg_count:NNnn }
-\cs_new_protected_nopar:Npn \cs_generate_from_arg_count:Ncnn
+\cs_new_protected:Npn \cs_generate_from_arg_count:Ncnn
{ \exp_args:NNc \cs_generate_from_arg_count:NNnn }
% \end{macrocode}
% \end{macro}
@@ -2781,7 +2776,7 @@
% \begin{macrocode}
\cs_set:Npn \__cs_tmp:w #1#2#3
{
- \cs_new_protected_nopar:cpx { cs_ #1 : #2 }
+ \cs_new_protected:cpx { cs_ #1 : #2 }
{
\exp_not:N \__cs_generate_from_signature:NNn
\exp_after:wN \exp_not:N \cs:w cs_ #1 : #3 \cs_end:
@@ -2796,6 +2791,12 @@
{
\bool_if:NTF #3
{
+ \str_if_eq_x:nnF { }
+ { \tl_map_function:nN {#2} \__cs_generate_from_signature:n }
+ {
+ \__msg_kernel_error:nnx { kernel } { non-base-function }
+ { \token_to_str:N #5 }
+ }
\cs_generate_from_arg_count:NNnn
#5 #4 { \tl_count:n {#2} } {#6}
}
@@ -2804,6 +2805,11 @@
{ \token_to_str:N #5 }
}
}
+\cs_new:Npn \__cs_generate_from_signature:n #1
+ {
+ \if:w n #1 \else: \if:w N #1 \else:
+ \if:w T #1 \else: \if:w F #1 \else: #1 \fi: \fi: \fi: \fi:
+ }
% \end{macrocode}
% Then we define the 24 variants beginning with |N|.
% \begin{macrocode}
@@ -2834,7 +2840,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}
+% \begin{macro}[documented-as=\cs_set:Nn]
% {
% \cs_set:cn , \cs_set:cx ,
% \cs_set_nopar:cn , \cs_set_nopar:cx ,
@@ -2853,7 +2859,7 @@
% \begin{macrocode}
\cs_set:Npn \__cs_tmp:w #1#2
{
- \cs_new_protected_nopar:cpx { cs_ #1 : c #2 }
+ \cs_new_protected:cpx { cs_ #1 : c #2 }
{
\exp_not:N \exp_args:Nc
\exp_after:wN \exp_not:N \cs:w cs_ #1 : N #2 \cs_end:
@@ -2897,18 +2903,18 @@
\if_meaning:w #1#2
\prg_return_true: \else: \prg_return_false: \fi:
}
-\cs_new_nopar:Npn \cs_if_eq_p:cN { \exp_args:Nc \cs_if_eq_p:NN }
-\cs_new_nopar:Npn \cs_if_eq:cNTF { \exp_args:Nc \cs_if_eq:NNTF }
-\cs_new_nopar:Npn \cs_if_eq:cNT { \exp_args:Nc \cs_if_eq:NNT }
-\cs_new_nopar:Npn \cs_if_eq:cNF { \exp_args:Nc \cs_if_eq:NNF }
-\cs_new_nopar:Npn \cs_if_eq_p:Nc { \exp_args:NNc \cs_if_eq_p:NN }
-\cs_new_nopar:Npn \cs_if_eq:NcTF { \exp_args:NNc \cs_if_eq:NNTF }
-\cs_new_nopar:Npn \cs_if_eq:NcT { \exp_args:NNc \cs_if_eq:NNT }
-\cs_new_nopar:Npn \cs_if_eq:NcF { \exp_args:NNc \cs_if_eq:NNF }
-\cs_new_nopar:Npn \cs_if_eq_p:cc { \exp_args:Ncc \cs_if_eq_p:NN }
-\cs_new_nopar:Npn \cs_if_eq:ccTF { \exp_args:Ncc \cs_if_eq:NNTF }
-\cs_new_nopar:Npn \cs_if_eq:ccT { \exp_args:Ncc \cs_if_eq:NNT }
-\cs_new_nopar:Npn \cs_if_eq:ccF { \exp_args:Ncc \cs_if_eq:NNF }
+\cs_new:Npn \cs_if_eq_p:cN { \exp_args:Nc \cs_if_eq_p:NN }
+\cs_new:Npn \cs_if_eq:cNTF { \exp_args:Nc \cs_if_eq:NNTF }
+\cs_new:Npn \cs_if_eq:cNT { \exp_args:Nc \cs_if_eq:NNT }
+\cs_new:Npn \cs_if_eq:cNF { \exp_args:Nc \cs_if_eq:NNF }
+\cs_new:Npn \cs_if_eq_p:Nc { \exp_args:NNc \cs_if_eq_p:NN }
+\cs_new:Npn \cs_if_eq:NcTF { \exp_args:NNc \cs_if_eq:NNTF }
+\cs_new:Npn \cs_if_eq:NcT { \exp_args:NNc \cs_if_eq:NNT }
+\cs_new:Npn \cs_if_eq:NcF { \exp_args:NNc \cs_if_eq:NNF }
+\cs_new:Npn \cs_if_eq_p:cc { \exp_args:Ncc \cs_if_eq_p:NN }
+\cs_new:Npn \cs_if_eq:ccTF { \exp_args:Ncc \cs_if_eq:NNTF }
+\cs_new:Npn \cs_if_eq:ccT { \exp_args:Ncc \cs_if_eq:NNT }
+\cs_new:Npn \cs_if_eq:ccF { \exp_args:Ncc \cs_if_eq:NNF }
% \end{macrocode}
% \end{macro}
%
@@ -2926,7 +2932,7 @@
\__msg_show_variable:NNNnn #1 \cs_if_exist:NTF ? { }
{ > ~ \token_to_str:N #1 = \tex_the:D #1 }
}
-\cs_new_protected_nopar:Npn \__kernel_register_show:c
+\cs_new_protected:Npn \__kernel_register_show:c
{ \exp_args:Nc \__kernel_register_show:N }
% \end{macrocode}
% \end{macro}
@@ -2942,7 +2948,7 @@
% \begin{macrocode}
\cs_new_protected:Npn \cs_show:N #1
{ \__msg_show_wrap:n { > ~ \token_to_str:N #1 = \cs_meaning:N #1 } }
-\cs_new_protected_nopar:Npn \cs_show:c
+\cs_new_protected:Npn \cs_show:c
{ \group_begin: \exp_args:NNc \group_end: \cs_show:N }
% \end{macrocode}
% \end{macro}