]> git.eshelyaron.com Git - emacs.git/commitdiff
(find-dired): Use shell-quote-argument to properly
authorKim F. Storm <storm@cua.dk>
Mon, 28 Aug 2006 08:02:38 +0000 (08:02 +0000)
committerKim F. Storm <storm@cua.dk>
Mon, 28 Aug 2006 08:02:38 +0000 (08:02 +0000)
escape ( and ) args.  Also use it on {} and ; args in default
value of find-ls-option string.
(find-grep-dired): Use shell-quote-argument on {} and ; args.

lisp/find-dired.el

index 88e5414d525116c5c0c94492b4d13b9055eaff97..a2895133c27eddd55e958e6e01ebab7ff129f916 100644 (file)
@@ -129,8 +129,17 @@ as the final argument."
          args (concat find-dired-find-program " . "
                       (if (string= args "")
                           ""
-                        (concat "\\( " args " \\) "))
-                      (car find-ls-option)))
+                        (concat
+                         (shell-quote-argument "(")
+                         " " args " "
+                         (shell-quote-argument ")")
+                         " "))
+                      (if (equal (car find-ls-option) "-exec ls -ld {} \\;")
+                          (concat "-exec ls -ld "
+                                  (shell-quote-argument "{}")
+                                  " "
+                                  (shell-quote-argument ";"))
+                        (car find-ls-option))))
     ;; Start the find process.
     (shell-command (concat args "&") (current-buffer))
     ;; The next statement will bomb in classic dired (no optional arg allowed)
@@ -215,7 +224,10 @@ Thus ARG can also contain additional grep options."
   (find-dired dir
              (concat "-type f -exec grep " find-grep-options " -e "
                      (shell-quote-argument regexp)
-                     " {} \\\; ")))
+                     " "
+                     (shell-quote-argument "{}")
+                     " "
+                     (shell-quote-argument ";"))))
 
 (defun find-dired-filter (proc string)
   ;; Filter for \\[find-dired] processes.