summaryrefslogtreecommitdiff
path: root/tex/context/base/strc-itm.mkiv
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/strc-itm.mkiv')
-rw-r--r--tex/context/base/strc-itm.mkiv46
1 files changed, 16 insertions, 30 deletions
diff --git a/tex/context/base/strc-itm.mkiv b/tex/context/base/strc-itm.mkiv
index d0cf8817f..24e343132 100644
--- a/tex/context/base/strc-itm.mkiv
+++ b/tex/context/base/strc-itm.mkiv
@@ -46,7 +46,7 @@
\newcount\noflistelements
\newcount\itemcolumndepth
\newcount\itemdepth
-\newcount\maxitemdepth \maxitemdepth=6
+% \newcount\maxitemdepth \maxitemdepth=6
\newdimen\itemgrouplistwidth
\newdimen\itemgroupaskedwidth
@@ -202,10 +202,11 @@
% so we have:
\def\initializeitemgrouplevel#1%
- {\ifcsname\??op\currentitemgroup#1\s!parent\endcsname
+ {\ifcsname\??op\currentitemgroup\number#1\s!parent\endcsname
% ok
\else
- \setevalue{\??op\currentitemgroup#1\s!parent}{\??op\currentitemgroup}%
+ \setxvalue{\??op\currentitemgroup \c!levels}{\number#1}%
+ \setxvalue{\??op\currentitemgroup\number#1\s!parent}{\??op\currentitemgroup}%
\fi}
\unexpanded\def\defineitemgroup
@@ -215,15 +216,15 @@
{\doifsomething{#1}
{\pushmacro\currentitemgroup
\def\currentitemgroup{#1}%
- \setvalue{\e!start#1}{\startitemgroup[#1]}%
- \setvalue{\e!stop#1}{\stopitemgroup}%
- \setvalue{\e!setup#1\e!endsetup}{\setupitemgroup[#1]}% for old times sake
+ \setuvalue{\e!start#1}{\startitemgroup[#1]}%
+ \setuvalue{\e!stop#1}{\stopitemgroup}%
+ \setuvalue{\e!setup#1\e!endsetup}{\setupitemgroup[#1]}% for old times sake
\doifelsenothing{#2}
{\getparameters[\??op#1][\s!parent=\??oo,#3]}%
{\doifassignmentelse{#2}
{\getparameters[\??op#1][\s!parent=\??oo,#2]}%
{\getparameters[\??op#1][\s!parent=\??op#2,#3]}}%
- \dorecurse\maxitemdepth{\initializeitemgrouplevel\recurselevel}%
+ \dorecurse{\itemparameter\empty\c!levels}{\initializeitemgrouplevel\recurselevel}%
\definestructurecounter[itemgroup:#1]%
\popmacro\currentitemgroup}}
@@ -359,7 +360,7 @@
\getitemparameter\currentitemlevel\c!afterhead
\fi\fi}
-\def\dododododosetupitemgroup[#1][#2]%
+\unexpanded\def\dododododosetupitemgroup[#1][#2]% prevent expansion below
{\doifassignmentelse{#2}%
{\dosetupitemgroupvariable[#1][#2]}%
{\setitemparameter{#1}\c!option{#2}}}%
@@ -367,19 +368,8 @@
\def\dodododosetupitemgroup[#1][#2]%
{\doifsomething{#2}
{\doifelse{#1}\v!each
- {\dorecurse\maxitemdepth{\normalexpanded{\noexpand\dododododosetupitemgroup[\recurselevel]}[#2]}}
- {\normalexpanded{\noexpand\dododododosetupitemgroup[#1]}[#2]}}}
-
-% \def\dododosetupitemgroup[#1][#2]%
-% {\doifelsenothing{#2}
-% {\doifelsenothing{#1}
-% {\dodododosetupitemgroup[\currentitemlevel][#2]}
-% {\dodododosetupitemgroup[#1][#2]}}
-% {\ifcase\currentitemlevel\relax
-% \dodododosetupitemgroup[\v!each][#1]%
-% \else
-% \dodododosetupitemgroup[\currentitemlevel][#1]%
-% \fi}}
+ {\dorecurse{\itemparameter\empty\c!levels}{\normalexpanded{\dododododosetupitemgroup[\recurselevel]}[#2]}}
+ {\normalexpanded{\dododododosetupitemgroup[#1]}[#2]}}}
\def\dododosetupitemgroup[#1][#2]%
{\doifelsenothing{#2}
@@ -538,13 +528,8 @@
\def\dodostartitemgroup[#1]% [#2]%
{\relax % prevents lookahead
- \ifnum\currentitemlevel=\maxitemdepth\relax
- \showmessage\m!layouts9{\number\maxitemdepth}%
- \let\itemincrement\zerocount
- \else
- \let\itemincrement\plusone
- \fi
- \global\advance\itemdepth\itemincrement
+ \global\advance\itemdepth\plusone
+ \initializeitemgrouplevel\itemdepth
\xdef\currentitemlevel{\number\itemdepth}%
\edef\itemgroupoptions{\getitemparameter\currentitemlevel\c!option}%
\ifx\itemgroupoptions\empty
@@ -818,12 +803,12 @@
\fi
\ifconditional\textlistitem % else forgotten
\endgroup
- \global\advance\itemdepth-\itemincrement
+ \global\advance\itemdepth-\plusone
\xdef\currentitemlevel{\number\itemdepth}%
\egroup
\else
\endgroup
- \global\advance\itemdepth-\itemincrement
+ \global\advance\itemdepth-\plusone
\xdef\currentitemlevel{\number\itemdepth}%
\egroup
\par
@@ -1385,6 +1370,7 @@
%\c!inner=,
\c!n=2,
\c!items=4,
+ \c!levels=10,
\c!lefttext=(,
\c!righttext=),
\c!start=1,