X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=2.9 required=5.0 tests=AWL,BAYES_00,BOTNET,KHOP_DNSBL_BUMP,KHOP_THREADED,RCVD_IN_MSPIKE_BL,RCVD_IN_MSPIKE_L3 X-Spam-Check-By: sourceware.org Message-ID: <50F54C93.9090702@shaddybaddah.name> Date: Tue, 15 Jan 2013 23:33:23 +1100 From: Shaddy Baddah User-Agent: Mozilla/5.0 (X11; Linux i686; rv:10.0.5) Gecko/20120624 Icedove/10.0.5 MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Re: stat() and tilde prefix (was bad bash tab completion) References: <5024B4D4 DOT 6080409 AT shaddybaddah DOT name> <50F395D5 DOT 4050201 AT shaddybaddah DOT name> <20130114061747 DOT GB16739 AT ednor DOT casa DOT cgf DOT cx> <20130114100002 DOT GA22039 AT calimero DOT vinschen DOT de> <50F417F9 DOT 8040108 AT shaddybaddah DOT name> <20130114161307 DOT GB8617 AT calimero DOT vinschen DOT de> In-Reply-To: <20130114161307.GB8617@calimero.vinschen.de> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes 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 Hi, On 15 Jan 2013 03:13, Corinna Vinschen wrote: >> It seems to me then that a patch to bash may be in order? I can see how >> the bash check is the right thing to do. It doesn't want the special >> tilde expansion to mask and disallow referencing of real tilde prefixed >> paths. So the stat() check is the quick win to determine that. >> >> From what I make of it, there needs to be a patch that, although can >> work generically, adds checks only required for Cygwin. And therefore >> is specific to the Cygwin package. >> >> The check would be an extension of the file_exists() function, perhaps >> called tilde_file_exists(), which determines if the tilde prefix forms >> a directory component of the path (strchr('/')?). If it does not, the >> file_exists() check is sufficient. If it does, then the check of if >> that directory exists is logically and'ed to the result of >> file_exists(). >> >> Does that sound about right? > > A check like this might be a good idea. Ultimately I would be glad to > be able to come up with more correct code in Cygwin while not getting > slower, of course. But that's wishful thinking for now. Bash, patched in the way I have described, seems to fix the tab completion issue. I will tidy up the work and publish the patch at some point soon. I may have taken a naive approach, so review comments are welcome. -- Regards, Shaddy -- 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