Subject: bug#15461: 24.3; exec-path on ms windows should contain current directory

From: Eli Zaretskii <[email-masked]>
Date: Sun, 15 Dec 2013 23:16:50 +0200

> Date: Sun, 15 Dec 2013 21:32:12 +0100
> From: Jarek Czekalski <[email-masked]>
> 
> Some analyzis done:
> 
> 1. shell-command uses libexec\emacs\24.3.50\i686-pc-mingw32\cmdproxy.exe 
> and this proxy locates files in the current directory. Side note: it 
> ignores exec-path and uses only system PATH variable

cmdproxy emulates a shell, so it does what every shell would: ignore
exec-path (which is an Emacs feature, unknown to other programs), and
use PATH.

> 2. call-process does not run programs from the current directory (a new bug)

It's not a bug.  Again, please keep in mind that each buffer in Emacs
has its own "current directory".

> Now the Stefan's suggestion:
> 
> > Completion should mirror the behavior of the code that spawns the
> > process
> 
> , which seemed perfectly at the beginning, makes less sense. Which 
> code's behaviour should be copied?
> 
> I guess first call-process should be fixed to include the current 
> directory, then its behaviour may be copied.

I suggest to stay focused on the issue at hand: completion of
executable files.  If we extend the issue to how executables are found
by call-process, cmdproxy, shell-command, etc., we will just add
unneeded complexity.

> Any suggestions in which direction to go? Maybe the simplest consing 
> exec-path is still an option?

No, it is not.  Again, let's stay focused on completion.