Subject: bug#10523: closed (Re: bug#10523: 24.0.92; Wrong init value for eshell-windows-shell-file)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 04 Feb 2012 10:00:02 +0000

Your bug report

#10523: 24.0.92; Wrong init value for eshell-windows-shell-file

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
10523: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10523
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#10523: 24.0.92; Wrong init value for eshell-windows-shell-file
From: Eli Zaretskii <[email-masked]>
To: Lars Ljung <[email-masked]>
Cc: [email-masked]
Date: Sat, 04 Feb 2012 11:58:43 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

> Date: Tue, 17 Jan 2012 06:53:38 +0100
> From: Lars Ljung <[email-masked]>
> CC: [email-masked]
> 
> 2012-01-17 06:11, Eli Zaretskii skrev:
> > Why doesn't it work properly?  Can you give a simple test case where
> > it fails, and explain why?
> 
> With cmdproxy.exe it will look like this:
> 
> ~ $ test.bat arg1 arg2
> warning: extra args ignored after 'test.bat'
> 
> The warning is printed by cmdproxy.exe and the reason is that the
> command gets translated to the following:
> 
> cmdproxy.exe /c test.bat arg1 arg2
> 
> But cmdproxy.exe expects one single argument after /c, .i.e.
> cmdproxy.exe /c "test.bat arg1 arg2". cmd.exe on the other hand uses all
> remaining arguments on the command line.
> 
> To me it looks like the regexp is used to avoid using cmdproxy.exe, but
> it fails because of the extra \\`.

Thanks, I installed that change (trunk revision 107089).

Subject: 24.0.92; Wrong init value for eshell-windows-shell-file
From: Lars Ljung <[email-masked]>
To: [email-masked]
Date: Mon, 16 Jan 2012 22:45:50 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

The function eshell-invoke-batch-file expects that
eshell-windows-shell-file points to something with the behaviour of
cmd.exe. Currently it defaults to the path to cmdproxy.exe (the default
value of shell-file-name), which will not work properly.

The patch below solves this issue.

=== modified file 'lisp/eshell/esh-ext.el'
--- lisp/eshell/esh-ext.el	2012-01-05 09:46:05 +0000
+++ lisp/eshell/esh-ext.el	2012-01-16 20:21:27 +0000
@@ -91,7 +91,7 @@

 (defcustom eshell-windows-shell-file
   (if (eshell-under-windows-p)
-      (if (string-match "\\(\\`cmdproxy\\|sh\\)\\.\\(com\\|exe\\)"
+      (if (string-match "\\(cmdproxy\\|sh\\)\\.\\(com\\|exe\\)"
 			shell-file-name)
 	  (or (eshell-search-path "cmd.exe")
 	      (eshell-search-path "command.com"))