summaryrefslogtreecommitdiff
path: root/tex/context/base/mult-aux.mkiv
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/mult-aux.mkiv')
-rw-r--r--tex/context/base/mult-aux.mkiv115
1 files changed, 59 insertions, 56 deletions
diff --git a/tex/context/base/mult-aux.mkiv b/tex/context/base/mult-aux.mkiv
index 4cef621fd..902f88f45 100644
--- a/tex/context/base/mult-aux.mkiv
+++ b/tex/context/base/mult-aux.mkiv
@@ -75,45 +75,45 @@
% and normally don't do testing of them making sense.
%
% \testfeatureonce{100000}{\getparameters[bla][a=111,b=222,c=333]}% 1.669s
-% \testfeatureonce{100000}{\get_parameters{bla} [a=111,b=222,c=333]}% 1.529s
-% \testfeatureonce{100000}{\def\current_parameter_namespace{bla}\get_parameters_indeed[a=111,b=222,c=333]}% 1.466s
+% \testfeatureonce{100000}{\interfaces_get_parameters{bla} [a=111,b=222,c=333]}% 1.529s
+% \testfeatureonce{100000}{\def\current_parameter_namespace{bla}\interfaces_get_parameters_indeed[a=111,b=222,c=333]}% 1.466s
%
% \get_parameter {...} [...]
% \def\current_parameter_namespace{...} \get_parameter_indeed[...]
-\def\get_parameters#1[#2%
+\def\interfaces_get_parameters#1[#2%
{\if\noexpand#2]%
\expandafter\gobbleoneargument
\else
\def\current_parameter_namespace{#1}%
- \expandafter\get_parameters_indeed
+ \expandafter\interfaces_get_parameters_indeed
\fi#2}
-% \def\get_parameters#1% we can assume that the test already happened
+% \def\interfaces_get_parameters#1% we can assume that the test already happened
% {\def\current_parameter_namespace{#1}%
-% \get_parameters_indeed}
+% \interfaces_get_parameters_indeed}
-\def\get_parameters_indeed#1]% namespace already set
- {\get_parameters_item#1,],\@relax@}
+\def\interfaces_get_parameters_indeed#1]% namespace already set
+ {\interfaces_get_parameters_item#1,],\@relax@}
-\def\get_parameters_item#1,#2% #2 takes space before ,
+\def\interfaces_get_parameters_item#1,#2% #2 takes space before ,
{\if,#1,% dirty trick for testing #1=empty
- \expandafter\get_parameters_item
+ \expandafter\interfaces_get_parameters_item
\else\if]#1%
\doubleexpandafter\gobbleoneargument
\else
- \get_parameters_assign#1==\empty\@relax@
- \doubleexpandafter\get_parameters_item
+ \interfaces_get_parameters_assign#1==\empty\@relax@
+ \doubleexpandafter\interfaces_get_parameters_item
\fi\fi#2}
-\def\get_parameters_error#1#2#3%
+\def\interfaces_get_parameters_error#1#2#3%
{\showassignerror{#2}{\the\inputlineno\space(#1)}}
-\def\get_parameters_assign#1=#2=#3#4\@relax@
+\def\interfaces_get_parameters_assign#1=#2=#3#4\@relax@
{\ifx\empty#1\empty
- \expandafter\get_parameters_error
+ \expandafter\interfaces_get_parameters_error
\else\ifx#3\empty
- \doubleexpandafter\get_parameters_error
+ \doubleexpandafter\interfaces_get_parameters_error
\else
\doubleexpandafter\dosetvalue
\fi\fi
@@ -121,7 +121,7 @@
% End of experimental code.
-\unexpanded\def\doinstallparameterhandler#1#2#3#4#5#6#7#8#9% inlining \csname*\endcsname is more efficient (#3 and #6 only)
+\unexpanded\def\interfaces_install_parameter_handler#1#2#3#4#5#6#7#8#9% inlining \csname*\endcsname is more efficient (#3 and #6 only)
{\ifx#2\relax\let#2\empty\fi % it is hardly faster but produces less expansion tracing
%\def#3##1{\csname#4{#1#2}{##1}\endcsname}%
\def#3##1{\csname\ifcsname#1#2:##1\endcsname#1#2:##1\else\expandafter#5\csname#1#2:\s!parent\endcsname{##1}\fi\endcsname}%
@@ -135,7 +135,7 @@
\unexpanded\def\installparameterhandler#1#2%
{\normalexpanded
- {\doinstallparameterhandler
+ {\interfaces_install_parameter_handler
{\noexpand#1}% \??aa
\expandafter\noexpand\csname current#2\endcsname
\expandafter\noexpand\csname #2parameter\endcsname
@@ -146,18 +146,18 @@
\expandafter\noexpand\csname strict#2parameter\endcsname % checked
\expandafter\noexpand\csname direct#2parameter\endcsname}} % unchecked
-\unexpanded\def\doinstallrootparameterhandler#1#2#3%
+\unexpanded\def\interfaces_install_root_parameter_handler#1#2#3%
{\def#2##1{\detokenize\expandafter\expandafter\expandafter{\csname#1:##1\endcsname}}% always root
\def#3##1{\csname\ifcsname#1:##1\endcsname#1:##1\else\s!empty\fi\endcsname}}
\unexpanded\def\installrootparameterhandler#1#2%
{\normalexpanded
- {\doinstallrootparameterhandler
+ {\interfaces_install_root_parameter_handler
{\noexpand#1}% \??aa
\expandafter\noexpand\csname detokenizedroot#2parameter\endcsname
\expandafter\noexpand\csname root#2parameter\endcsname}}
-\unexpanded\def\doinstallparameterhashhandler#1#2#3#4#5#6#7#8#9%
+\unexpanded\def\interfaces_install_parameter_hash_handler#1#2#3#4#5#6#7#8#9%
{\ifx#2\relax\let#2\empty\fi
\def#3##1{#4{#1#2}{##1}:}%
\def#4##1##2{\ifcsname##1:##2\endcsname##1\else\expandafter#5\csname##1:\s!parent\endcsname{##2}\fi}%
@@ -169,7 +169,7 @@
\unexpanded\def\installparameterhashhandler#1#2%
{\normalexpanded
- {\doinstallparameterhashhandler
+ {\interfaces_install_parameter_hash_handler
{\noexpand#1}% \??aa
\expandafter\noexpand\csname current#2\endcsname
\expandafter\noexpand\csname #2parameterhash\endcsname
@@ -180,7 +180,10 @@
\expandafter\noexpand\csname check#2parent\endcsname
\expandafter\noexpand\csname chaintocurrent#2\endcsname}}
-\unexpanded\def\doinstallparametersethandler#1#2#3#4#5% we can speed this up for english
+% In \MKIV\ we can probably use the english variant for all other
+% languages too.
+
+\unexpanded\def\interfaces_install_parameter_set_handler#1#2#3#4#5% we can speed this up for english
{\ifx#2\relax\let#2\empty\fi
\unexpanded\def#3{\dosetvalue{#1#2:}}% ##1 {##2} (braces are mandate)
\unexpanded\def#4{\doletvalue{#1#2:}}% ##1 ##2
@@ -188,7 +191,7 @@
\startinterface english
- \unexpanded\def\doinstallparametersethandler#1#2#3#4#5%
+ \unexpanded\def\interfaces_install_parameter_set_handler#1#2#3#4#5%
{\ifx#2\relax\let#2\empty\fi
\unexpanded\def#3##1{\expandafter\def\csname#1#2:##1\endcsname}% ##1 {##2} (braces are mandate)
\unexpanded\def#4##1{\expandafter\let\csname#1#2:##1\endcsname}% ##1 ##2
@@ -198,7 +201,7 @@
\unexpanded\def\installparametersethandler#1#2%
{\normalexpanded
- {\doinstallparametersethandler
+ {\interfaces_install_parameter_set_handler
{\noexpand#1}% \??aa
\expandafter\noexpand\csname current#2\endcsname
\expandafter\noexpand\csname set#2parameter\endcsname
@@ -211,7 +214,7 @@
\let\currentstyleparameter\empty
\let\currentcolorparameter\empty
-\unexpanded\def\doinstallstyleandcolorhandler#1#2#3#4%
+\unexpanded\def\interfaces_install_style_and_color_handler#1#2#3#4%
{\unexpanded\def#2##1##2% style color
{\edef\currentstyleparameter{#1{##1}}% this name is public
\edef\currentcolorparameter{#1{##2}}% this name is public
@@ -226,7 +229,7 @@
\unexpanded\def\installstyleandcolorhandler#1#2%
{\normalexpanded
- {\doinstallstyleandcolorhandler
+ {\interfaces_install_style_and_color_handler
\expandafter\noexpand\csname #2parameter\endcsname
\expandafter\noexpand\csname use#2styleandcolor\endcsname % maybe an alias use#2styleandcolorparameters
\expandafter\noexpand\csname use#2styleparameter\endcsname
@@ -234,7 +237,7 @@
\let\definehandlerparent\empty
-\unexpanded\def\doinstalldefinehandler#1#2#3#4#5#6#7#8%
+\unexpanded\def\interfaces_install_define_handler#1#2#3#4#5#6#7#8%
{\ifx#4\relax\let#4\empty\fi
\unexpanded\def#2{\dotripleempty#5}%
\newtoks#6%
@@ -246,26 +249,26 @@
\ifthirdargument
\edef#8{##2}%
% \getparameters[#1#4:][\s!parent=#1##2,##3]%
- \get_parameters{#1#4:}[\s!parent=#1##2,##3]%
+ \interfaces_get_parameters{#1#4:}[\s!parent=#1##2,##3]%
\else\ifsecondargument
\doifassignmentelse{##2}
{\let#8\empty
% \getparameters[#1#4:][\s!parent=#3,##2]}
- \get_parameters{#1#4:}[\s!parent=#3,##2]}
+ \interfaces_get_parameters{#1#4:}[\s!parent=#3,##2]}
{\edef#8{##2}%
% \getparameters[#1#4:][\s!parent=#1##2]}%
- \get_parameters{#1#4:}[\s!parent=#1##2]}%
+ \interfaces_get_parameters{#1#4:}[\s!parent=#1##2]}%
\else
\let#8\empty
% \getparameters[#1#4:][\s!parent=#3]%
- \get_parameters{#1#4:}[\s!parent=#3]%
+ \interfaces_get_parameters{#1#4:}[\s!parent=#3]%
\fi\fi
\the#7%
\let#4\saveddefinewhatever}}
\unexpanded\def\installdefinehandler#1#2#3%
{\normalexpanded
- {\doinstalldefinehandler
+ {\interfaces_install_define_handler
{\noexpand#1}% \??aa
\expandafter\noexpand\csname define#2\endcsname
{\noexpand#3}% root
@@ -275,11 +278,11 @@
\expandafter\noexpand\csname everydefine#2\endcsname
\expandafter\noexpand\csname current#2parent\endcsname}}
-\unexpanded\def\doinstallsetuphandler#1#2#3#4#5#6%
+\unexpanded\def\interfaces_install_setup_handler#1#2#3#4#5#6%
{\ifx#3\relax\let#3\empty\fi
\unexpanded\def#2{\dodoubleempty#4}%
% \unexpanded\def#6{\getparameters[#1#3:]}% no every ! don't change it
- \unexpanded\def#6{\get_parameters{#1#3:}}% no every ! don't change it
+ \unexpanded\def#6{\interfaces_get_parameters{#1#3:}}% no every ! don't change it
\newtoks#5%
\def#4[##1][##2]% maybe helper
{\let\savedsetupwhatever#3%
@@ -287,20 +290,20 @@
\def\docommand####1% we will have a simple one as well
{\edef#3{####1}%
% \getparameters[#1#3:][##2]%
- \get_parameters{#1#3:}[##2]%
+ \interfaces_get_parameters{#1#3:}[##2]%
\the#5}%
\processcommalist[##1]\docommand
\else
\let#3\empty
% \getparameters[#1:][##1]%
- \get_parameters{#1:}[##1]%
+ \interfaces_get_parameters{#1:}[##1]%
\the#5%
\fi
\let#3\savedsetupwhatever}}
\unexpanded\def\installsetuphandler#1#2%
{\normalexpanded
- {\doinstallsetuphandler
+ {\interfaces_install_setup_handler
{\noexpand#1}% \??aa
\expandafter\noexpand\csname setup#2\endcsname
\expandafter\noexpand\csname current#2\endcsname
@@ -308,18 +311,18 @@
\expandafter\noexpand\csname everysetup#2\endcsname
\expandafter\noexpand\csname setupcurrent#2\endcsname}}
-\unexpanded\def\doinstallswitchsetuphandler#1#2#3#4#5#6%
+\unexpanded\def\interfaces_install_switch_setup_handler#1#2#3#4#5#6%
{\ifx#3\relax\let#3\empty\fi
\unexpanded\def#2{\dodoubleempty#4}%
% \unexpanded\def#6{\getparameters[#1#3:]}%
- \unexpanded\def#6{\get_parameters{#1#3:}}%
+ \unexpanded\def#6{\interfaces_get_parameters{#1#3:}}%
\newtoks#5%
\def#4[##1][##2]% maybe helper
{\ifsecondargument % no commalist here
\let\savedsetupwhatever#3%
\edef#3{##1}%
% \getparameters[#1#3:][##2]%
- \get_parameters{#1#3:}[##2]%
+ \interfaces_get_parameters{#1#3:}[##2]%
\the#5%
\let#3\savedsetupwhatever
\else\iffirstargument
@@ -327,7 +330,7 @@
{\let\savedsetupwhatever#3%
\let#3\empty
% \getparameters[#1:][##1]%
- \get_parameters{#1:}[##1]%
+ \interfaces_get_parameters{#1:}[##1]%
\the#5%
\let#3\savedsetupwhatever}
{\edef#3{##1}% this will catch reset
@@ -339,7 +342,7 @@
\unexpanded\def\installswitchsetuphandler#1#2%
{\normalexpanded
- {\doinstallswitchsetuphandler
+ {\interfaces_install_switch_setup_handler
{\noexpand#1}% \??aa
\expandafter\noexpand\csname setup#2\endcsname
\expandafter\noexpand\csname current#2\endcsname
@@ -347,11 +350,11 @@
\expandafter\noexpand\csname everysetup#2\endcsname
\expandafter\noexpand\csname setupcurrent#2\endcsname}}
-\unexpanded\def\doinstallautosetuphandler#1#2#3#4#5#6#7%
+\unexpanded\def\interfaces_install_auto_setup_handler#1#2#3#4#5#6#7%
{\ifx#3\relax\let#3\empty\fi
\unexpanded\def#2{\dotripleempty#4}%
% \unexpanded\def#6{\getparameters[#1#3:]}%
- \unexpanded\def#6{\get_parameters{#1#3:}}%
+ \unexpanded\def#6{\interfaces_get_parameters{#1#3:}}%
\newtoks#5%
\def#4[##1][##2][##3]%
{\let\savedsetupwhatever#3%
@@ -359,7 +362,7 @@
\def\docommand####1%
{\edef#3{####1}%
% \getparameters[#1#3:][\s!parent=#1##2,##3]%
- \get_parameters{#1#3:}[\s!parent=#1##2,##3]% always sets parent
+ \interfaces_get_parameters{#1#3:}[\s!parent=#1##2,##3]% always sets parent
\the#5}%
\processcommalist[##1]\docommand
\else\ifsecondargument
@@ -367,20 +370,20 @@
{\edef#3{####1}%
#7% checks parent and sets if needed
% \getparameters[#1#3:][##2]%
- \get_parameters{#1#3:}[##2]%
+ \interfaces_get_parameters{#1#3:}[##2]%
\the#5}%
\processcommalist[##1]\docommand
\else
\let#3\empty
% \getparameters[#1:][##1]%
- \get_parameters{#1:}[##1]%
+ \interfaces_get_parameters{#1:}[##1]%
\the#5%
\fi\fi
\let#3\savedsetupwhatever}}
\unexpanded\def\installautosetuphandler#1#2%
{\normalexpanded
- {\doinstallautosetuphandler
+ {\interfaces_install_auto_setup_handler
{\noexpand#1}% \??aa
\expandafter\noexpand\csname setup#2\endcsname
\expandafter\noexpand\csname current#2\endcsname
@@ -462,9 +465,9 @@
% \stoptext
\unexpanded\def\definenamespace
- {\dodoubleargument\dodefinenamespace}
+ {\dodoubleargument\interfaces_define_name_space}
-\def\dodefinenamespace[#1][#2]% namespace settings
+\def\interfaces_define_name_space[#1][#2]% namespace settings
{\ctxlua{interfaces.namespaces.define(\!!bs#1\!!es,\!!bs#2\!!es)}}
\def\listnamespaces
@@ -476,15 +479,15 @@
%D \showparentchain{@@am}{left}
%D \stoptyping
-\def\doshowparentchain#1%
+\def\showparentchain#1#2%
+ {\writestatus\m!system{chain: [ \interfaces_show_parent_chain{#1#2}]}}
+
+\def\interfaces_show_parent_chain#1%
{#1 => %
\ifcsname#1:\s!parent\endcsname
- \expandafter\doshowparentchain\csname#1:\s!parent\endcsname
+ \expandafter\interfaces_show_parent_chain\csname#1:\s!parent\endcsname
\fi}
-\def\showparentchain#1#2%
- {\writestatus\m!system{chain: [ \doshowparentchain{#1#2}]}}
-
%D Conventions:
%D
%D \starttyping