Mail Archives: cygwin/2010/03/17/13:06:39
--------------enigE69145A21E73CC6C84679106
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
On 03/16/2010 09:07 AM, Corinna Vinschen wrote:
> I checked this situation in cmd.exe, and it is not capable of using
> paths relativ to %Path%. In other words, if %Path% contains a path
> c:\foo and you have two files C:\foo\baz.exe and C:\foo\bar\baz.exe,
> then calling "baz" works, but calling "bar\baz" fails. OTOH, the
> SearchPath function does it right.
POSIX says PATH searches are only performed on single components; they
are skipped if the argument contains /. That is:
PATH=3D/b c/d
will NOT execute /b/c/d (unless you happen to be in /b at the time);
rather it MUST execute ./c/d or fail altogether. Another term for this
(at least, in the bash sources) is the notion of an anchored search -
even though the requested name is relative, the fact that it contains a
/ means it does not trigger a PATH search, but is anchored in the
current directory.
Therefore, I see no reason why we shouldn't behave the same for \, since
we are treating it as a directory separator. That is, if you have both
c:\foo\baz.exe and c:\foo\bar\baz.exe, then calling bar\baz should NOT
care whether c:\foo is in %Path%, but should only work if .\bar\baz exists.
--=20
Eric Blake eblake AT redhat DOT com +1-801-349-2682
Libvirt virtualization library http://libvirt.org
--------------enigE69145A21E73CC6C84679106
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Public key at home.comcast.net/~ericblake/eblake.gpg
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/
iEYEARECAAYFAkuhGeAACgkQ84KuGfSFAYBI+gCeK9GUxhZB8xx3oPhc+wwmzERw
c84An2fxl+uknpBO1RCHvYb931rhmLwI
=D8ZI
-----END PGP SIGNATURE-----
--------------enigE69145A21E73CC6C84679106--
- Raw text -