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