[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))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r112125: * lisp/files.el (kill-buffer-hook): Doc fix.,
Leo Liu <=