X-Recipient: archive-cygwin AT delorie DOT com DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:message-id:date:from:mime-version:to:subject :references:in-reply-to:content-type:content-transfer-encoding; q=dns; s=default; b=WRwNbbFWoq+hkYkLfPV7YLjuemII7MdvA4UDfPXWqKT qdaNGcbFqMD36p/eIYkBCetAoc6XMbGzQPNuyiZqsv1ZYSzeB8Pc88FkFEfKXTPY 9//053eplbJSDsVtaZdovu3hhMbjN+F9QwyMc7iKlKdJQeEZY9eldHNsqAs2s3VI = DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:message-id:date:from:mime-version:to:subject :references:in-reply-to:content-type:content-transfer-encoding; s=default; bh=+M2JLO9/IL5kBnecaY33V3NwoDY=; b=bhUrEQVtQUeK3nLsc kjsm84263U0njINJPMnWoF+yytK0fyTdbDbHo65OmnJrbp06mfxVjNszf1eTrAKp /eZ5YGtg1Qy5PxEY+tK9qBiaaSrEyFaKp4UsQ4OTNob+1UU52wfIlgxNILmboO/3 IKN6+nqqC0BIpG7BLyZFSzWRxM= Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: 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 X-Spam-SWARE-Status: No, score=-2.1 required=5.0 tests=AWL,BAYES_00,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,KHOP_THREADED,RCVD_IN_DNSWL_NONE,RCVD_IN_HOSTKARMA_YE,SPF_PASS autolearn=ham version=3.3.2 X-Received: by 10.66.100.200 with SMTP id fa8mr5266559pab.148.1377175718521; Thu, 22 Aug 2013 05:48:38 -0700 (PDT) Message-ID: <5216089C.6080502@gmail.com> Date: Thu, 22 Aug 2013 21:48:28 +0900 From: nu774 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130801 Thunderbird/17.0.8 MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Re: shell-init: error retrieving current directory References: <521571A7 DOT 6010503 AT gmail DOT com> <521575A1 DOT 6020304 AT gmail DOT com> <52157710 DOT 7060509 AT gmail DOT com> <20130822111143 DOT GL2562 AT calimero DOT vinschen DOT de> In-Reply-To: <20130822111143.GL2562@calimero.vinschen.de> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi, It seems that getcwd() of bash continues the following approach until it reaches /. 1) readdir() on the parent directory. 2) for each dirent returned by readdir(), find the entry that matches the current dirctory (by comparing inode or something). 3) set parent dir as current, and continue from 1). When you call getcwd() not under / (that is, C:/cygwin64), say /c/foo/bar (here I assume C drive is mounted on /c), step 2) will fail when current is /c, since readdir() on / doesn't return c as a dirent. In short, getcwd() of bash doesn't work as expected in this situation, and if Cygwin's getcwd() implementation complies requirement by bash, HAVE_GETCWD should be enabled. As far as I can see, HAVE_GETCWD enabled bash.exe is working fine here. (2013/08/22 20:11), Corinna Vinschen wrote: > On Aug 22 11:27, nu774 wrote: >> Hi, >> >> Thanks, I see. >> And I noticed bash.exe of cygwin32 is also using it's own getcwd >> WITHOUT issue. > > Still, why does it fail on 64 bit but not on 32 bit? Cygwin's path > handling code is identical for both platforms. > > > Corinna > -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple