summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeo Liu <sdl.web@gmail.com>2013-01-19 02:35:44 +0800
committerLeo Liu <sdl.web@gmail.com>2013-01-19 02:35:44 +0800
commit2fc71e3c45e521a062ea2ab17a4cfe19c3c6f941 (patch)
tree7e9593b3b50e25d70dd5f1b5dbe01286e3dfd412
parente17b97778dba7840824c1eb163846fc740d866fb (diff)
downloademacs-2fc71e3c45e521a062ea2ab17a4cfe19c3c6f941.tar.gz
Prune erroneous values in dired-get-marked-files
Fixes: debbugs:13152
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/dired.el14
2 files changed, 13 insertions, 6 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index cd7a013d55c..7be8224ae65 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+2013-01-18 Leo Liu <sdl.web@gmail.com>
+
+ * dired.el (dired-get-marked-files): Prune erroneous values due to
+ last change. (Bug#13152)
+
2013-01-17 Glenn Morris <rgm@gnu.org>
* progmodes/etags.el (tags-table-check-computed-list):
diff --git a/lisp/dired.el b/lisp/dired.el
index 3d01c7b0924..76809f992cc 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -620,12 +620,14 @@ Optional third argument FILTER, if non-nil, is a function to select
If DISTINGUISH-ONE-MARKED is non-nil, then if we find just one marked file,
return (t FILENAME) instead of (FILENAME).
Don't use that together with FILTER."
- (let* ((all-of-them
- (save-excursion
- (dired-map-over-marks
- (dired-get-filename localp 'no-error-if-not-filep)
- arg nil distinguish-one-marked)))
- result)
+ (let ((all-of-them
+ (save-excursion
+ (delq nil (dired-map-over-marks
+ (dired-get-filename localp 'no-error-if-not-filep)
+ arg nil distinguish-one-marked))))
+ result)
+ (when (equal all-of-them '(t))
+ (setq all-of-them nil))
(if (not filter)
(if (and distinguish-one-marked (eq (car all-of-them) t))
all-of-them