www.delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2013/01/15/03:45:42

X-Recipient: archive-cygwin AT delorie DOT com
X-Spam-Check-By: sourceware.org
Date: Tue, 15 Jan 2013 09:44:07 +0100
From: Corinna Vinschen <corinna-cygwin AT cygwin DOT com>
To: cygwin AT cygwin DOT com
Subject: Re: stat() and tilde prefix (was bad bash tab completion)
Message-ID: <20130115084407.GA2353@calimero.vinschen.de>
Reply-To: cygwin AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
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> <c040ca2ce35648f99318ee341647c241 AT BN1PR03MB087 DOT namprd03 DOT prod DOT outlook DOT com> <50F47A8B DOT 5050001 AT cs DOT utoronto DOT ca>
MIME-Version: 1.0
In-Reply-To: <50F47A8B.5050001@cs.utoronto.ca>
User-Agent: Mutt/1.5.21 (2010-09-15)
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

On Jan 14 16:37, Ryan Johnson wrote:
> On 14/01/2013 3:24 PM, Stephan Mueller wrote:
> >Perhaps (as you may well have already considered):
> >
> >- replace the path prefix by the mount point first?  (this may be naïve
> >   on my part, but it's not clear to me that .. early in a path should be able
> >   to influence which mount point is substituted)
> If I mount something at /foo/bar/baz, then /foo/bar/baz/../../blah
> definitely shouldn't end up inside baz.
> 
> >- test directory existence of the component preceding .. before collapsing
> >   (in the example above) b/.. to nothing.
> >- trust that for a/b3/b2/b/../../../c, the existence test of a/b3/b2/b
> >   before collapsing b/.. to nothing implies existence of b2 and b3 so no
> >   further tests are needed for 'runs' of .. components with enough
> >   components before them
> >
> >Understood that this is still going to cause a slowdown because paths with
> >.. are not uncommon, but it would reduce the number of additional
> >existence checks from one-per-path-component to one-per-run-of-..,
> >which means none in the case of paths without .. in them.
> The rest seems totally reasonable to me, FWIW.

That's a chicken/egg-like situation.  To be able to convert the
POSIX path prefix (aka mount point) to the matching DOS path prefix,
the path has to be normalized.  But without being converted to a
DOS path, you can't check path components.


Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Project Co-Leader          cygwin AT cygwin DOT com
Red Hat

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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019