1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-30 04:10:54 -08:00

* 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.

Fixes: debbugs:13999
This commit is contained in:
Leo Liu 2013-03-24 14:42:25 +08:00
parent 2bf7d27acd
commit 7b0e2f853f
4 changed files with 37 additions and 18 deletions

View file

@ -1,3 +1,14 @@
2013-03-24 Leo Liu <sdl.web@gmail.com>
* 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 <dgutov@yandex.ru>
* emacs-lisp/lisp-mode.el (emacs-lisp-docstring-fill-column): Make

View file

@ -3810,7 +3810,10 @@ Options:
;; 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 ()

View file

@ -1516,7 +1516,10 @@ expand wildcards (if any) and replace the file with multiple files."
(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.

View file

@ -433,24 +433,26 @@ The schema is set like `rng-auto-set-schema'."
;; 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))