This is the mail archive of the cygwin 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] |
Other format: | [Raw text] |
On Feb 10 20:14, Thomas Wolff wrote: > Am 10.02.2015 um 10:27 schrieb Corinna Vinschen: > >On Feb 9 21:49, Thomas Wolff wrote: > >>Am 09.02.2015 um 11:17 schrieb Corinna Vinschen: > >>>On Feb 9 00:04, Thomas Wolff wrote: > >>>>With a Windows case sensitive file system (and according mount flags > >>>>for /cygdrive), the PATH does not properly reflect casing of the actual > >>>>directories (e.g. C:\WINDOWS vs. C:\Windows, thanks MS...). > >>>>However, the shell finds programs anyway, like e.g. notepad. > >>>>The exec*p system calls, on the other hand, do not find a program in this > >>>>case as demonstrated by the attached test program. > >>>>This is in contrast to the Linux (and POSIX?) manual page which claims > >>>>âThe execlp(), execvp(), and execvpe() functions duplicate the actions > >>>>of the shell in searching for an executable file ââ > >>>... > >>Sorry, I forgot one detail: I added /cygdrive/c/Windows/System32 to my path > >>so the shell will find it, but yet execlp does not find it. > >Which makes sense, given that notepad is not in C:\Windows\System32, but in C:\Windows. > On my systems (Windows 7 Professional/Ultimate) itâs in both C:\Windows and > C:\Windows\System32 > (otherwise the shell wouldnât have found it after adding to the path). > > However, I could resolve the issue partly by putting > /cygdrive/c/Windows (or ../System32) in the path *before* the bogus > /cygdrive/c/WINDOWS - weird, but this way exec*p works. > > With the old setting (bogus first in path), apparently/assumedly exec*p > somehow finds the file in /cygdrive/c/WINDOWS but then cannot start it from > there because of the case mis-match. > Thereâs still the inconsistency with shell behaviour. I found the cause. The function searching for executables in $PATH was searching on the Win32 PATH variable. The underlying conversion functionality treats Win32 paths with default flags. I revamped the search function to iterate over the POSIX PATH variable so the posix=[0|1] mount flag is taken into account. As a nice side effect, the search function is mow much simpler and easier to understand. I tested this new stuff in a variety of situations, but there's still the chance that I missed something. So this needs a good, sturdy testing. I just uploaded new snapshots to the usual place: https://cygwin.com/snapshots/ Please give it a try. Thanks, Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Maintainer cygwin AT cygwin DOT com Red Hat
Attachment:
pgpBxwEw4RYze.pgp
Description: PGP signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |