[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/emacs-23 r99931: * lisp/dired.el (dired-buf
From: |
Chong Yidong |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/emacs-23 r99931: * lisp/dired.el (dired-buffers-for-dir): Handle list values of dired-directory (Bug#6636). |
Date: |
Sat, 17 Jul 2010 17:25:32 -0400 |
User-agent: |
Bazaar (2.0.3) |
------------------------------------------------------------
revno: 99931
committer: Chong Yidong <address@hidden>
branch nick: emacs-23
timestamp: Sat 2010-07-17 17:25:32 -0400
message:
* lisp/dired.el (dired-buffers-for-dir): Handle list values of
dired-directory (Bug#6636).
modified:
lisp/ChangeLog
lisp/dired.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog 2010-07-16 10:17:13 +0000
+++ b/lisp/ChangeLog 2010-07-17 21:25:32 +0000
@@ -1,3 +1,8 @@
+2010-07-17 Chong Yidong <address@hidden>
+
+ * dired.el (dired-buffers-for-dir): Handle list values of
+ dired-directory (Bug#6636).
+
2010-07-16 Reiner Steib <address@hidden>
* vc.el (vc-coding-system-inherit-eol): New defvar.
=== modified file 'lisp/dired.el'
--- a/lisp/dired.el 2010-02-04 16:25:57 +0000
+++ b/lisp/dired.el 2010-07-17 21:25:32 +0000
@@ -2227,31 +2227,33 @@
;; Keeping Dired buffers in sync with the filesystem and with each other
(defun dired-buffers-for-dir (dir &optional file)
-;; Return a list of buffers that dired DIR (top level or in-situ subdir).
+;; Return a list of buffers for DIR (top level or in-situ subdir).
;; If FILE is non-nil, include only those whose wildcard pattern (if any)
;; matches FILE.
;; The list is in reverse order of buffer creation, most recent last.
;; As a side effect, killed dired buffers for DIR are removed from
;; dired-buffers.
(setq dir (file-name-as-directory dir))
- (let ((alist dired-buffers) result elt buf)
- (while alist
- (setq elt (car alist)
- buf (cdr elt))
- (if (buffer-name buf)
- (if (dired-in-this-tree dir (car elt))
- (with-current-buffer buf
- (and (assoc dir dired-subdir-alist)
- (or (null file)
- (let ((wildcards
- (file-name-nondirectory dired-directory)))
- (or (= 0 (length wildcards))
- (string-match (dired-glob-regexp wildcards)
- file))))
- (setq result (cons buf result)))))
- ;; else buffer is killed - clean up:
+ (let (result buf)
+ (dolist (elt dired-buffers)
+ (setq buf (cdr elt))
+ (cond
+ ((null (buffer-name buf))
+ ;; Buffer is killed - clean up:
(setq dired-buffers (delq elt dired-buffers)))
- (setq alist (cdr alist)))
+ ((dired-in-this-tree dir (car elt))
+ (with-current-buffer buf
+ (and (assoc dir dired-subdir-alist)
+ (or (null file)
+ (if (stringp dired-directory)
+ (let ((wildcards (file-name-nondirectory
+ dired-directory)))
+ (or (= 0 (length wildcards))
+ (string-match (dired-glob-regexp wildcards)
+ file)))
+ (member (expand-file-name file dir)
+ (cdr dired-directory))))
+ (setq result (cons buf result)))))))
result))
(defun dired-glob-regexp (pattern)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/emacs-23 r99931: * lisp/dired.el (dired-buffers-for-dir): Handle list values of dired-directory (Bug#6636).,
Chong Yidong <=