emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r112125: * lisp/files.el (kill-buffer


From: Leo Liu
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r112125: * lisp/files.el (kill-buffer-hook): Doc fix.
Date: Sun, 24 Mar 2013 14:42:25 +0800
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 112125
fixes bug: http://debbugs.gnu.org/13999
committer: Leo Liu <address@hidden>
branch nick: trunk
timestamp: Sun 2013-03-24 14:42:25 +0800
message:
  * lisp/files.el (kill-buffer-hook): Doc fix.
  
  * lisp/emacs-lisp/edebug.el (edebug-mode): Make sure edebug-kill-buffer
  is the last entry in kill-buffer-hook.
  
  * lisp/nxml/rng-valid.el (rng-validate-while-idle)
  (rng-validate-quick-while-idle): Guard against deleted buffer.
modified:
  lisp/ChangeLog
  lisp/emacs-lisp/edebug.el
  lisp/files.el
  lisp/nxml/rng-valid.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2013-03-23 22:04:40 +0000
+++ b/lisp/ChangeLog    2013-03-24 06:42:25 +0000
@@ -1,3 +1,14 @@
+2013-03-24  Leo Liu  <address@hidden>
+
+       * nxml/rng-valid.el (rng-validate-while-idle)
+       (rng-validate-quick-while-idle): Guard against deleted buffer.
+       (Bug#13999)
+
+       * emacs-lisp/edebug.el (edebug-mode): Make sure edebug-kill-buffer
+       is the last entry in kill-buffer-hook.
+
+       * files.el (kill-buffer-hook): Doc fix.
+
 2013-03-23  Dmitry Gutov  <address@hidden>
 
        * emacs-lisp/lisp-mode.el (emacs-lisp-docstring-fill-column): Make

=== modified file 'lisp/emacs-lisp/edebug.el'
--- a/lisp/emacs-lisp/edebug.el 2013-01-11 23:08:55 +0000
+++ b/lisp/emacs-lisp/edebug.el 2013-03-24 06:42:25 +0000
@@ -3810,7 +3810,10 @@
   ;; If the user kills the buffer in which edebug is currently active,
   ;; exit to top level, because the edebug command loop can't usefully
   ;; continue running in such a case.
-  (add-hook 'kill-buffer-hook 'edebug-kill-buffer nil t)
+  ;;
+  ;; Append `edebug-kill-buffer' to the hook to avoid interfering with
+  ;; other entries that are ungarded against deleted buffer.
+  (add-hook 'kill-buffer-hook 'edebug-kill-buffer t t)
   (use-local-map edebug-mode-map))
 
 (defun edebug-kill-buffer ()

=== modified file 'lisp/files.el'
--- a/lisp/files.el     2013-03-04 07:37:30 +0000
+++ b/lisp/files.el     2013-03-24 06:42:25 +0000
@@ -1516,7 +1516,10 @@
 (defvar kill-buffer-hook nil
   "Hook run when a buffer is killed.
 The buffer being killed is current while the hook is running.
-See `kill-buffer'.")
+See `kill-buffer'.
+
+Note: Be careful with let-binding this hook considering it is
+frequently used for cleanup.")
 
 (defun find-alternate-file (filename &optional wildcards)
   "Find file FILENAME, select its buffer, kill previous buffer.

=== modified file 'lisp/nxml/rng-valid.el'
--- a/lisp/nxml/rng-valid.el    2013-03-23 02:21:25 +0000
+++ b/lisp/nxml/rng-valid.el    2013-03-24 06:42:25 +0000
@@ -433,24 +433,26 @@
 ;; validation process down.
 
 (defun rng-validate-while-idle (buffer)
-  (with-current-buffer buffer
-    (if rng-validate-mode
-       (if (let ((rng-validate-display-point (point))
-                 (rng-validate-display-modified-p (buffer-modified-p)))
-             (rng-do-some-validation 'rng-validate-while-idle-continue-p))
-           (force-mode-line-update)
-         (rng-validate-done))
-      ;; must have done kill-all-local-variables
-      (rng-kill-timers))))
+  (when (buffer-live-p buffer)         ; bug#13999
+    (with-current-buffer buffer
+      (if rng-validate-mode
+         (if (let ((rng-validate-display-point (point))
+                   (rng-validate-display-modified-p (buffer-modified-p)))
+               (rng-do-some-validation 'rng-validate-while-idle-continue-p))
+             (force-mode-line-update)
+           (rng-validate-done))
+       ;; must have done kill-all-local-variables
+       (rng-kill-timers)))))
 
 (defun rng-validate-quick-while-idle (buffer)
-  (with-current-buffer buffer
-    (if rng-validate-mode
-       (if (rng-do-some-validation)
-           (force-mode-line-update)
-         (rng-validate-done))
-      ;; must have done kill-all-local-variables
-      (rng-kill-timers))))
+  (when (buffer-live-p buffer)         ; bug#13999
+    (with-current-buffer buffer
+      (if rng-validate-mode
+         (if (rng-do-some-validation)
+             (force-mode-line-update)
+           (rng-validate-done))
+       ;; must have done kill-all-local-variables
+       (rng-kill-timers)))))
 
 (defun rng-validate-done ()
   (when (or (not (current-message))


reply via email to

[Prev in Thread] Current Thread [Next in Thread]