summaryrefslogtreecommitdiff
path: root/tex/context/base/syst-gen.tex
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/syst-gen.tex')
-rw-r--r--tex/context/base/syst-gen.tex42
1 files changed, 18 insertions, 24 deletions
diff --git a/tex/context/base/syst-gen.tex b/tex/context/base/syst-gen.tex
index 8c8a58465..5e4ed06de 100644
--- a/tex/context/base/syst-gen.tex
+++ b/tex/context/base/syst-gen.tex
@@ -3066,27 +3066,9 @@
\let\p!doassign\p!n!doassign
-%D Here are the initializers. Later we will apply them.
+%D And set:
-\def\doset@p@expanded
- {\let\dosetpvalue \dosetevalue % expand values
- \let\p!doassign \p!e!doassign % provide \currentvalue
- \let\reset@p@expanded\doreset@p@expanded} % reset afterwards
-
-\def\doreset@p@expanded
- {\let\currentvalue \empty % prevent carry over
- \let\dosetpvalue \dosetvalue % don't expand
- \let\p!doassign \p!n!doassign % don't provide \currentvalue
- \let\set@p@expanded \relax % don't prepare
- \let\reset@p@expanded\relax} % speed up next round
-
-\doreset@p@expanded \def\expandparameters{\let\set@p@expanded\doset@p@expanded}
-
-%D We overload some previously defined macros:
-
-\def\getparameters{\dogetparameters\dosetpvalue}
-
-\let\dosetpvalue\dosetvalue % normal behaviour
+\let\currentvalue\empty
%D \macros {expandparameters}
%D
@@ -3106,12 +3088,24 @@
%D \getbuffer
%D \stoplines
-%D Here we hook in the code:
+%D Here we hook in the code (beware, this is the optimized get **):
-\def\xdogetparameters#1]%
- {\set@p@expanded
+\def\xdoget@n@parameters#1]%
+ {\xprocesscommaitem#1,],\@relax@}
+
+\def\xdoget@e@parameters#1]%
+ {\let\dosetnvalue\dosetvalue
+ \let\dosetvalue\dosetevalue
+ \let\p!doassign\p!e!doassign
\xprocesscommaitem#1,],\@relax@
- \reset@p@expanded}
+ \let\p!doassign\p!n!doassign
+ \let\dosetvalue\dosetnvalue
+ \let\xdogetparameters\xdoget@n@parameters
+ \let\currentvalue\empty}
+
+\let\xdogetparameters\xdoget@n@parameters % **
+
+\def\expandparameters{\let\xdogetparameters\xdoget@e@parameters}
%D \macros
%D {getemptyparameters}