Rewrite `b/*scratch*' function in init file
authorAmin Bandali <bandali@kelar.org>
Fri, 20 May 2022 01:42:23 +0000 (21:42 -0400)
committerAmin Bandali <bandali@kelar.org>
Fri, 20 May 2022 02:20:04 +0000 (22:20 -0400)
* .emacs.d/init.el (b/*scratch*): Rewrite to use the new
`get-scratch-buffer-create' function in emacs.git master branch if
available, otherwise use the old `startup--get-buffer-create-scratch'.

.emacs.d/init.el

index 0fd70e5..459dbe8 100644 (file)
@@ -812,11 +812,10 @@ Effectively a very simple light/dark theme toggle switch."
 (defun b/*scratch* ()
   "Switch to `*scratch*' buffer, creating it if it does not exist."
   (interactive)
 (defun b/*scratch* ()
   "Switch to `*scratch*' buffer, creating it if it does not exist."
   (interactive)
-  (switch-to-buffer
-   (or (get-buffer "*scratch*")
-       (with-current-buffer (get-buffer-create "*scratch*")
-         (set-buffer-major-mode (current-buffer))
-         (current-buffer)))))
+  (let ((fun (if (functionp #'get-scratch-buffer-create)
+                 #'get-scratch-buffer-create ; (version<= "29" emacs-version)
+               #'startup--get-buffer-create-scratch))) ; (version< emacs-version "29")
+    (switch-to-buffer (funcall fun))))
 (global-set-key (kbd "C-c s") #'b/*scratch*)
 
 ;; ,----
 (global-set-key (kbd "C-c s") #'b/*scratch*)
 
 ;; ,----