Commit f5058b96 authored by Eli Zaretskii's avatar Eli Zaretskii
Browse files

(shell-unquote-argument): If the shell is one of the

mentioned in shell-dumb-shell-regexp, don't treat a backslash as a
quote character.
(shell-dumb-shell-regexp): Document that the shells which match
this regexp are supposed to not treat a backslash as a quote
character.
parent 4dcd74e6
2001-01-27 Eli Zaretskii <eliz@is.elta.co.il>
 
* shell.el (shell-unquote-argument): If the shell is one of the
mentioned in shell-dumb-shell-regexp, don't treat a backslash as a
quote character.
(shell-dumb-shell-regexp): Document that the shells which match
this regexp are supposed to not treat a backslash as a quote
character.
* emacs-lisp/lisp-mode.el (lisp-mode-shared-map): Undo the change
from 2001-01-12. It is not needed, since backspace is mapped into
DEL.
......
......@@ -122,9 +122,11 @@
;;;###autoload
(defcustom shell-dumb-shell-regexp "cmd\\(proxy\\)?\\.exe"
"Regexp to match shells that don't save their command history.
For shells that match this regexp, Emacs will write out the
command history when the shell finishes."
"Regexp to match shells that don't save their command history, and
don't handle the backslash as a quote character. For shells that
match this regexp, Emacs will write out the command history when the
shell finishes, and won't remove backslashes when it unquotes shell
arguments."
:type 'regexp
:group 'shell)
......@@ -597,9 +599,15 @@ Environment variables are expanded, see function `substitute-in-file-name'."
(defun shell-unquote-argument (string)
"Remove all kinds of shell quoting from STRING."
(save-match-data
(let ((idx 0) next inside)
(let ((idx 0) next inside
(quote-chars
(if (string-match shell-dumb-shell-regexp
(file-name-nondirectory
(car (process-command (get-buffer-process (current-buffer))))))
"['`\"]"
"[\\'`\"]")))
(while (and (< idx (length string))
(setq next (string-match "[\\'`\"]" string next)))
(setq next (string-match quote-chars string next)))
(cond ((= (aref string next) ?\\)
(setq string (replace-match "" nil nil string))
(setq next (1+ next)))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment