Received: from mail.proteosys.com ([213.139.130.197]) by nummer-3.proteosys with Microsoft SMTPSVC(6.0.3790.3959); Fri, 24 Apr 2009 11:25:54 +0200 Received: by mail.proteosys.com (8.14.3/8.14.3) with ESMTP id n3O9Pstb028387 for ; Fri, 24 Apr 2009 11:25:55 +0200 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 n3O9MoSQ027586 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 24 Apr 2009 11:22:51 +0200 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 n3NM2nSp000954; Fri, 24 Apr 2009 11:22:44 +0200 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 15.5) with spool id 272983 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Fri, 24 Apr 2009 11:22:44 +0200 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 n3O9MiVc019563 for ; Fri, 24 Apr 2009 11:22:44 +0200 Received: from atlas.informatik.uni-freiburg.de (atlas.informatik.uni-freiburg.de [132.230.150.3]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id n3O9MNoG017494 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL) for ; Fri, 24 Apr 2009 11:22:27 +0200 Received: from remote239-55.home.uni-freiburg.de ([132.230.239.55] helo=irwin.vpn.uni-freiburg.de) by atlas.informatik.uni-freiburg.de with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.68) (envelope-from ) id 1LxHbw-0002fX-7G for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Fri, 24 Apr 2009 11:22:23 +0200 Received: by irwin.vpn.uni-freiburg.de (Postfix, from userid 500) id E94671B2DC; Fri, 24 Apr 2009 11:21:20 +0200 (CEST) Mail-Followup-To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE References: <5.1.0.14.0.20090421122917.02f41830@pop3.web.de> <455691F1-21A4-4C65-A025-7855791829F7@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit Message-ID: <20090424092120.GA7843@irwin.vpn.uni-freiburg.de> Date: Fri, 24 Apr 2009 11:21:20 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Heiko Oberdiek Subject: Re: \in@ wrong? To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE In-Reply-To: <455691F1-21A4-4C65-A025-7855791829F7@gmail.com> Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: X-ProteoSys-SPAM-Score: -6.599 () BAYES_00,RCVD_IN_DNSWL_MED X-Scanned-By: MIMEDefang 2.65 on 213.139.130.197 Return-Path: owner-latex-l@LISTSERV.UNI-HEIDELBERG.DE X-OriginalArrivalTime: 24 Apr 2009 09:25:55.0184 (UTC) FILETIME=[AB32E700:01C9C4BE] Status: R X-Status: X-Keywords: X-UID: 5761 On Fri, Apr 24, 2009 at 03:03:08PM +0930, Will Robertson wrote: > On 21/04/2009, at 8:30 PM, Uwe Lück wrote: > > >I wonder whether this is a bug that should go to the LaTeX Bug > >Database, since it only > >-- is about an internal > >-- contradicts what one might expect > >-- while it is not clear to me whether this can affect LaTeX's > >function on the user-level > > This certainly seems like a bug to me, although I had to modify your > examples to see the error: > > \documentclass{article} > \begin{document} > \makeatletter > \in@{bonbon}{bon}\ifin@ YES\else NO\fi % gives YES > \in@{bonbon}{bonb}\ifin@ YES\else NO\fi % gives NO > \in@{client-to-client}{client-to}\ifin@ YES\else NO\fi % gives NO > \in@{client-to-client}{client-to-}\ifin@ YES\else NO\fi % gives YES > \makeatother > \end{document} > > The tendency seems to be not to change the internals of LaTeX2e, but > I'd be happy to replace the current implementation of \in@ with a more > correct version. What do others think? I don't see any sense in preserving such a silly bug. > If others are amenable to the > change, would you be willing to write the new version? \catcode`\@=11 % \def\@empty{}% (for testing with plain-TeX) %%% begin of fixed definition %%% \def\in@#1#2{% \def\in@@##1#1##2\in@@{% \def\in@@{##2}% \ifx\in@@\@empty \in@false \else \in@true \fi }% \in@@#2\@nil#1\in@@ } %%% end of fixed definition %%% \newif\ifin@ \def\test#1#2#3{% \in@{#1}{#2}% \edef\@result{% \ifin@ yes\else no\fi }% \def\@expected{#3}% \immediate\write16{% [\string\in@{#1}{#2} = \@result\space] => % \ifx\@result\@expected OK.\else FAILED!\fi }% } \test{bonbon}{bon}{no} \test{bon}{bonbon}{yes} \test{bona}{bon}{no} \test{bon}{bona}{yes} \test{ionization}{ionizat}{no} \test{client-to-client}{client-to-}{no} \csname @@end\endcsname\end Yours sincerely Heiko