X-Recipient: archive-cygwin@delorie.com
X-Spam-Check-By: sourceware.org
Date: Wed, 2 Feb 2011 23:19:58 +0100
From: Corinna Vinschen <corinna-cygwin@cygwin.com>
To: cygwin@cygwin.com
Cc: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Subject: Re: directories named '...' (dotdotdot) do not work
Message-ID: <20110202221958.GT2675@calimero.vinschen.de>
Reply-To: cygwin@cygwin.com
Mail-Followup-To: cygwin@cygwin.com,	Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
References: <loom.20110201T203452-177@post.gmane.org> <20110202204556.GL2675@calimero.vinschen.de> <4D49C4EB.70204@redhat.com> <20110202212846.GN2675@calimero.vinschen.de> <20110202215346.GQ2675@calimero.vinschen.de> <4D49D434.7050009@redhat.com> <20110202221139.GS2675@calimero.vinschen.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
In-Reply-To: <20110202221139.GS2675@calimero.vinschen.de>
User-Agent: Mutt/1.5.21 (2010-09-15)
Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm
Precedence: bulk
List-Id: <cygwin.cygwin.com>
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie.com@cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe@cygwin.com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-help@cygwin.com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner@cygwin.com
Mail-Followup-To: cygwin@cygwin.com
Delivered-To: mailing list cygwin@cygwin.com

On Feb  2 23:11, Corinna Vinschen wrote:
> On Feb  2 15:01, Eric Blake wrote:
> > On 02/02/2011 02:53 PM, Corinna Vinschen wrote:
> > > [...]
> > > To fix that, we would have to scan the entire path for path components
> > > which contain leading spaces or trailing dots or spaces.  That makes
> > > fork even slower than it already is.
> > 
> > Well, that would only be if the path is shorter than MAX_PATH (256)
> > bytes, so it's not like we have a quadratic scaling problem over
> > thousands of bytes.  Furthermore, using a directory literally named
> > '...' already causes problems for windows programs that ar not long-path
> > aware, so the workaround is no worse than what they currently get from
> > such a path.  But you're right, that taking the time to scan for any
> > occurrence of:
> > 
> > '.\', './', '/.', ' \', ' /'
> > 
> > and checking for five patterns across 256 bytes definitely adds time.
> > 
> > > Given that it works fine on Vista and Windows 7 anyway, is it really
> > > worth to add this extra code just to support an old OS in a very rare
> > > situation?  
> > 
> > Can't we make the scan conditional on the windows version?  That is,
> > spend the extra time to keep XP happy, but skip the scan on newer Windows?
> 
> I'm not opposed to a pre-Vista workaround.  The code should be added to
> the "if (runpath)" code starting at line 494 in spawn.cc.  If you have
> an idea how to do this test as fast as possible, please send a patch.

Oh, btw., only three patterns.  At this point in the code the slashes
are already converted to backslashes.


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

