diff options
| author | Leo Liu | 2013-03-24 14:42:25 +0800 |
|---|---|---|
| committer | Leo Liu | 2013-03-24 14:42:25 +0800 |
| commit | 7b0e2f853fcd88c58715fd159923d50dfdeb9cba (patch) | |
| tree | 43c47e8af99b49d98f2fd1443a8641c37a225908 | |
| parent | 2bf7d27acd741bf870d6ca0c74dbed7b7260b5ad (diff) | |
| download | emacs-7b0e2f853fcd88c58715fd159923d50dfdeb9cba.tar.gz emacs-7b0e2f853fcd88c58715fd159923d50dfdeb9cba.zip | |
* 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
| -rw-r--r-- | lisp/ChangeLog | 11 | ||||
| -rw-r--r-- | lisp/emacs-lisp/edebug.el | 5 | ||||
| -rw-r--r-- | lisp/files.el | 5 | ||||
| -rw-r--r-- | lisp/nxml/rng-valid.el | 34 |
4 files changed, 37 insertions, 18 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index c1124f51a8e..68a9575bcbe 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,14 @@ | |||
| 1 | 2013-03-24 Leo Liu <sdl.web@gmail.com> | ||
| 2 | |||
| 3 | * nxml/rng-valid.el (rng-validate-while-idle) | ||
| 4 | (rng-validate-quick-while-idle): Guard against deleted buffer. | ||
| 5 | (Bug#13999) | ||
| 6 | |||
| 7 | * emacs-lisp/edebug.el (edebug-mode): Make sure edebug-kill-buffer | ||
| 8 | is the last entry in kill-buffer-hook. | ||
| 9 | |||
| 10 | * files.el (kill-buffer-hook): Doc fix. | ||
| 11 | |||
| 1 | 2013-03-23 Dmitry Gutov <dgutov@yandex.ru> | 12 | 2013-03-23 Dmitry Gutov <dgutov@yandex.ru> |
| 2 | 13 | ||
| 3 | * emacs-lisp/lisp-mode.el (emacs-lisp-docstring-fill-column): Make | 14 | * emacs-lisp/lisp-mode.el (emacs-lisp-docstring-fill-column): Make |
diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el index 52e12013fd3..5a6fd4a0a22 100644 --- a/lisp/emacs-lisp/edebug.el +++ b/lisp/emacs-lisp/edebug.el | |||
| @@ -3810,7 +3810,10 @@ Options: | |||
| 3810 | ;; If the user kills the buffer in which edebug is currently active, | 3810 | ;; If the user kills the buffer in which edebug is currently active, |
| 3811 | ;; exit to top level, because the edebug command loop can't usefully | 3811 | ;; exit to top level, because the edebug command loop can't usefully |
| 3812 | ;; continue running in such a case. | 3812 | ;; continue running in such a case. |
| 3813 | (add-hook 'kill-buffer-hook 'edebug-kill-buffer nil t) | 3813 | ;; |
| 3814 | ;; Append `edebug-kill-buffer' to the hook to avoid interfering with | ||
| 3815 | ;; other entries that are ungarded against deleted buffer. | ||
| 3816 | (add-hook 'kill-buffer-hook 'edebug-kill-buffer t t) | ||
| 3814 | (use-local-map edebug-mode-map)) | 3817 | (use-local-map edebug-mode-map)) |
| 3815 | 3818 | ||
| 3816 | (defun edebug-kill-buffer () | 3819 | (defun edebug-kill-buffer () |
diff --git a/lisp/files.el b/lisp/files.el index 9da9ac6fd53..06958622d14 100644 --- a/lisp/files.el +++ b/lisp/files.el | |||
| @@ -1516,7 +1516,10 @@ expand wildcards (if any) and replace the file with multiple files." | |||
| 1516 | (defvar kill-buffer-hook nil | 1516 | (defvar kill-buffer-hook nil |
| 1517 | "Hook run when a buffer is killed. | 1517 | "Hook run when a buffer is killed. |
| 1518 | The buffer being killed is current while the hook is running. | 1518 | The buffer being killed is current while the hook is running. |
| 1519 | See `kill-buffer'.") | 1519 | See `kill-buffer'. |
| 1520 | |||
| 1521 | Note: Be careful with let-binding this hook considering it is | ||
| 1522 | frequently used for cleanup.") | ||
| 1520 | 1523 | ||
| 1521 | (defun find-alternate-file (filename &optional wildcards) | 1524 | (defun find-alternate-file (filename &optional wildcards) |
| 1522 | "Find file FILENAME, select its buffer, kill previous buffer. | 1525 | "Find file FILENAME, select its buffer, kill previous buffer. |
diff --git a/lisp/nxml/rng-valid.el b/lisp/nxml/rng-valid.el index de18c581421..e1140980813 100644 --- a/lisp/nxml/rng-valid.el +++ b/lisp/nxml/rng-valid.el | |||
| @@ -433,24 +433,26 @@ The schema is set like `rng-auto-set-schema'." | |||
| 433 | ;; validation process down. | 433 | ;; validation process down. |
| 434 | 434 | ||
| 435 | (defun rng-validate-while-idle (buffer) | 435 | (defun rng-validate-while-idle (buffer) |
| 436 | (with-current-buffer buffer | 436 | (when (buffer-live-p buffer) ; bug#13999 |
| 437 | (if rng-validate-mode | 437 | (with-current-buffer buffer |
| 438 | (if (let ((rng-validate-display-point (point)) | 438 | (if rng-validate-mode |
| 439 | (rng-validate-display-modified-p (buffer-modified-p))) | 439 | (if (let ((rng-validate-display-point (point)) |
| 440 | (rng-do-some-validation 'rng-validate-while-idle-continue-p)) | 440 | (rng-validate-display-modified-p (buffer-modified-p))) |
| 441 | (force-mode-line-update) | 441 | (rng-do-some-validation 'rng-validate-while-idle-continue-p)) |
| 442 | (rng-validate-done)) | 442 | (force-mode-line-update) |
| 443 | ;; must have done kill-all-local-variables | 443 | (rng-validate-done)) |
| 444 | (rng-kill-timers)))) | 444 | ;; must have done kill-all-local-variables |
| 445 | (rng-kill-timers))))) | ||
| 445 | 446 | ||
| 446 | (defun rng-validate-quick-while-idle (buffer) | 447 | (defun rng-validate-quick-while-idle (buffer) |
| 447 | (with-current-buffer buffer | 448 | (when (buffer-live-p buffer) ; bug#13999 |
| 448 | (if rng-validate-mode | 449 | (with-current-buffer buffer |
| 449 | (if (rng-do-some-validation) | 450 | (if rng-validate-mode |
| 450 | (force-mode-line-update) | 451 | (if (rng-do-some-validation) |
| 451 | (rng-validate-done)) | 452 | (force-mode-line-update) |
| 452 | ;; must have done kill-all-local-variables | 453 | (rng-validate-done)) |
| 453 | (rng-kill-timers)))) | 454 | ;; must have done kill-all-local-variables |
| 455 | (rng-kill-timers))))) | ||
| 454 | 456 | ||
| 455 | (defun rng-validate-done () | 457 | (defun rng-validate-done () |
| 456 | (when (or (not (current-message)) | 458 | (when (or (not (current-message)) |