[latex3-commits] [git/LaTeX3-latex3-latex3] master: faster keys_parent:o (538d4e999)
Joseph Wright
joseph.wright at morningstar2.co.uk
Wed Aug 5 08:40:39 CEST 2020
Repository : https://github.com/latex3/latex3
On branch : master
Link : https://github.com/latex3/latex3/commit/538d4e999406a2a45d07a076d2f67daf400e3ad4
>---------------------------------------------------------------
commit 538d4e999406a2a45d07a076d2f67daf400e3ad4
Author: Jonathan Spratte <jspratte at yahoo.de>
Date: Mon Aug 3 22:26:23 2020 +0200
faster keys_parent:o
>---------------------------------------------------------------
538d4e999406a2a45d07a076d2f67daf400e3ad4
l3kernel/l3keys.dtx | 40 ++++++++++++++++++++++++++--------------
1 file changed, 26 insertions(+), 14 deletions(-)
diff --git a/l3kernel/l3keys.dtx b/l3kernel/l3keys.dtx
index eb527c3ad..52388279a 100644
--- a/l3kernel/l3keys.dtx
+++ b/l3kernel/l3keys.dtx
@@ -2928,23 +2928,35 @@
%
% \subsection{Utilities}
%
-% \begin{macro}[EXP]{\@@_parent:n, \@@_parent:o}
-% \begin{macro}[EXP]{\@@_parent:w}
+% \begin{macro}[EXP]{\@@_parent:o}
+% \begin{macro}[EXP]
+% {
+% \@@_parent_auxi:w ,
+% \@@_parent_auxii:w ,
+% \@@_parent_auxiii:n ,
+% \@@_parent_auxiv:w
+% }
% Used to strip off the ending part of the key path after the last~|/|.
% \begin{macrocode}
-\cs_new:Npn \@@_parent:n #1
- { \@@_parent:w #1 / / \s_@@_stop { } }
-\cs_generate_variant:Nn \@@_parent:n { o }
-\cs_new:Npn \@@_parent:w #1 / #2 / #3 \s_@@_stop #4
+\cs_new:Npn \@@_parent:o #1
+ {
+ \exp_after:wN \@@_parent_auxi:w #1 \q_nil \@@_parent_auxii:w
+ / \q_nil \@@_parent_auxiv:w
+ }
+\cs_new:Npn \@@_parent_auxi:w #1 / #2 \q_nil #3
+ {
+ #3 { #1 } #2 \q_nil #3
+ }
+\cs_new:Npn \@@_parent_auxii:w #1 #2 \q_nil \@@_parent_auxii:w
+ {
+ #1 \@@_parent_auxi:w #2 \q_nil \@@_parent_auxiii:n
+ }
+\cs_new:Npn \@@_parent_auxiii:n #1
+ {
+ / #1 \@@_parent_auxi:w
+ }
+\cs_new:Npn \@@_parent_auxiv:w #1 \q_nil \@@_parent_auxiv:w
{
- \tl_if_blank:nTF {#2}
- {
- \tl_if_blank:nF {#4}
- { \use_none:n #4 }
- }
- {
- \@@_parent:w #2 / #3 \s_@@_stop { #4 / #1 }
- }
}
% \end{macrocode}
% \end{macro}
More information about the latex3-commits
mailing list.