> Cc: emacs-devel@gnu.org
> From: Stefan Monnier <[EMAIL PROTECTED]>
> Date: Thu, 12 May 2005 08:42:32 -0400
> 
> >   . on Windows, check_executable uses stat to verify executability
> >   . on Posix systems, check_executable uses euidaccess if it's available
> >   . by contrast, openp always uses access
> 
> > These are subtle differences, but they are real.
> 
> These are too subtle for me, indeed.  Are you saying that:
> 1- call-process on w32 doesn't use check_executable but should
> 2- are you saying that call-process on w32 does use check_executable whereas
>    a "1" arg to locate-file doesn't, and thus that a `file-executable-p' arg
>    to locate-file better mimicks call-process on w32.
> 
> If (1), it's beyond the scope of my patch.

I don't think the Windows port does something special inside
`call-process', I think it uses `openp' as every other platform, and
thus does _not_ use `check_executable' and what's in it.

What I'm saying is that `stat' and `access' on Windows might yield
different results (someone with more knowledge about Windows internals
than I have should give a definitive answer to that).  More
importantly, Posix platforms which have `euidaccess' will behave
differently in these two cases, because AFAIK, `euidaccess' and
`access' might yield different results.

I don't know enough about intricacies of `access' and `euidaccess' to
tell which one is TRT for us, but I do think that both `openp' and
`check_executable' should use the same code, whichever we think is the
right one.  (That is, unless someone explains why using `access' in
some cases and `euidaccess' in others _is_ TRT.)

As long as `file-executable-p' and `call-process' use these different
methods, your change to `executable-find' is an incompatible one,
albeit only in some rare situations.


_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel

Reply via email to