Received: from mx0.gmx.net (mx0.gmx.net [213.165.64.100]) by h1439878.stratoserver.net (8.14.2/8.14.2/Debian-2build1) with SMTP id o1GE68J6016248 for ; Tue, 16 Feb 2010 15:06:10 +0100 Received: (qmail 16696 invoked by alias); 16 Feb 2010 14:06:03 -0000 Delivered-To: GMX delivery to rainer.schoepf@gmx.net Received: (qmail invoked by alias); 16 Feb 2010 14:06:03 -0000 Received: from relay2.uni-heidelberg.de (EHLO relay2.uni-heidelberg.de) [129.206.210.211] by mx0.gmx.net (mx096) with SMTP; 16 Feb 2010 15:06:03 +0100 Received: from listserv.uni-heidelberg.de (listserv.uni-heidelberg.de [129.206.100.94]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id o1GE4KcW001604 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 16 Feb 2010 15:04:20 +0100 Received: from listserv.uni-heidelberg.de (localhost.localdomain [127.0.0.1]) by listserv.uni-heidelberg.de (8.13.1/8.13.1) with ESMTP id o1FN14Qj013003; Tue, 16 Feb 2010 15:04:19 +0100 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 16.0) with spool id 383851 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Tue, 16 Feb 2010 15:04:19 +0100 Received: from relay.uni-heidelberg.de (relay.uni-heidelberg.de [129.206.100.212]) by listserv.uni-heidelberg.de (8.13.1/8.13.1) with ESMTP id o1GE4Jo9027188 for ; Tue, 16 Feb 2010 15:04:19 +0100 Received: from shiva.jussieu.fr (shiva.jussieu.fr [134.157.0.129]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id o1GE49MT010777 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Tue, 16 Feb 2010 15:04:13 +0100 Received: from math.jussieu.fr (mail.math.jussieu.fr [134.157.13.55]) by shiva.jussieu.fr (8.14.3/jtpda-5.4) with ESMTP id o1GE48B3062680 for ; Tue, 16 Feb 2010 15:04:09 +0100 (CET) X-Ids: 166 Received: from [192.168.0.124] (thue.elzevir.fr [88.165.216.11]) (authenticated bits=0) by math.jussieu.fr (8.14.1/8.14.1) with ESMTP id o1GE47pu050358 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Tue, 16 Feb 2010 15:04:07 +0100 (CET) User-Agent: Mozilla-Thunderbird 2.0.0.22 (X11/20090707) MIME-Version: 1.0 References: <4B727378.8060704@morningstar2.co.uk> <20100210100943.GA3759@oberdiek.my-fqdn.de> <4B7298D6.7080206@morningstar2.co.uk> <20100210145258.GA18188@oberdiek.my-fqdn.de> <4B72D339.5080104@morningstar2.co.uk> X-Enigmail-Version: 0.95.0 OpenPGP: id=50A89B42; url=http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xB201857250A89B42 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Virus-Scanned: ClamAV 0.94.2/10395/Tue Feb 16 05:20:36 2010 on shiva.jussieu.fr X-Virus-Status: Clean X-Miltered: at jchkmail2.jussieu.fr with ID 4B7AA5D8.009 by Joe's j-chkmail (http : // j-chkmail dot ensmp dot fr)! X-j-chkmail-Enveloppe: 4B7AA5D8.009/134.157.13.55/mail.math.jussieu.fr/math.jussieu.fr/ Message-ID: <4B7AA5D7.8010104@elzevir.fr> Date: Tue, 16 Feb 2010 15:04:07 +0100 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: =?ISO-8859-1?Q?Manuel_P=E9gouri=E9-Gonnard?= Subject: Re: String module To: LATEX-L@listserv.uni-heidelberg.de In-Reply-To: <4B72D339.5080104@morningstar2.co.uk> Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: X-GMX-Antispam: 0 (Mail was not recognized as spam); Detail=5D7Q89H36p77e5KAPs1l6v/Sb97LojnDtMgfETrECMLUO9erHzOJe6KyumPEzQo/v49H/ 6WH16A3hVxdb50dQBMe/GhyW+KflE2xKxwMOEKvHDWk7UqJoh2LvyLXsywjCkfM1ILLlYNfmOEMt /DqUA==V1; X-Resent-By: Forwarder X-Resent-For: rainer.schoepf@gmx.net X-Resent-To: rainer@rainer-schoepf.de X-Scanned-By: MIMEDefang 2.63 on 85.214.41.38 Status: R X-Status: X-Keywords: X-UID: 6283 Joseph Wright a écrit : > On 10/02/2010 14:52, Heiko Oberdiek wrote: >> If an expandable version is not an issue, then \pdfstrcmp >> can be implemented in virgin TeX. If the input of \pdfstrcmp >> consists of `other' and perhaps `space' tokens, then >> even an expandable version can be simulated. The main problem >> is AFAIK the conversion of a general token list to the string >> representation in an expandable way (that means without >> having \edef). > > What happens at present is more or less that: \tl_if_eq:nn(TF) uses > \pdfstrcmp if available and a non-expandable version otherwise. By the way, I find is rather weird, that \tl_if_eq doesn't really compare token lists, but only their conversions as TeX strings. IMO it would be clearer to have a \str_if_eq::nn(TF) function in the string module, and then conversion functions from the tl to the str data type. Such conversion function could also be the place to implement "string input methods" if they are needed. Eg, the most basic conversion function would be something like \edef + \detokenize, but one could imagine a conversion function that locally redefines \% as expanding into a catcode 12 %, etc. before performing the \edef, so that a user can easily input arbitrary strings. (While talking about encoding, there was thread in fctt recently about how to percent-encode url components. It could be one useful encoding function in the library, in addition to those already mentioned by Heiko.) Manuel.