emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/workroom f3b7bc504f 1/2: Fix #3: Allow changing fallback b


From: ELPA Syncer
Subject: [nongnu] elpa/workroom f3b7bc504f 1/2: Fix #3: Allow changing fallback buffer
Date: Sun, 22 Jan 2023 07:02:16 -0500 (EST)

branch: elpa/workroom
commit f3b7bc504f9d3e596e05315adb8252b27a2bb4ee
Author: Akib Azmain Turja <akib@disroot.org>
Commit: Akib Azmain Turja <akib@disroot.org>

    Fix #3: Allow changing fallback buffer
---
 workroom.el | 49 +++++++++++++++++++++++++++++++------------------
 1 file changed, 31 insertions(+), 18 deletions(-)

diff --git a/workroom.el b/workroom.el
index 65ebd7635c..4f533c37e4 100644
--- a/workroom.el
+++ b/workroom.el
@@ -139,6 +139,10 @@ name can be manually changed with `workroom-rename'."
   "Name of the default view."
   :type 'string)
 
+(defcustom workroom-default-buffer-name "*scratch*"
+  "Name of the buffer used as the default fallback buffer."
+  :type 'string)
+
 (defcustom workroom-buffer-handler-alist
   '((bookmark :encoder workroom-encode-buffer-bookmark
               :decoder workroom-decode-buffer-bookmark))
@@ -678,14 +682,17 @@ If WRITABLE, return a writable object."
                    (when (stringp buffer)
                      (setq writable t))
                    ;; If the buffer shown in the window is dead,
-                   ;; replace it with the `*scratch*' buffer, with the
+                   ;; replace it with the fallback buffer, with the
                    ;; point at the very beginning.
                    (unless (buffer-live-p (get-buffer buffer))
-                     (let ((scratch (get-buffer-create "*scratch*")))
-                       (with-current-buffer scratch
+                     (let ((fallback (get-buffer-create
+                                      workroom-default-buffer-name)))
+                       (with-current-buffer fallback
                          ;; Change buffer.
                          (setf (car (alist-get 'buffer (cdr entry)))
-                               (if writable "*scratch*" scratch))
+                               (if writable
+                                   (buffer-name fallback)
+                                 fallback))
                          ;; Set point.
                          (setf (alist-get
                                 'point
@@ -703,7 +710,7 @@ If WRITABLE, return a writable object."
                                    (point-min)
                                  (copy-marker (point-min))))))))
                  ;; Remove references to dead buffers with
-                 ;; `*scratch*'.
+                 ;; the fallback buffer.
                  (let ((prev (alist-get 'prev-buffers (cdr entry))))
                    (setf
                     (alist-get 'prev-buffers (cdr entry))
@@ -711,14 +718,15 @@ If WRITABLE, return a writable object."
                      (lambda (entry)
                        (if (buffer-live-p (get-buffer (car entry)))
                            entry
-                         (let ((scratch (get-buffer-create
-                                         "*scratch*")))
-                           (with-current-buffer scratch
+                         (let ((fallback
+                                (get-buffer-create
+                                 workroom-default-buffer-name)))
+                           (with-current-buffer fallback
                              (if writable
-                                 (list "*scratch*" (point-min)
-                                       (point-min))
+                                 (list (buffer-name fallback)
+                                       (point-min) (point-min))
                                (list
-                                scratch
+                                fallback
                                 (copy-marker (point-min))
                                 (copy-marker
                                  (point-min)
@@ -730,9 +738,12 @@ If WRITABLE, return a writable object."
                           (lambda (buffer)
                             (if (buffer-live-p (get-buffer buffer))
                                 buffer
-                              (let ((buffer (get-buffer-create
-                                             "*scratch*")))
-                                (if writable "*scratch*" buffer))))
+                              (let ((buffer
+                                     (get-buffer-create
+                                      workroom-default-buffer-name)))
+                                (if writable
+                                    (buffer-name buffer)
+                                  buffer))))
                           next))))
                entry)
               ;; Recurse.
@@ -745,7 +756,7 @@ If WRITABLE, return a writable object."
     (unless workroom--dont-clear-new-view
       (delete-other-windows)
       (set-window-dedicated-p (selected-window) nil)
-      (switch-to-buffer "*scratch*"))))
+      (switch-to-buffer workroom-default-buffer-name))))
 
 (defun workroom--barf-unless-enabled ()
   "Signal `user-error' unless Workroom mode is enabled."
@@ -1249,9 +1260,11 @@ ACTION and ARGS are also described there."
   (pcase (cons action args)
     ('(:initialize)
      (setf (workroom-buffer-manager-data room)
-           (list (if (fboundp 'get-scratch-buffer-create)
-                     (get-scratch-buffer-create)
-                   (get-buffer-create "*scratch*")))))
+           (list
+            (if (and (equal workroom-default-buffer-name "*scratch*")
+                     (fboundp 'get-scratch-buffer-create))
+                (get-scratch-buffer-create)
+              (get-buffer-create workroom-default-buffer-name)))))
     ('(:list-buffers)
      (workroom-buffer-manager-data room))
     (`(:add-buffer ,buffer)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]