]> git.eshelyaron.com Git - emacs.git/commitdiff
server-execute: Initialize the *scratch* buffer
authorSean Whitton <spwhitton@spwhitton.name>
Wed, 4 May 2022 01:08:14 +0000 (18:08 -0700)
committerSean Whitton <spwhitton@spwhitton.name>
Wed, 4 May 2022 01:09:01 +0000 (18:09 -0700)
* lisp/server.el: Require subr-x when compiling.
(server-execute): Initialize the *scratch* buffer in the same way that
the scratch-buffer command does, for consistency.

lisp/server.el

index 763cf27f7aca71d6f67e40041fee4b80d6476d02..fc6991df5f10b17119facb407b1e408d9629ce48 100644 (file)
@@ -82,7 +82,9 @@
 
 ;;; Code:
 
-(eval-when-compile (require 'cl-lib))
+(eval-when-compile
+  (require 'cl-lib)
+  (require 'subr-x))
 
 (defgroup server nil
   "Emacs running as a server process."
@@ -1366,9 +1368,14 @@ The following commands are accepted by the client:
                          (find-file-noselect initial-buffer-choice))
                         ((functionp initial-buffer-choice)
                          (funcall initial-buffer-choice)))))
-             (switch-to-buffer
-              (if (buffer-live-p buf) buf (get-buffer-create "*scratch*"))
-              'norecord)))
+              (if (buffer-live-p buf)
+                  (switch-to-buffer buf 'norecord)
+                (if-let ((scratch (get-buffer "*scratch*")))
+                    (switch-to-buffer scratch 'norecord)
+                  (switch-to-buffer (get-buffer-create "*scratch*") 'norecord)
+                  (when initial-scratch-message
+                    (insert initial-scratch-message))
+                  (funcall initial-major-mode)))))
 
           ;; Delete the client if necessary.
           (cond