Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Message-ID: <427CF5F5.2030907@byu.net> Date: Sat, 07 May 2005 11:08:05 -0600 From: Eric Blake User-Agent: Mozilla Thunderbird 1.0.2 (Windows/20050317) MIME-Version: 1.0 To: cygwin AT cygwin DOT com, bug-coreutils AT gnu DOT org Subject: Re: mkdir -p and network drives References: <87k6mc1au3 DOT fsf AT penguin DOT cs DOT ucla DOT edu> <20050506204324 DOT GJ29240 AT trixie DOT casa DOT cgf DOT cx> <8764xvbl2n DOT fsf AT penguin DOT cs DOT ucla DOT edu> <20050507154332 DOT GF11243 AT trixie DOT casa DOT cgf DOT cx> In-Reply-To: <20050507154332.GF11243@trixie.casa.cgf.cx> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-IsSubscribed: yes -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 According to Christopher Faylor on 5/7/2005 9:43 AM: >>Which Bash bug is that? > > Bash is the most important program for which 'that chdir("//") is > currently no different from chdir("/")'. Is that a bug in bash or in cygwin, though? The comments for cygwin bash-2.05b-17 mention that a patch from Corinna Vinschen was applied to avoid turning '/' into '//' when converting/checking path. And `strace bash -c 'chdir //' shows: 32 20141553 [main] bash 1564 mount_info::conv_to_posix_path: // = conv_to_posix_path (//) 112 20141665 [main] bash 1564 chdir: dir '//' 29 20141694 [main] bash 1564 normalize_posix_path: src // 30 20141724 [main] bash 1564 normalize_posix_path: / = normalize_posix_path (//) 29 20141753 [main] bash 1564 mount_info::conv_to_win32_path: conv_to_win32_path (/) 32 20141785 [main] bash 1564 set_flags: flags: binary (0x2) 65 20141850 [main] bash 1564 mount_info::conv_to_win32_path: src_path /, dst c:\cygwin, flags 0xA, rc 0 89 20141939 [main] bash 1564 symlink_info::check: not a symlink 32 20141971 [main] bash 1564 symlink_info::check: 0 = symlink.check (c:\cygwin, 0x22E6D0) (0xA) 32 20142003 [main] bash 1564 path_conv::check: this->path(c:\cygwin), has_acls(1) 76 20142079 [main] bash 1564 chdir: 0 = chdir() cygheap->cwd.posix '/' native 'c:\cygwin' And this simple trace backs that up: $ cd // $ pwd // $ /bin/pwd / So it was the cygwin normalization code that turned '//' into '/', while bash thinks the current dir is '//'. What breaks if the cygwin chdir() normalization code is changed to not turn '//' into '/'? > Our track record for getting cygwin fixes into bash has been mixed. > I believe that someone has tried to get this fixed previously, along > with an even more serious problem with bash getting confused by > quick pid reuse but I believe that both problem still exist in > bash 3.0. Does bash 3.0 still have the bug that Corinna's patch to 2.05b fixed? At any rate, there is no official cygwin bash 3.0, because there has still been no volunteer to step up and produce a cygwin compilation of bash. - -- Life is short - so eat dessert first! Eric Blake ebb9 AT byu DOT net -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (Cygwin) Comment: Public key at home.comcast.net/~ericblake/eblake.gpg Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFCfPX184KuGfSFAYARAtRIAKDYJxaPVMFBvTBky1Pn0Ql2C9YM8wCggSWm eGq3zgHS7Slnz12CrIsApTs= =/1q1 -----END PGP SIGNATURE----- -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/