zsh-workers
 help / color / mirror / code / Atom feed
From: Peter Stephenson <pws@csr.com>
To: zsh-workers@sunsite.dk
Subject: Re: BUG: cd '' doesn't produce an error
Date: Wed, 4 Jan 2006 17:48:06 +0000	[thread overview]
Message-ID: <20060104174806.52744136.pws@csr.com> (raw)
In-Reply-To: <EXCHANGE03jSFUMCGlb00000a49@exchange03.csr.com>

Peter Stephenson <pws@csr.com> 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 <pws@csr.com>                  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


  parent reply	other threads:[~2006-01-04 17:48 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-12-21  2:03 Ulrik Haugen
2005-12-21 10:21 ` Peter Stephenson
2005-12-30 12:52   ` Ulrik Haugen
2005-12-30 16:28     ` Wayne Davison
2006-01-04 17:32       ` Wayne Davison
2006-01-04 19:48       ` Ulrik Haugen
2006-01-04 11:41     ` Peter Stephenson
2006-01-04 13:06       ` Peter Stephenson
2006-01-04 17:48       ` Peter Stephenson [this message]
2006-01-04 22:30       ` Ulrik Haugen
2006-01-05 12:29         ` Peter Stephenson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20060104174806.52744136.pws@csr.com \
    --to=pws@csr.com \
    --cc=zsh-workers@sunsite.dk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).