diff options
| author | Eli Zaretskii | 2022-12-16 16:29:51 +0200 |
|---|---|---|
| committer | Eli Zaretskii | 2022-12-16 16:29:51 +0200 |
| commit | 89f54e81576d9d9e35b67e7c5831495c4bb444c5 (patch) | |
| tree | b9782b823780065473c9b5660e6f8c3ea4554c17 /src/buffer.c | |
| parent | 1b9ca1e5e646cdd678f0d29ef5e833c8ff2298c5 (diff) | |
| download | emacs-89f54e81576d9d9e35b67e7c5831495c4bb444c5.tar.gz emacs-89f54e81576d9d9e35b67e7c5831495c4bb444c5.zip | |
A better fix for bug#60096
* lisp/startup.el (initial-scratch-message):
* lisp/simple.el (get-scratch-buffer-create): Revert last changes.
* src/window.c (Fset_window_configuration): Force recalculation of
Vwindow_list after restoring the windows.
* src/buffer.c (other_buffer_safely): Make sure we always return a
valid buffer, even if 'get-scratch-buffer-create' signals an
error.
Diffstat (limited to 'src/buffer.c')
| -rw-r--r-- | src/buffer.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/buffer.c b/src/buffer.c index 9a30faa0e1a..443f90ff894 100644 --- a/src/buffer.c +++ b/src/buffer.c | |||
| @@ -1747,7 +1747,18 @@ other_buffer_safely (Lisp_Object buffer) | |||
| 1747 | if (candidate_buffer (buf, buffer)) | 1747 | if (candidate_buffer (buf, buffer)) |
| 1748 | return buf; | 1748 | return buf; |
| 1749 | 1749 | ||
| 1750 | return safe_call (1, Qget_scratch_buffer_create); | 1750 | /* This function must return a valid buffer, since it is frequently |
| 1751 | our last line of defense in the face of the expected buffers | ||
| 1752 | becoming dead under our feet. safe_call below could return nil | ||
| 1753 | if recreating *scratch* in Lisp, which does some fancy stuff, | ||
| 1754 | signals an error in some weird use case. */ | ||
| 1755 | buf = safe_call (1, Qget_scratch_buffer_create); | ||
| 1756 | if (NILP (buf)) | ||
| 1757 | { | ||
| 1758 | AUTO_STRING (scratch, "*scratch*"); | ||
| 1759 | buf = Fget_buffer_create (scratch, Qnil); | ||
| 1760 | } | ||
| 1761 | return buf; | ||
| 1751 | } | 1762 | } |
| 1752 | 1763 | ||
| 1753 | DEFUN ("buffer-enable-undo", Fbuffer_enable_undo, Sbuffer_enable_undo, | 1764 | DEFUN ("buffer-enable-undo", Fbuffer_enable_undo, Sbuffer_enable_undo, |