summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/l3kernel/l3basics.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/l3kernel/l3basics.dtx')
-rw-r--r--macros/latex/contrib/l3kernel/l3basics.dtx9
1 files changed, 5 insertions, 4 deletions
diff --git a/macros/latex/contrib/l3kernel/l3basics.dtx b/macros/latex/contrib/l3kernel/l3basics.dtx
index 761aa46a79..0be8bdc8b2 100644
--- a/macros/latex/contrib/l3kernel/l3basics.dtx
+++ b/macros/latex/contrib/l3kernel/l3basics.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2024-01-04}
+% \date{Released 2024-01-22}
%
% \maketitle
%
@@ -2824,17 +2824,18 @@
% The \texttt{c} variant is careful not to add the control sequence
% to the hash table if it isn't there yet, and it also avoids nesting
% \TeX{} conditionals in case |#1| is unbalanced in this matter.
+% We optimize the case where the command exists by reducing as much as
+% possible the tokens in the conditional.
% \begin{macrocode}
\cs_new_protected:Npn \cs_undefine:N #1
{ \cs_gset_eq:NN #1 \tex_undefined:D }
\cs_new_protected:Npn \cs_undefine:c #1
{
\if_cs_exist:w #1 \cs_end:
- \exp_after:wN \use:n
\else:
- \exp_after:wN \use_none:n
+ \use_i:nnnn
\fi:
- { \cs_gset_eq:cN {#1} \tex_undefined:D }
+ \exp_args:Nc \cs_undefine:N {#1}
}
% \end{macrocode}
% \end{macro}