diff options
author | Tino Calancha <tino.calancha@gmail.com> | 2017-07-03 12:55:06 +0900 |
---|---|---|
committer | Tino Calancha <tino.calancha@gmail.com> | 2017-07-03 12:55:06 +0900 |
commit | bc3dcd524dfb5c889ed017c093eaf028596fc35c (patch) | |
tree | f1c783db64e4b97127902888f71360071aa5e946 /test/lisp/dired-aux-tests.el | |
parent | 1b4f0a92ff3505ef9a465b9b391756e3a73a6443 (diff) | |
download | emacs-bc3dcd524dfb5c889ed017c093eaf028596fc35c.tar.gz emacs-bc3dcd524dfb5c889ed017c093eaf028596fc35c.tar.bz2 emacs-bc3dcd524dfb5c889ed017c093eaf028596fc35c.zip |
dired-do-shell-command: Fix check for wildcards
* lisp/dired-aux.el (dired-do-shell-command): Replace just '?', '*'
and '`?' i.e., keep the whitespaces.
* test/lisp/dired-aux-tests.el (dired-test-bug27496): Add test.
Diffstat (limited to 'test/lisp/dired-aux-tests.el')
-rw-r--r-- | test/lisp/dired-aux-tests.el | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/test/lisp/dired-aux-tests.el b/test/lisp/dired-aux-tests.el new file mode 100644 index 00000000000..9e02af272b6 --- /dev/null +++ b/test/lisp/dired-aux-tests.el @@ -0,0 +1,44 @@ +;;; dired-aux-tests.el --- Test suite for dired-aux. -*- lexical-binding: t -*- + +;; Copyright (C) 2017 Free Software Foundation, Inc. + +;; This file is part of GNU Emacs. + +;; GNU Emacs is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. + +;;; Code: +(require 'ert) +(require 'dired-aux) + + +(ert-deftest dired-test-bug27496 () + "Test for http://debbugs.gnu.org/27496 ." + (skip-unless (executable-find shell-file-name)) + (let* ((foo (make-temp-file "foo")) + (files (list foo))) + (unwind-protect + (cl-letf (((symbol-function 'y-or-n-p) 'error)) + (dired temporary-file-directory) + (dired-goto-file foo) + ;; `dired-do-shell-command' returns nil on success. + (should-error (dired-do-shell-command "ls ? ./?" nil files)) + (should-error (dired-do-shell-command "ls ./? ?" nil files)) + (should-not (dired-do-shell-command "ls ? ?" nil files)) + (should-error (dired-do-shell-command "ls * ./*" nil files)) + (should-not (dired-do-shell-command "ls * *" nil files)) + (should-not (dired-do-shell-command "ls ? ./`?`" nil files))) + (delete-file foo)))) + +(provide 'dired-aux-tests) +;; dired-aux-tests.el ends here |