From 4dc1abebf93ec8bc60eacd830eb333355980ab1e Mon Sep 17 00:00:00 2001 From: Martin Rudalics Date: Wed, 31 Dec 2008 15:44:25 +0000 Subject: [PATCH] (last-buffer): Don't set major mode of *scratch* if that buffer exists already. Rewrite doc-string. --- lisp/ChangeLog | 5 +++++ lisp/simple.el | 19 +++++++++++-------- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index afd073f1216..fa46fdcf7d3 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2008-12-31 Martin Rudalics + + * simple.el (last-buffer): Don't set major mode of *scratch* if + that buffer exists already. Rewrite doc-string. + 2008-12-31 Andreas Schwab * tar-mode.el (tar-mode): Set write-contents-functions instead of diff --git a/lisp/simple.el b/lisp/simple.el index 386de773849..c5d036b1d9a 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -78,19 +78,22 @@ If BUFFER is non-nil, ignore occurrences of that buffer in LIST." (car list))) (defun last-buffer (&optional buffer visible-ok frame) - "Return the last non-hidden displayable buffer in the buffer list. -If BUFFER is non-nil, last-buffer will ignore that buffer. + "Return the last buffer in FRAME's buffer list. +If BUFFER is the last buffer, return the preceding buffer instead. Buffers not visible in windows are preferred to visible buffers, unless optional argument VISIBLE-OK is non-nil. -If the optional third argument FRAME is non-nil, use that frame's -buffer list instead of the selected frame's buffer list. -If no other buffer exists, the buffer `*scratch*' is returned." +Optional third argument FRAME nil or omitted means use the +selected frame's buffer list. +If no such buffer exists, return the buffer `*scratch*', creating +it if necessary." (setq frame (or frame (selected-frame))) (or (get-next-valid-buffer (nreverse (buffer-list frame)) buffer visible-ok frame) - (progn - (set-buffer-major-mode (get-buffer-create "*scratch*")) - (get-buffer "*scratch*")))) + (get-buffer "*scratch*") + (let ((scratch (get-buffer-create "*scratch*"))) + (set-buffer-major-mode scratch) + scratch))) + (defun next-buffer () "Switch to the next buffer in cyclic order." (interactive) -- 2.39.2