On 6/18/2013 20:02, Christopher Faylor wrote:
On Tue, Jun 18, 2013 at 04:04:06PM -0600, Warren Young wrote:
It would be possible, though somewhat evil, for Cygwin's exec()
implementation to peek at the DLL dependency list of a program before
starting it, and from that infer whether it should automatically
translate paths.
Cygwin already does this. It detects whether the program it is about
to run uses the Cygwin DLL and, if not, makes decisions on how to
handle exec. It would be relatively easy to extend this.
Well, given that we're already paying the "peek" cost, I don't have any
objection to making exec() take longer for the native Windows case only.
Do you know how you want to cope with my contrived "xcopy /bin a b"
example? The point of the example, of course, is that "/bin" looks like
a real, existing POSIX path, but isn't.
From Chuck's explanation of MSYS, looks like "/b /i /n" would also get
caught in their heuristics, since it apparently doesn't do file
existence checks. (Else, Chuck's dumpbin example wouldn't need a
workaround.)
File existence checks would fix that, but would then prevent this from
doing what you want:
$ notepad ~/tmp/newfile.txt
So, it looks like MSYS is right not to try file existence checks.
(Yes, I realize you can rewrite my xcopy example using dashes for the
flags. That's beside the broader point, which is that not all things
that look like POSIX paths are such.)
--
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