Function: shell-unquote-argument
shell-unquote-argument is a byte-compiled function defined in
shell.el.gz.
Signature
(shell-unquote-argument STRING)
Documentation
Remove all kinds of shell quoting from STRING.
Source Code
;; Defined in /usr/src/emacs/lisp/shell.el.gz
(defun shell-unquote-argument (string)
"Remove all kinds of shell quoting from STRING."
(save-match-data
(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 quote-chars string next)))
(cond ((= (aref string next) ?\\)
(setq string (replace-match "" nil nil string))
(setq next (1+ next)))
((and inside (= (aref string next) inside))
(setq string (replace-match "" nil nil string))
(setq inside nil))
(inside
(setq next (1+ next)))
(t
(setq inside (aref string next))
(setq string (replace-match "" nil nil string)))))
string)))