From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 14459 invoked from network); 4 Jan 2006 17:48:37 -0000 X-Spam-Checker-Version: SpamAssassin 3.1.0 (2005-09-13) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00, FORGED_RCVD_HELO autolearn=ham version=3.1.0 Received: from news.dotsrc.org (HELO a.mx.sunsite.dk) (130.225.247.88) by ns1.primenet.com.au with SMTP; 4 Jan 2006 17:48:37 -0000 Received: (qmail 66631 invoked from network); 4 Jan 2006 17:48:31 -0000 Received: from sunsite.dk (130.225.247.90) by a.mx.sunsite.dk with SMTP; 4 Jan 2006 17:48:31 -0000 Received: (qmail 21912 invoked by alias); 4 Jan 2006 17:48:29 -0000 Mailing-List: contact zsh-workers-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 22118 Received: (qmail 21903 invoked from network); 4 Jan 2006 17:48:28 -0000 Received: from news.dotsrc.org (HELO a.mx.sunsite.dk) (130.225.247.88) by sunsite.dk with SMTP; 4 Jan 2006 17:48:28 -0000 Received: (qmail 66426 invoked from network); 4 Jan 2006 17:48:27 -0000 Received: from cluster-d.mailcontrol.com (HELO rly21d.srv.mailcontrol.com) (217.69.20.190) by a.mx.sunsite.dk with SMTP; 4 Jan 2006 17:48:25 -0000 Received: from exchange03.csr.com (uuk202166.uk.customer.alter.net [62.189.241.194] (may be forged)) by rly21d.srv.mailcontrol.com (MailControl) with ESMTP id k04Hm7OB003853 for ; Wed, 4 Jan 2006 17:48:20 GMT Received: from news01 ([10.103.143.38]) by exchange03.csr.com with Microsoft SMTPSVC(5.0.2195.6713); Wed, 4 Jan 2006 17:48:08 +0000 Date: Wed, 4 Jan 2006 17:48:06 +0000 From: Peter Stephenson To: zsh-workers@sunsite.dk Subject: Re: BUG: cd '' doesn't produce an error Message-Id: <20060104174806.52744136.pws@csr.com> In-Reply-To: References: <87zmmvxl3g.fsf@haugen.visit.se> <20051221102159.44d9f5ca.pws@csr.com> <877j9mycf9.fsf@haugen.visit.se> Organization: Cambridge Silicon Radio X-Mailer: Sylpheed version 0.9.12 (GTK+ 1.2.10; i386-redhat-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 04 Jan 2006 17:48:08.0116 (UTC) FILETIME=[05A4EF40:01C61157] X-Scanned-By: MailControl A-05-40-01 (www.mailcontrol.com) on 10.68.0.131 Peter Stephenson wrote: > Otherwise [if the argument is not -], if a directory named arg > is not found in the current directory and arg does not begin > with a slash, search each component of the shell parameter > cdpath. > > This isn't actually quite right, since if . is in $cdpath but not at > the start it doesn't search . straight away. So at least the > description needs improving (this isn't special to a null string). Here's a first attempt... Index: Doc/Zsh/builtins.yo =================================================================== RCS file: /cvsroot/zsh/zsh/Doc/Zsh/builtins.yo,v retrieving revision 1.81 diff -u -r1.81 builtins.yo --- Doc/Zsh/builtins.yo 7 Nov 2005 09:37:34 -0000 1.81 +++ Doc/Zsh/builtins.yo 4 Jan 2006 17:47:23 -0000 @@ -160,12 +160,22 @@ current directory to var(arg), or to the value of tt($HOME) if var(arg) is not specified. If var(arg) is `tt(-)', change to the value of tt($OLDPWD), the previous directory. -Otherwise, if a directory named var(arg) is not found in the current -directory and var(arg) does not begin with a slash, search each -component of the shell parameter tt(cdpath). If no directory is found -and the option tt(CDABLE_VARS) is set, and a parameter named var(arg) -exists whose value begins with a slash, treat its value as the -directory. In that case, the parameter is added to the named + +Otherwise, if var(arg) begins with a slash, attempt to change to the +director given by var(arg). + +If var(arg) does not begin with a slash, the behaviour depends on whether +the current directory `tt(.)' occurs in the list of directories contained +in the shell parameter tt(cdpath). If it does not, first attempt to change +to the directory var(arg) under the current directory, and if that fails +but tt(cdpath) is set and contains at least one element attempt to change +to the directory var(arg) under each component of tt(cdpath) in turn until +successful. If `tt(.)' occurs in tt(cdpath), then tt(cdpath) is searched +strictly in order so that `tt(.)' is only tried at the appropriate point. + +If no directory is found, the option tt(CDABLE_VARS) is set, and a +parameter named var(arg) exists whose value begins with a slash, treat its +value as the directory. In that case, the parameter is added to the named directory hash table. The second form of tt(cd) substitutes the string var(new) -- Peter Stephenson Software Engineer CSR PLC, Churchill House, Cambridge Business Park, Cowley Road Cambridge, CB4 0WZ, UK Tel: +44 (0)1223 692070 Your mail client is unable to display the latest news from CSR. To access our news copy this link into a web browser: http://www.csr.com/email_sig.html