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 p1LC9vMW021611 for ; Mon, 21 Feb 2011 13:09:58 +0100 Received: (qmail 31162 invoked by alias); 21 Feb 2011 12:09:52 -0000 Delivered-To: GMX delivery to rainer.schoepf@gmx.net Received: (qmail invoked by alias); 21 Feb 2011 12:09:52 -0000 Received: from relay2.uni-heidelberg.de (EHLO relay2.uni-heidelberg.de) [129.206.210.211] by mx0.gmx.net (mx053) with SMTP; 21 Feb 2011 13:09:52 +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 p1LC7hSd028004 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 21 Feb 2011 13:07:44 +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 p1LBTfRh022481; Mon, 21 Feb 2011 13:07:42 +0100 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 16.0) with spool id 1222711 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Mon, 21 Feb 2011 13:07:42 +0100 Received: from relay2.uni-heidelberg.de (relay2.uni-heidelberg.de [129.206.210.211]) by listserv.uni-heidelberg.de (8.13.1/8.13.1) with ESMTP id p1LC7gZn015706 for ; Mon, 21 Feb 2011 13:07:42 +0100 Received: from mail-gy0-f177.google.com (mail-gy0-f177.google.com [209.85.160.177]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id p1LC7aG9027925 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=FAIL) for ; Mon, 21 Feb 2011 13:07:41 +0100 Received: by gyh3 with SMTP id 3so148235gyh.22 for ; Mon, 21 Feb 2011 04:07:36 -0800 (PST) MIME-Version: 1.0 Received: by 10.150.181.3 with SMTP id d3mr1622774ybf.90.1298290056233; Mon, 21 Feb 2011 04:07:36 -0800 (PST) Received: by 10.146.86.8 with HTTP; Mon, 21 Feb 2011 04:07:36 -0800 (PST) References: <4D6250F1.2020806@morningstar2.co.uk> Content-Type: text/plain; charset=ISO-8859-1 X-Spam-Whitelist: Message-ID: Date: Mon, 21 Feb 2011 07:07:36 -0500 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Bruno Le Floch Subject: Re: Fully expandable "x" argument (was "expandable \uppercase...") To: LATEX-L@listserv.uni-heidelberg.de In-Reply-To: <4D6250F1.2020806@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/Sb97LojnDtMgfETrECMLUO9erHzOJe+OynZRhvlGqb5A0X bbiCt2rAnnct/NAlbHMvoAL6GY+23tB3khNK7aqcuJkHrktl7heUBBMuxWDU8MR6sgnaA+ruWxex YrTyw==V1; X-Resent-By: Forwarder X-Resent-For: rainer.schoepf@gmx.net X-Resent-To: rainer@rainer-schoepf.de Status: R X-Status: X-Keywords: X-UID: 6615 > I suspect condition (2) is killer. While assuming "{" is catcode 1 is > fine for LaTeX-like input, what happens if you're using LaTeX3 with some > other input syntax (for example XML)? Ok, the code can be changed so that the condition becomes (2') There is only one character with catcode 1, and it is known when the package is loaded. Would it be enough? It could even be relaxed very slightly. But something that definitely cannot be coped with entirely robustly is having two catcode 1 characters at the same time (except if there is no catcode 2 character ^^): the following unbraces its argument. \catcode`\(=1\relax \catcode`\)=2\relax \def\UntilBrace#1#{\def\a{#1}\show\a} \UntilBrace((abc)){} \UntilBrace(abc){} \UntilBrace abc{} -- Bruno