[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 841e3e3: Choose the right target dir on dired opera
From: |
Tino Calancha |
Subject: |
[Emacs-diffs] master 841e3e3: Choose the right target dir on dired operations |
Date: |
Mon, 27 Feb 2017 02:31:13 -0500 (EST) |
branch: master
commit 841e3e377c97142cfe76b9d91467f439198f5e39
Author: Tino Calancha <address@hidden>
Commit: Tino Calancha <address@hidden>
Choose the right target dir on dired operations
Prevent from changing the input target dir
when dired-dwim-target is non-nil (Bug#25609).
* lisp/dired-aux.el (dired-do-create-files):
If dired-dwim-target is non-nil, then bind 'default' to nil.
* test/lisp/dired-tests.el (dired-test-bug25609): Add test.
---
lisp/dired-aux.el | 1 +
test/lisp/dired-tests.el | 32 ++++++++++++++++++++++++++++++++
2 files changed, 33 insertions(+)
diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
index caa3b45..d7ca052 100644
--- a/lisp/dired-aux.el
+++ b/lisp/dired-aux.el
@@ -1791,6 +1791,7 @@ Optional arg HOW-TO determines how to treat the target.
(and (consp fn-list) (null (cdr fn-list)) (car fn-list)))
(target-dir (dired-dwim-target-directory))
(default (and dired-one-file
+ (not dired-dwim-target) ; Bug#25609
(expand-file-name (file-name-nondirectory (car fn-list))
target-dir)))
(defaults (dired-dwim-target-defaults fn-list target-dir))
diff --git a/test/lisp/dired-tests.el b/test/lisp/dired-tests.el
index 489f8fd..1863864a 100644
--- a/test/lisp/dired-tests.el
+++ b/test/lisp/dired-tests.el
@@ -20,6 +20,7 @@
;;; Code:
(require 'ert)
(require 'dired)
+(require 'nadvice)
(ert-deftest dired-autoload ()
@@ -52,5 +53,36 @@
;; Clean up
(delete-directory dir 'recursive))))
+(ert-deftest dired-test-bug25609 ()
+ "Test for http://debbugs.gnu.org/25609 ."
+ (let* ((from (make-temp-file "foo" 'dir))
+ (to (make-temp-file "bar" 'dir))
+ (target (expand-file-name (file-name-nondirectory from) to))
+ (nested (expand-file-name (file-name-nondirectory from) target))
+ (dired-dwim-target t)
+ (dired-recursive-copies 'always)) ; Don't prompt me.
+ (advice-add 'dired-query ; Don't ask confirmation to overwrite a file.
+ :override
+ (lambda (sym prompt &rest args) (setq dired-query t))
+ '((name . "advice-dired-query")))
+ (advice-add 'completing-read ; Just return init.
+ :override
+ (lambda (prompt coll &optional pred match init hist def
inherit keymap)
+ init)
+ '((name . "advice-completing-read")))
+ (dired to)
+ (dired-other-window temporary-file-directory)
+ (dired-goto-file from)
+ (dired-do-copy)
+ (dired-do-copy); Again.
+ (unwind-protect
+ (progn
+ (should (file-exists-p target))
+ (should-not (file-exists-p nested)))
+ (delete-directory from 'recursive)
+ (delete-directory to 'recursive)
+ (advice-remove 'dired-query "advice-dired-query")
+ (advice-remove 'completing-read "advice-completing-read"))))
+
(provide 'dired-tests)
;; dired-tests.el ends here
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master 841e3e3: Choose the right target dir on dired operations,
Tino Calancha <=