]> git.eshelyaron.com Git - emacs.git/commitdiff
(clean-buffer-list): Handle case where base-buffer of indirect buffer gets
authorEli Zaretskii <eliz@gnu.org>
Fri, 3 Mar 2006 12:12:06 +0000 (12:12 +0000)
committerEli Zaretskii <eliz@gnu.org>
Fri, 3 Mar 2006 12:12:06 +0000 (12:12 +0000)
killed before indirect buffer.  Use dolist.

lisp/ChangeLog
lisp/midnight.el

index d1210b331ff1c14a16006240149ba4dc60b323cf..207c6c89ce878522e050382d4e05ba5a3589bbae 100644 (file)
@@ -1,4 +1,9 @@
-2006-02-23  Ken Manheimer  <ken.manheimer@gmail.com>
+2006-03-03  Martin Rudalics  <rudalics@gmx.at>
+
+       * midnight.el (clean-buffer-list): Handle case where base-buffer of
+        indirect buffer gets killed before indirect buffer.  Use dolist.
+
+2006-03-03  Ken Manheimer  <ken.manheimer@gmail.com>
 
        * emacs-lisp/edebug.el (edebug-display): Use `edebug-sit-for-seconds'
        value instead of a literal constant (1) on more pauses.
index 1d5974f686fc52d1295343a2b772000603f4763a..1d9e1efbf2c15d744795e7c1503ac0f7f5f75119 100644 (file)
@@ -179,20 +179,21 @@ displayed (can be nil if the buffer was never displayed) and its
 lifetime, i.e., its \"age\" when it will be purged."
   (interactive)
   (let ((tm (float-time)) bts (ts (format-time-string "%Y-%m-%d %T"))
-        (bufs (buffer-list)) buf delay cbld bn)
-    (while (setq buf (pop bufs))
-      (setq bts (midnight-buffer-display-time buf) bn (buffer-name buf)
-            delay (if bts (- tm bts) 0) cbld (clean-buffer-list-delay bn))
-      (message "[%s] `%s' [%s %d]" ts bn (if bts (round delay)) cbld)
-      (unless (or (midnight-find bn clean-buffer-list-kill-never-regexps
-                                 'string-match)
-                  (midnight-find bn clean-buffer-list-kill-never-buffer-names
-                                 'string-equal)
-                  (get-buffer-process buf)
-                  (and (buffer-file-name buf) (buffer-modified-p buf))
-                  (get-buffer-window buf 'visible) (< delay cbld))
-        (message "[%s] killing `%s'" ts bn)
-        (kill-buffer buf)))))
+        delay cbld bn)
+    (dolist (buf (buffer-list))
+      (when (buffer-live-p buf)
+       (setq bts (midnight-buffer-display-time buf) bn (buffer-name buf)
+             delay (if bts (- tm bts) 0) cbld (clean-buffer-list-delay bn))
+       (message "[%s] `%s' [%s %d]" ts bn (if bts (round delay)) cbld)
+       (unless (or (midnight-find bn clean-buffer-list-kill-never-regexps
+                                  'string-match)
+                   (midnight-find bn clean-buffer-list-kill-never-buffer-names
+                                  'string-equal)
+                   (get-buffer-process buf)
+                   (and (buffer-file-name buf) (buffer-modified-p buf))
+                   (get-buffer-window buf 'visible) (< delay cbld))
+         (message "[%s] killing `%s'" ts bn)
+         (kill-buffer buf))))))
 
 ;;; midnight hook