--- Begin Message ---
Subject: |
24.0.92; Wrong init value for eshell-windows-shell-file |
Date: |
Mon, 16 Jan 2012 22:45:50 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:8.0) Gecko/20111124 Thunderbird/8.0 |
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"))
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#10523: 24.0.92; Wrong init value for eshell-windows-shell-file |
Date: |
Sat, 04 Feb 2012 11:58:43 +0200 |
> Date: Tue, 17 Jan 2012 06:53:38 +0100
> From: Lars Ljung <address@hidden>
> CC: address@hidden
>
> 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).
--- End Message ---