[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#19350: #19350 24.4; Incorrect quoting of %-signs for Windows command
From: |
Noam Postavsky |
Subject: |
bug#19350: #19350 24.4; Incorrect quoting of %-signs for Windows command shell |
Date: |
Mon, 3 Oct 2016 14:47:37 -0400 |
On Mon, Aug 15, 2016 at 11:01 AM, Eli Zaretskii <eliz@gnu.org> wrote:
> From my POV, as long as Emacs itself doesn't produce such shell
> commands and/or environment variables for any of its features,
> avoiding this becomes user's responsibility, just like when working at
> the shell prompt. Of course, if we can find a reliable solution to
> the problem that doesn't take away features, that'd be better,
So I have been thinking about this. As far as I can tell, the %CD:~,0%
hack is the only way to solve it. We can make it conditional on having
command extensions enabled, see attached.
The probing command I used for the default value for
w32-shell-command-extensions causes an error while dumping ("Searching
for program: No such file or directory,
C:/Users/npostavs/src/emacs/emacs-25/nt/cmdproxy.exe") so I've
commented it out for now. With this patch,
(let ((w32-shell-command-extensions t)
(process-environment (cl-list* "ca^=with-caret"
"ca=without-caret"
process-environment)))
(insert (shell-command-to-string
(format "echo %s %s %s"
"%ca%"
(shell-quote-argument "%ca%")
"%%CD:~,0%ca%%CD:~,0%"))))
gives
without-caret "%ca%" %ca%
If this approach makes sense I can fix up the patch.
escaping-percent.diff
Description: Text document
- bug#19350: #19350 24.4; Incorrect quoting of %-signs for Windows command shell,
Noam Postavsky <=