This is the mail archive of the cygwin@sources.redhat.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

BUG?: erroreous intepretation of windows quoted paths


echo $PATH gives (line breaks by me):

PATH=/usr/local/bin:/usr/bin:/bin:/c/bin:/c/usr/bin:/c/usr/local/bin:\
/c/WINNT/system32:/c/WINNT:/c/WINNT/system32/wbem:/c/sfu/telnet/:\
/c/sfu/shell/:"c:/Program Files/Diskaccess/bin":\
/c/Program Files/Support Tools/:/c/AW/Maya2.5/bin:/c/bin:/c/usr/bin:\
/c/apps/jdk1.2.2/bin:/c/spi/bin:/c/Program Files/GNU/WinCvs:\
/c/Program Files/Microsoft Visual Studio/VC98/Bin

ls "c:\\Program Files\\Diskaccess\\bin" gives:
daconfig.exe*
nfs.exe*

try to execute daconfig/daconfig.exe or "type" them give:
bash: daconfig.exe: command not found
bash: daconfig: command not found


cygcheck (note corrupted [split] quotes across a path element and inclusion
of quote chars in the path elements) gives:

Cygnus Win95/NT Configuration Diagnostics
Current System Time: Tue Feb 13 15:40:07 2001

WinNT Ver 5.0 build 2195 

Path:	/usr/local/bin
	/usr/bin
	/bin
	/c/bin
	/c/usr/bin
	/c/usr/local/bin
	/c/WINNT/system32
	/c/WINNT
	/c/WINNT/system32/wbem
	/c/sfu/telnet/
	/c/sfu/shell/
	"c
	/Program Files/Diskaccess/bin"
	/c/Program Files/Support Tools/
	/c/AW/Maya2.5/bin
	/c/bin
	/c/usr/bin
	/c/apps/jdk1.2.2/bin
	/c/spi/bin
	/c/Program Files/GNU/WinCvs
	/c/Program Files/Microsoft Visual Studio/VC98/Bin

c:\cygwin\bin  /usr/bin  user    textmode
c:\cygwin\lib  /usr/lib  user    textmode
c:\cyglocal  /usr/local  user    textmode
c:\cygpkg  /usr/pkg  user    textmode
c:\cygwin  /        user    textmode
a:    /a       user    textmode
c:    /c       user    textmode
s:    /s       user    binmode

    Cygwin DLL version info:
        dll major: 1001
        dll minor: 8
        dll epoch: 19
        dll bad signal mask: 19005
        dll old termios: 5
        dll malloc env: 28
        api major: 0
        api minor: 34
        shared data: 3
        dll identifier: cygwin1
        mount registry: 2
        cygnus registry name: Cygnus Solutions
        cygwin registry name: Cygwin
        program options name: Program Options
        cygwin mount registry name: mounts v2
        cygdrive flags: cygdrive flags
        cygdrive prefix: cygdrive prefix
        cygdrive default prefix: 
        build date: Wed Jan 31 10:08:38 EST 2001
        shared id: cygwin1S3

If I remove the quotes from the system environment variable
in the control panel and reboot, all works:

echo $PATH gives (line breaks by me):

PATH=/usr/local/bin:/usr/bin:/bin:/c/bin:/c/usr/bin:/c/usr/local/bin:\
/c/WINNT/system32:/c/WINNT:/c/WINNT/system32/wbem:/c/sfu/telnet/:\
/c/sfu/shell/:/c/Program Files/Diskaccess/bin:\
/c/Program Files/Support Tools/:/c/AW/Maya2.5/bin:/c/bin:/c/usr/bin:\
/c/apps/jdk1.2.2/bin:/c/spi/bin:/c/Program Files/GNU/WinCvs:\
/c/Program Files/Microsoft Visual Studio/VC98/Bin

type daconfig gives:

daconfig is hashed (/c/Program Files/Diskaccess/bin/daconfig)

and the path section of cygcheck is

Path:	/usr/local/bin
	/usr/bin
	/bin
	/c/bin
	/c/usr/bin
	/c/usr/local/bin
	/c/WINNT/system32
	/c/WINNT
	/c/WINNT/system32/wbem
	/c/sfu/telnet/
	/c/sfu/shell/
	/c/Program Files/Diskaccess/bin
	/c/Program Files/Support Tools/
	/c/AW/Maya2.5/bin
	/c/bin
	/c/usr/bin
	/c/apps/jdk1.2.2/bin
	/c/spi/bin
	/c/Program Files/GNU/WinCvs
	/c/Program Files/Microsoft Visual Studio/VC98/Bin

Which is all correct.

Therefore, I think there is an incorrect interpretation (or conversion)
of quoted windows paths.  For one thing, it appears to be using the colon
in "c:b" as a path separator instead of grouping it all together according
to the higher precidence quotes.

PS.  I looked in the FAQ, thru the mailing lists (search words +quote +path
and +quoted +PATH, and didn't see anything).

PPS.  I wrote a version of the "which" command, in which I did some really
minimal parsing of quoted windows paths, but it works correctly in the
cases above.  I noticed this same problem in my program a while ago, (and
fixed it by adding the minimal quote parsing).  Didn't think to check
cygwin's operation.

I can forward my "which" program to anyone who wants it.

--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]