diff options
author | Dmitry Gutov <dgutov@yandex.ru> | 2016-05-05 04:15:23 +0300 |
---|---|---|
committer | Dmitry Gutov <dgutov@yandex.ru> | 2016-05-05 04:15:23 +0300 |
commit | ab3ba912fc7b91b7b147ea36fabe461dc99a9fb8 (patch) | |
tree | 7618c1534a3b505e05e772da86372c52b7448b46 | |
parent | 922c7a3e48e649ad67bd12b1f83343b730dd1bc4 (diff) | |
download | emacs-ab3ba912fc7b91b7b147ea36fabe461dc99a9fb8.tar.gz emacs-ab3ba912fc7b91b7b147ea36fabe461dc99a9fb8.tar.bz2 emacs-ab3ba912fc7b91b7b147ea36fabe461dc99a9fb8.zip |
shell-quote-argument DIR when appropriate
* lisp/progmodes/project.el (project-file-completion-table):
`shell-quote-argument' DIR as well.
* lisp/progmodes/xref.el (xref--rgrep-command): Pass DIR through
`shell-quote-argument' (bug#23453). Thanks for Kaushal Modi for
pointing out the problem. Assert that DIR doesn't start with `~'.
-rw-r--r-- | lisp/progmodes/project.el | 3 | ||||
-rw-r--r-- | lisp/progmodes/xref.el | 5 |
2 files changed, 5 insertions, 3 deletions
diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el index 9c8a88c80fc..a51c383b93b 100644 --- a/lisp/progmodes/project.el +++ b/lisp/progmodes/project.el @@ -172,7 +172,8 @@ to find the list of ignores for each directory." (let ((command (format "%s %s %s -type f -print0" find-program - dir + (shell-quote-argument + (expand-file-name dir)) (xref--find-ignores-arguments (project-ignores project dir) (expand-file-name dir))))) diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el index 17bfdb69f8f..1c28390258c 100644 --- a/lisp/progmodes/xref.el +++ b/lisp/progmodes/xref.el @@ -941,6 +941,8 @@ IGNORES is a list of glob patterns." (require 'find-dired) ; for `find-name-arg' (defvar grep-find-template) (defvar find-name-arg) + ;; `shell-quote-argument' quotes the tilde as well. + (cl-assert (not (string-match-p "\\`~" dir))) (grep-expand-template grep-find-template regexp @@ -952,14 +954,13 @@ IGNORES is a list of glob patterns." (concat " -o " find-name-arg " ")) " " (shell-quote-argument ")")) - dir + (shell-quote-argument dir) (xref--find-ignores-arguments ignores dir))) (defun xref--find-ignores-arguments (ignores dir) "Convert IGNORES and DIR to a list of arguments for 'find'. IGNORES is a list of glob patterns. DIR is an absolute directory, used as the root of the ignore globs." - ;; `shell-quote-argument' quotes the tilde as well. (cl-assert (not (string-match-p "\\`~" dir))) (when ignores (concat |