summaryrefslogtreecommitdiff
path: root/tex/context/base/strc-lst.mkiv
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2011-07-13 20:14:00 +0200
committerHans Hagen <pragma@wxs.nl>2011-07-13 20:14:00 +0200
commitd6b1bbb30b5d03582599faf4132630d46275bb97 (patch)
tree8ef0cfe83b7369857f3f5e3e88b6bb5edf023170 /tex/context/base/strc-lst.mkiv
parent850a7b29bba45111582a15b674f40f68fbd7ab5e (diff)
downloadcontext-d6b1bbb30b5d03582599faf4132630d46275bb97.tar.gz
beta 2011.07.13 20:14
Diffstat (limited to 'tex/context/base/strc-lst.mkiv')
-rw-r--r--tex/context/base/strc-lst.mkiv34
1 files changed, 23 insertions, 11 deletions
diff --git a/tex/context/base/strc-lst.mkiv b/tex/context/base/strc-lst.mkiv
index 149b1a734..c532f0ae7 100644
--- a/tex/context/base/strc-lst.mkiv
+++ b/tex/context/base/strc-lst.mkiv
@@ -961,40 +961,52 @@
\unexpanded\def\determinelistcharacteristics
{\dodoubleempty\dodeterminelistcharacteristics}
-\def\combinedlistparameter#1{\csname\??ih\currentcombinedlist#1\endcsname}
-
-\unexpanded\def\setupcombinedlist
- {\dodoubleargument\dosetupcombinedlist}
+% todo: make simple parameter handler
-\def\dosetupcombinedlist[#1][#2]%
- {\getparameters[\??ih#1][#2]%
- \edef\currentcombinedlist{#1}%
- \normalexpanded{\noexpand\setuplist[\combinedlistparameter\c!list]}[#2]}
+\def\combinedlistparameter#1{\csname\??ih\currentcombinedlist#1\endcsname}
+\def\combinedlisttoks {\csname\??ih::\currentcombinedlist\endcsname}
\unexpanded\def\definecombinedlist
{\dotripleempty\dodefinecombinedlist}
\def\dodefinecombinedlist[#1][#2][#3]%
- {\getparameters
+ {\edef\currentcombinedlist{#1}%
+ \getparameters
[\??ih#1]
[\c!criterium=\v!local,\c!number=0,\c!list={#2},#3]%
+\expandafter\newtoks\csname\??ih::\currentcombinedlist\endcsname
+\combinedlisttoks{#3}%
\setvalue{\e!setup#1\e!endsetup}{\dodoubleempty\dosetupcombinedlist[#1]}%
\setvalue{\e!place#1}{\dodoubleempty\doplacecombinedlist[#1]}%
\setvalue{\e!complete#1}{\dodoubleempty\docompletecombinedlist[#1]}}
+\unexpanded\def\setupcombinedlist
+ {\dodoubleargument\dosetupcombinedlist}
+
+% \def\dosetupcombinedlist[#1][#2]% this will change, as we now adapt all list elements
+% {\getparameters[\??ih#1][#2]% % maybe some parent magic or store in a toks
+% \edef\currentcombinedlist{#1}%
+% \normalexpanded{\setuplist[\combinedlistparameter\c!list]}[#2]}
+
+\def\dosetupcombinedlist[#1][#2]%
+ {\edef\currentcombinedlist{#1}%
+ \getparameters[\??ih#1][#2]%
+ \combinedlisttoks\expandafter{\the\combinedlisttoks,#2}}% can accumulate
+
\unexpanded\def\placecombinedlist
{\dodoubleempty\doplacecombinedlist}
\def\doplacecombinedlist[#1][#2]% we can move much of the analysis to lua
{\begingroup
% level is no longer supported
- \def\currentcombinedlist{#1}%
+ \edef\currentcombinedlist{#1}%
\getparameters[\??ih#1][#2]%
\edef\combinedlist{\combinedlistparameter\c!list}%
\the\everystructurelist
\doif{\combinedlistparameter\c!coupling}\v!on{\startlistreferences{#1}}%
\dobeginoflist
- \normalexpanded{\setuplist[\combinedlist][#2]}%
+% \normalexpanded{\setuplist[\combinedlist][#2]}%
+\normalexpanded{\setuplist[\combinedlist][\the\combinedlisttoks,#2]}% or ,}#2]%
\doplacestructurelist
{\combinedlist}%
{\combinedlistparameter\c!criterium}%