This is the mail archive of the
cygwin@cygwin.com
mailing list for the Cygwin project.
Re: Zsh filename completion sluggishness?
Christopher Faylor <cgf-cygwin@cygwin.com> writes:
> On Fri, Feb 14, 2003 at 10:12:54AM -0700, Matt Armstrong wrote:
>>In the Win32 world, quotes around path elements are valid. If I have:
>>
>> PATH="c:\foo bar"
>>
>>cmd.exe will find executables in that dir.
>>
>>When I run bash or zsh, things in "c:\foo bar" aren't found.
>
> This is a UNIX emulation environment. "c:\foo bar" doesn't mean the c drive
> in a PATH variable. It means the 'c' directory followed by the '\foo bar'
> directory. Colon is the separator for PATH.
>
> The correct syntax for the above is PATH="/cygdrive/c/foo bar" .
I understand completely -- as I said somewhat ambiguously I was
setting the path to "c:\foo bar" in cmd.exe, then running bash.
When Cygwin initializes its PATH from the Win32 one, it doesn't handle
quoted elements properly.
E.g. cygwin converts the Win32 path like this:
c:\foo;"c:\bar" -> /cygdrive/c/foo:"c:\bar"
But it should do this:
c:\foo;"c:\bar" -> /cygdrive/c/foo:/cygdrive/c/bar
The latter is the semantic equivalent to the Win32 path.
The session below describes exactly what I'm talking about.
Microsoft Windows 2000 [Version 5.00.2195]
(C) Copyright 1985-2000 Microsoft Corp.
C:\>cd foo bar
C:\foo bar>dir
Volume in drive C is MYDISK
Volume Serial Number is 7C67-4A84
Directory of C:\foo bar
02/14/2003 10:01a <DIR> .
02/14/2003 10:01a <DIR> ..
02/14/2003 10:01a 19 foobar.cmd
1 File(s) 19 bytes
2 Dir(s) 1,021,567,488 bytes free
C:\foo bar>cd ..
C:\>foobar
'foobar' is not recognized as an internal or external command,
operable program or batch file.
C:\>set PATH="c:\foo bar";%PATH%
C:\>foobar
C:\>echo I ran foobar!
I ran foobar!
C:\>cd cygwin
C:\cygwin>cygwin
maarmstr@MAARMSTR ~
$ which foobar.cmd
foobar.cmd: Command not found.
maarmstr@MAARMSTR ~
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:"c:/foo bar":/cygdrive/c/WINNT/system32:/cygdrive/c/WINNT:/cygdrive/c/WINNT/System32/Wbem:/bin:/usr/bin:/usr/X11R6/bin
maarmstr@MAARMSTR ~
$ export PATH='/cygdrive/c/foo bar':$PATH
maarmstr@MAARMSTR ~
$ which foobar.cmd
/cygdrive/c/foo bar/foobar.cmd
maarmstr@MAARMSTR ~
$
--
matt
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/