zsh-workers
 help / color / mirror / code / Atom feed
* cd bugs
@ 2009-07-14 21:59 Eric Blake
  2009-07-14 22:30 ` Eric Blake
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Eric Blake @ 2009-07-14 21:59 UTC (permalink / raw)
  To: zsh-workers

POSIX requires cd to give output if a nonempty entry in CDPATH played a role, or
if 'cd -' was used.  Therefore, this line demonstrates two zsh bugs:

$ zsh -c 'emulate -R sh; cd /tmp; mkdir -p d; CDPATH=.; cd d; cd -; rmdir d'
$ bash -c 'cd /tmp; mkdir -p d; CDPATH=.; cd d; cd -; rmdir d'
/tmp/d
/tmp
$

while bash was correct in printing the absolute name of d and its parent.

When fixing this, be sure that you don't break

$ zsh -c 'emulate -R sh; mkdir foo; CDPATH=:; cd foo'

since POSIX states that particular use must remain silent (an implicit . used
from an empty CDPATH entry is different than an explicit . in CDPATH).

Another bug, mainly visible on platforms like cygwin where leading // is special
as allowed by POSIX (in particular, on my cygwin machin, //eblake exists but not
/eblake):

$ zsh -c 'emulate -R sh; CDPATH=///; cd eblake; /bin/pwd'
//eblake
$ bash -c 'CDPATH=///; cd eblake; /bin/pwd'
bash: line 0: cd: eblake: No such file or directory
/tmp
$

Since POSIX requires ///eblake to be synonymous with /eblake, and /eblake does
not exist, only bash was correct in printing an error and not changing location.

-- 
Eric Blake



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2009-07-21  9:30 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-07-14 21:59 cd bugs Eric Blake
2009-07-14 22:30 ` Eric Blake
2009-07-19 19:00   ` Peter Stephenson
2009-07-15  3:28 ` Eric Blake
2009-07-15  8:45   ` Peter Stephenson
2009-07-21  9:22 ` Peter Stephenson

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).