Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.15.18]) by h2774747.stratoserver.net (8.15.2/8.15.2/Debian-3) with ESMTP id x31Ar08F010165 for ; Mon, 1 Apr 2019 12:53:01 +0200 Received: from relay2.uni-heidelberg.de ([129.206.119.212]) by mx-ha.gmx.net (mxgmx017 [212.227.15.9]) with ESMTP (Nemesis) id 1MZUmK-1hPflZ01d0-00WX2E for ; Mon, 01 Apr 2019 12:52:55 +0200 IronPort-SDR: 5hZly9Bu/ErgIAz4flsN2m0w/Jl260zO7ZUwJxYynZRnE+xrYu5TCj0GpzLPMMjaafYvFNL3t2 gIi8sEn8zIkA5kMgy7CDF98/zsx5vGXIxeil6NEgCCOxf8YNhhfEonjUIae4Xc4gbnUC3Unxc9 Er1uhe6QdNR5h9rB8rOLmpZOD2qOz2ZL1LWLwWgg+T67AqYzqxEchavpiIyH6aMXaNV7pGwPaN C9GmIcjOcfVzUoNzljUYni++E20urssd4H/VKXjWfXR8SeIt7M47o/5tCrg1FwANANl8EqGe6G G3Q= Received: from listserv.uni-heidelberg.de ([129.206.100.94]) by relay2.uni-heidelberg.de with ESMTP; 01 Apr 2019 12:52:55 +0200 Received: from listserv (localhost [127.0.0.1]) by listserv.uni-heidelberg.de (Postfix) with ESMTP id 2245A1276D9; Mon, 1 Apr 2019 12:52:46 +0200 (CEST) Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 16.0) with spool id 34681732 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Mon, 1 Apr 2019 12:52:46 +0200 Delivered-To: LATEX-L@listserv.uni-heidelberg.de Received: from relay.uni-heidelberg.de (relay.uni-heidelberg.de [129.206.100.212]) by listserv.uni-heidelberg.de (Postfix) with ESMTP id 050FD1276D9 for ; Mon, 1 Apr 2019 12:52:46 +0200 (CEST) X-Ironport-Dmarc-Check-Result: validskip IronPort-SDR: 1Rj3/qtNrWT7J/AuY+M0JK1hw98JwJYv0PG13/Ssf1Guz0s9UR6WzglXu7MfeoBpQgeITkqnN9 EwRhUA50CfOJgw+/NfZktmu+wTRWe/GFISM5yM7DmMvJRDTSAcIdvCSZdXlJkovLK1FdYg4WiY mYs3B4gtBSLJt3JS7Wg6buTlKGwKx/fRFYUApza79xzq38KzgR4bw4V/FP+wqnIan0tffbZK0Y NPH9rVaesM/hAPYk1gmlv25ZjxHEc+bf4Q8dzG3poKijW/FJVptEXkyNC0NpRY4/54dwaeZn1k wYDu+78iBdjFReBBTFAIw/F/ X-IronPort-MID: 17493662 X-IronPort-RemoteIP: 144.76.43.62 X-IronPort-SenderGroup: SUSPECTLIST X-IronPort-MailFlowPolicy: $THROTTLED X-IronPort-Reputation: None IronPort-PHdr: =?us-ascii?q?9a23=3ASQ5c6hRx/foiEFvfU9CXWz4bUdpsv++ubCcI9p?= =?us-ascii?q?oqja5Pea2//pPkeXbS/uhpkESTBN+J8f9AgvuQrqbhHGwN4JqMtHoPapMKWx?= =?us-ascii?q?JWwckVngl1BsmDBAW7KfPxdCU1EYxEU0Mt5HC0N0VZWY7+alTer2f07GsUHR?= =?us-ascii?q?PyZkJuPuqgPInUgoys0vyqvYXJalBCiTy/aLZzKj2trB3Ksc0LnYplLL13zB?= =?us-ascii?q?bV8TNTY+oD42RuKBqImgrkoMK5/Zpt6SNV7vgs8cxJVKT8V785VadfCCk6Mm?= =?us-ascii?q?cz/4vtuAWQBRCX6C46VWMb2gFNHxCD7Bz+WcLptTDms+NmxCSAFdb3VaszXS?= =?us-ascii?q?m+7qBtU1nuhTtebWwD/Wrai9J9gOdgmDz6/kwt5YnSbcnVLvd6d7KbYNUbAG?= =?us-ascii?q?pMX8pcUyZMGIz6Y4ZdR+wGdf1VqYXwvT5s5VO3GBWsCeXzyzRJmm6+3Ks01P?= =?us-ascii?q?4kGB3H2wpoFswHsXDdptH4fKkIVuX9wK7NxDTFJ/RYvFW1oILFdBIopPCKda?= =?us-ascii?q?lxadHWzVQzFgTDlROWpJCkdzKZ2+IRsnSKuvJ6XLHK6SZvoAVwrz6zg8Y039?= =?us-ascii?q?CV2sRKlBaYrmMnmtV9P9CzRU9lbMTxCpZUvjDcKo13B8MvQm1lvCw30LJAtZ?= =?us-ascii?q?PoGUpCgJkh2RPbbOSKNoaS5Re2HuycJzVxgXNjUKm+nw219VW8y+r6TY+y3U?= =?us-ascii?q?oA/U8n2pHc82sA0RDe8J3NQPZ7/E6k2DCnzAHL8eZAPFw1kqzAbZgs3vRj8/?= =?us-ascii?q?hb+VSGFSjwlkLsiaaQfUhx4emk5dPsZbD+r4OdPYt501usCKkll82hDOh9CT?= =?us-ascii?q?AgBDLAq8K70rCrvVf0RLxbyOAwk+zZvZHWKMARq7S2RQNYgM4l7F6kAjGq3c?= =?us-ascii?q?59/zFPJU9ZeB+Bk4niOk3faPH+A/Clhl2wkTBtj/nYN7zlC5/JIzDNirDkNb?= =?us-ascii?q?p67kddzkI0w7U9r9peB7cDKffyXGfqtcTDCRskLw2zxf2hDthhl8sfVW+JHq?= =?us-ascii?q?6FIfbXuF6M6PgoJrrpBsddszL8Jv45ov/22CZlxRlCI+/1ht1JMiPwBPltLk?= =?us-ascii?q?SHbGC5mNoFGHZMoww/CezniVGPVTRefXn0U69vg1NzQI+gE4rHQZigxbKb2y?= =?us-ascii?q?LuVJdbYGJPD1GKOWzpb56DX+oQaSWUOYlnnyBOBt3DA8cxkAqjsgP30e8tJO?= =?us-ascii?q?fS+CQdtJTLz9lt/OrXiA0z8jpvScKQzyveKgM81nNNTDgw0qdlpEV7wVrWyq?= =?us-ascii?q?l0jctTEtlL7u9IWAM3bMSO9eFxBtHsVw6ERe+nEwz9EPOhBzx5Dsg8x9YfJV?= =?us-ascii?q?t7GpCigxHP0i6gDqUa0bCGVtQy9erH0n79KtwYqT6O3bQ9j1QgXspENHG3zq?= =?us-ascii?q?95+Q/JAofVkkKf36+0fKUY1STJ+S+N122L9E1fVQdxV+3CUxV9LgPOqs/l40?= =?us-ascii?q?rZU7K0Ia8mKhBGzdOeK6xMcZvvgEkHDPbvNdLCYn6gzme9ARHbo9HEJIHuem?= =?us-ascii?q?gbwGDcEB1dz1xVoijAaVN4WH3y63jTBzFvC1/1Nlnh9eBv7m69Two0wgCGYk?= =?us-ascii?q?lr2qC6vBIY1pn+A7se2KwJvCA5pnB6BlG4ipjcBtyCrg9geo1HYMsm51NayW?= =?us-ascii?q?PesRc7OJG8ZfMH5BZWY0FsskXi2g8iQJ1HitQvpWg2wRBaMqOAy1RFai+Z2p?= =?us-ascii?q?brfLvaNiOhmXLnI76T0VbY3tGM/64J4/ltsFTvsjaiEU86+mlm2d1YiirO1t?= =?us-ascii?q?DxFAMXFKnJfAMy/hl+qavdZ3BttZjVzWZrNbSoszjEwJQvCfd3kk/8LecaC7?= =?us-ascii?q?uNEUrJK+NfH9Kncbx4gFmxdRUAIfxT86gvecWra6negfP5DKNbhDujyF9/zs?= =?us-ascii?q?V930aLrnouUe/QxJEB3u2Z2Q2cETHxkAX5vw=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0DXBADP7KFc/z4rTJBjHQEBBQEHBQG?= =?us-ascii?q?BZYIOgV8ECyeEDmKIGYxYmjgCCQUrAYRAAoVdBgY0EgEBAwEBCQEDAQFtKIV?= =?us-ascii?q?LAQUjVhALDgoqAgJXBhODI4F1qUWBL4VHhE8PgS+BSooAgX+DdS4+h06CVwO?= =?us-ascii?q?KR4dJkzoJglCRKmqKTwGIcohDlnKBZCGBVjMaCCYKgyeCFheOIEAwgQMBj1c?= =?us-ascii?q?BAQ?= X-IronPort-AV: E=Sophos;i="5.60,296,1549926000"; d="asc'?scan'208";a="17493662" X-MGA-submission: =?us-ascii?q?MDEdT5vjK6GovaGilJO4paU+tiPSqILnb8xdwb?= =?us-ascii?q?BHHnWpZ+JDR2uEwnOBuHq5FH4Soq7LEAXOhzhwmCnfBUveYboeRgaREv?= =?us-ascii?q?bTGsxiSGAljRaUQRMdZmlA5iXYu2ekuqrpjlaadD32VrdhJHGxXR852N?= =?us-ascii?q?5QBQp729Igt4VjpsyL6wG9sg=3D=3D?= Received: from s3.sipsolutions.net (HELO sipsolutions.net) ([144.76.43.62]) by relay.uni-heidelberg.de with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Apr 2019 12:52:45 +0200 Received: by sipsolutions.net with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92-RC5) (envelope-from ) id 1hAuYS-0001JX-FB; Mon, 01 Apr 2019 12:52:40 +0200 References: <856ff273317abf46dda9ce8c6fb0d6bd8d22472b.camel@sipsolutions.net> <85c344a1672db33f48cda03ab5438ddedf4664ad.camel@sipsolutions.net> <8736n2894o.fsf@fencepost.gnu.org> Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="=-vNgRMfgbUgnKOzyY0im5" User-Agent: Evolution 3.30.5 (3.30.5-1.fc29) MIME-Version: 1.0 Message-ID: <7d3bbc2fc1d5f54510c7ffebd8d5260ff396d920.camel@sipsolutions.net> Date: Mon, 1 Apr 2019 12:52:35 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Benjamin Berg Subject: Re: Rescanning first token of environment when no optional argument is given To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE In-Reply-To: <8736n2894o.fsf@fencepost.gnu.org> Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: Envelope-To: X-GMX-Antispam: 0 (Mail was not recognized as spam); Detail=V3; X-Spam-Flag: NO X-UI-Filterresults: notjunk:1;V03:K0:Nsl47B8UoWI=:kA6j3YCisGdXBwhZgKdxoHvt6s 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 MdpbWcrwD9eghymkd51CRqUJUWUTt8jFW X-UI-Loop:V01:YfOgzSVXpgc=:sYeUCFE0MJEKLf4zNdCPzzLG/UfUimNYLBDI2lw/NVg= X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:0gt9Lgg89l4=:+4G/IL1antidrFhYGJi3G8 JDQyvRAAyNVXVZvTrBsK0V3Wr5lEccdqctTa9Dr0+eSuLAX9bzXXzdVrAzYSLIXa/dpYGIIaK 35VasMYMnlZ9PDlcoCKEi0k4l1aP2Y0AImSC4z3hFddgo4WSTG1v+zCnE4zwdA8dWcydIUTBJ E8R8npWcQ2IW1gK+Va9W0q8bdEcGudzpt7gpSZ9G+N1a2eMWiHQN7AHt3BC3KdqHuCSnuT4aM zB9vTDsBR6zG7KE7nrFdtCGwK6SLNOHlM9Gz+JcoKKq15Lv/Yfvhi/0r/WyAjXKrozTB1tCJs hv/NCTJlkgsXJJrNsT4ImZYEd19k1tEx8VinTB32qnKsReuc71hpVmHSWT0WAdZHiNUPzlQXH ts3SOS9LsOMgEp/NtNmySnqDNY5gkGs9vhon5HDTjr0OP6f60DbB5AfXToN46 X-Scanned-By: MIMEDefang 2.78 on 81.169.212.23 Status: R X-Status: X-Keywords: X-UID: 8173 --=-vNgRMfgbUgnKOzyY0im5 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, 2019-04-01 at 09:41 +0200, David Kastrup wrote: > Benjamin Berg writes: >=20 > > Hi, > >=20 > > On Sun, 2019-03-31 at 18:57 -0300, Phelype Oleinik wrote: > > > If you can't switch the catcode of & before looking for the > > > optional argument, as David suggests > >=20 > > David has a good point, I could handle the optional argument parsing > > myself and ensure that the case works correctly. It may not be trivial, > > but it should be reasonably easy. >=20 > It should be trivial. You just use the provided mechanism exactly as > you did before (though naming it differently) and call it last thing in > your argumentless wrapper environment after setting up catcodes. That > way the argument scanning only commences once catcodes are settled. Well, I do have an optional parameter that disables the catcode changes (which I know realize might have been a bad idea). That said, it would still be rather safe to make the change, parse the optional parameter and undo the change again afterwards when desired. Or maybe I should just bite the bullet and create two almost identical environments for this. Benjamin --=-vNgRMfgbUgnKOzyY0im5 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEED2NO4vMS33W8E4AFq6ZWhpmFY3AFAlyh7XMACgkQq6ZWhpmF Y3BgLw//VZpvKZhG7O5t1GEQa+G9ey7e+1uu9q/JQSf9+GH0boNwykpEL1jtmBIM PuT1NKXzHBxccDC4hD3otnvjoGyjKnJFqngQTzKERRhlKvQ+RY72JslqUGbjraT6 +9DeiBrOnlFgU0TWHUzLoImzjF49NkMgCbu6/7bpeH51FJA37AnYqq3KnMs7ypLW IJ/YEisdVgvGQxzBqMMRMQ7y9B9MfByhKTFdLgtcJn4mmvZGKZTNzJtax8jD8GeK 6+3hsq4082mF7nY5s4/pn1OF3KyV0kT3EJ8idKIYZxchRgMi7vm0hBNmnMWrFpnP 2cYdCH240/UyW+R0Omrxkpr4mbSSDdy9Dz+EpYKbmUQ450D/fQa0hEvBz6Unbs+t WAiAvZWj6Wv/9IKyNi6ErXOn7yUoW5gaYwSTmnzXIAEQ5ELtOoNCoWPze/AGdCzX 8JxYirh/S+dTpRnjhfAsghNj8fnEp6djev/WLvuuxAbdASkvrUEKOvz4u8ePGcXW q4UTaBVDM3iJVQy/ww3bNX/WRe2PAbdqRyMfRKgU9ID+1CYM4laIOSj0zLarMsqd i4CMK5qa3YIBHBrJJegvmgEernE98uf2X/cNCABQHuLfOUr6t9q2qszF17Z2wcqB qieIPpypHZW1pwNwiO5vriKqWesW4PS5YxIC4h88tu0xV4luP/Q= =ldrW -----END PGP SIGNATURE----- --=-vNgRMfgbUgnKOzyY0im5--