summaryrefslogtreecommitdiff
path: root/tex/context/base/strc-lst.mkiv
diff options
context:
space:
mode:
authorMarius <mariausol@gmail.com>2011-07-13 23:40:25 +0300
committerMarius <mariausol@gmail.com>2011-07-13 23:40:25 +0300
commit3dd416f677074c27a248e3433695a6fe8c13ef69 (patch)
tree20c4a573a64f2079e2e3d3fe93b004af3caf7b2f /tex/context/base/strc-lst.mkiv
parent1ea50dab7f30289214b661f2cbcf53e97e6af0b6 (diff)
downloadcontext-3dd416f677074c27a248e3433695a6fe8c13ef69.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}%