At 16:14 20/05/2003 +0200, you wrote:
\def\dodefineCBpalet[#1][#2]% { \def\sep{} \ifsecondargument \getparameters[CB][\c!n=,#2] \else \def\CBn{3} \fi
^^^ this can be simplified (see code below)
\def\colorlist{% \dorecurse{\CBn}{ \sep #1:\recurselevel=#1:\recurselevel:\CBn \def\sep{,}}} \definepalet[#1][\colorlist]}
this way some loop is executed as argument, and that will fail (not fully expandable and so)
\defineCBpalet[Accent][n=5]
% I want this to expand into (without the indentation): % \definepalet[Accent] % [Accent:1=Accent:1:5, % Accent:2=Accent:2:5, % Accent:3=Accent:3:5, % Accent:4=Accent:4:5, % Accent:5=Accent:5:5]
\starttext
\comparepalet[Accent]
\stoptext
The solution to this is to construct the comma list: \def\defineCBpalet{\dodoubleempty\dodefineCBpalet} \def\dodefineCBpalet[#1][#2]% {\getparameters[CB][\c!n=3,#2] \let\CBcolorlist\empty \dorecurse\CBn {\addtocommalist {#1:\recurselevel=#1:\recurselevel:\CBn} % is always expanded \CBcolorlist} \expanded{\definepalet[#1][\CBcolorlist]}} \defineCBpalet[Accent][n=5] ------------------------------------------------------------------------- Hans Hagen | PRAGMA ADE | pragma@wxs.nl Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: +31 (0)38 477 53 69 | fax: +31 (0)38 477 53 74 | www.pragma-ade.com ------------------------------------------------------------------------- information: http://www.pragma-ade.com/roadmap.pdf documentation: http://www.pragma-ade.com/showcase.pdf -------------------------------------------------------------------------