From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/31352 Path: news.gmane.org!not-for-mail From: "Fredrik Sjunnesson" Newsgroups: gmane.comp.tex.context Subject: Re: Append to a commalist Date: Thu, 12 Oct 2006 23:15:20 +0200 Message-ID: Reply-To: mailing list for ConTeXt users NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-Trace: sea.gmane.org 1160690761 23745 80.91.229.2 (12 Oct 2006 22:06:01 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Thu, 12 Oct 2006 22:06:01 +0000 (UTC) Original-X-From: ntg-context-bounces@ntg.nl Fri Oct 13 00:05:50 2006 Return-path: Envelope-to: gctc-ntg-context-518@m.gmane.org Original-Received: from ronja.vet.uu.nl ([131.211.172.88] helo=ronja.ntg.nl) by ciao.gmane.org with esmtp (Exim 4.43) id 1GY7uH-0008Dx-7f for gctc-ntg-context-518@m.gmane.org; Thu, 12 Oct 2006 23:15:58 +0200 Original-Received: from localhost (localhost [127.0.0.1]) by ronja.ntg.nl (Postfix) with ESMTP id 433D31FE21; Thu, 12 Oct 2006 23:15:56 +0200 (CEST) Original-Received: from ronja.ntg.nl ([127.0.0.1]) by localhost (smtp.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 22713-08-8; Thu, 12 Oct 2006 23:15:46 +0200 (CEST) Original-Received: from ronja.vet.uu.nl (localhost [127.0.0.1]) by ronja.ntg.nl (Postfix) with ESMTP id C80D31FE1A; Thu, 12 Oct 2006 23:15:45 +0200 (CEST) Original-Received: from localhost (localhost [127.0.0.1]) by ronja.ntg.nl (Postfix) with ESMTP id AE0F61FE1A for ; Thu, 12 Oct 2006 23:15:37 +0200 (CEST) Original-Received: from ronja.ntg.nl ([127.0.0.1]) by localhost (smtp.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 22713-08-7 for ; Thu, 12 Oct 2006 23:15:22 +0200 (CEST) Original-Received: from ms1.acobiaflux.ad (unknown [212.247.52.99]) by ronja.ntg.nl (Postfix) with SMTP id 1A8DC1FE16 for ; Thu, 12 Oct 2006 23:15:21 +0200 (CEST) Content-class: urn:content-classes:message X-MimeOLE: Produced By Microsoft Exchange V6.5 X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [NTG-context] Append to a commalist Thread-Index: AcbuBbrW0k2JQh+4TQCFf3aqtSjp7gANO8MA Original-To: "mailing list for ConTeXt users" X-Virus-Scanned: amavisd-new at ntg.nl X-BeenThere: ntg-context@ntg.nl X-Mailman-Version: 2.1.7 Precedence: list List-Id: mailing list for ConTeXt users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: ntg-context-bounces@ntg.nl Errors-To: ntg-context-bounces@ntg.nl X-Virus-Scanned: amavisd-new at ntg.nl Xref: news.gmane.org gmane.comp.tex.context:31352 Archived-At: Great! Thank you very much Hans. It would have taken me a lifetime to get there :) /Fredrik -----Ursprungligt meddelande----- Fr=E5n: ntg-context-bounces@ntg.nl [mailto:ntg-context-bounces@ntg.nl] F=F6= r Hans Hagen Skickat: den 12 oktober 2006 15:49 Till: mailing list for ConTeXt users =C4mne: Re: [NTG-context] Append to a commalist Fredrik Sjunnesson wrote: > Hello, > > Is there a smart way to create a commalist? > > I want to get the equivalent of > > \setparameter[namespace][listname=3D{item1,item2,item3}] > > but be able to append one item at the time, like > > \append{namepace}{listname}{item1} > \append{namepace}{listname}{item2} > \append{namepace}{listname}{item3} > > I have tired this: > > \def\append#1#2#3{ > \fullexpandoneargafter\doifemptyelse{\getvariable{#1}{#2}} > {\edef\tmp{#3}} > {\edef\tmp{\getvariable{#1}{#2},#3}} > \setvariables[#1][#2=3D{\tmp}]} > > but it only works for one list. Apparently \tmp is not expanded so when > an item is appended to one list all other lists are affected. I have > tried \expanded but got the message stack full. > > Any help would be greatly appreciated. > > = \def\appendtovaluelist#1#2% {\ifcsname#1\endcsname \expandafter\ifx\csname#1\endcsname\empty \expandafter\def\csname#1\endcsname{#2}% \else \expandafter\def\csname#1\expandafter \expandafter\expandafter\endcsname \expandafter\expandafter\expandafter{\csname#1\endcsname,#2}% \fi \else \expandafter\def\csname#1\endcsname{#2}% \fi} = % saves an argument: \def\appendtovaluelist#1% {\ifcsname#1\endcsname \expandafter\ifx\csname#1\endcsname\empty \expandafter\noappendtovaluelist \csname#1\expandafter\expandafter\expandafter\endcsname \else \expandafter\doappendtovaluelist \csname#1\expandafter\expandafter\expandafter\endcsname \fi \else \expandafter\noappendtovaluelist\csname#1\expandafter\endcsname \fi} \def\doappendtovaluelist#1#2{\expandafter\def\expandafter#1\expandafter{#1,= #2}} \def\noappendtovaluelist#1#2{\def#1{#2}} \appendtovaluelist{mylist}{aap} \appendtovaluelist{mylist}{noot} \appendtovaluelist{mylist}{mies} \showvalue{mylist} ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com | www.pragma-pod.nl ----------------------------------------------------------------- _______________________________________________ ntg-context mailing list ntg-context@ntg.nl http://www.ntg.nl/mailman/listinfo/ntg-context