;;; 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."
(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