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

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

[nongnu] elpa/workroom 23ff6f463e 53/74: Don't fail to restore if the wo


From: ELPA Syncer
Subject: [nongnu] elpa/workroom 23ff6f463e 53/74: Don't fail to restore if the workroom project is non-existant
Date: Sun, 27 Nov 2022 16:03:28 -0500 (EST)

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

    Don't fail to restore if the workroom project is non-existant
---
 workroom.el | 26 +++++++++++++++++---------
 1 file changed, 17 insertions(+), 9 deletions(-)

diff --git a/workroom.el b/workroom.el
index dce77dadcc..7da26c6d8b 100644
--- a/workroom.el
+++ b/workroom.el
@@ -1913,15 +1913,23 @@ argument while setting as the buffer manager, PROJECT, 
the project."
      (cl-destructuring-bind (data buffers) args
        (let ((project (project-current
                        nil (plist-get data :project-root))))
-         (setf (workroom-buffer-manager-data room)
-               `( :project ,project
-                  :whitelist ,(cl-set-difference
-                               buffers (project-buffers project))
-                  :blacklist ,(cl-delete-if
-                               #'null
-                               (mapcar
-                                #'get-buffer
-                                (plist-get data :blacklist))))))))))
+         (if project
+             (setf (workroom-buffer-manager-data room)
+                   `( :project ,project
+                      :whitelist ,(cl-set-difference
+                                   buffers (project-buffers project))
+                      :blacklist ,(cl-delete-if
+                                   #'null
+                                   (mapcar
+                                    #'get-buffer
+                                    (plist-get data :blacklist)))))
+           ;; The project no longer exists, so hand over the buffers
+           ;; to the plain default manager.
+           (workroom-set-buffer-manager-function
+            room #'workroom--default-buffer-manager
+            'do-not-initialize)
+           (workroom--default-buffer-manager
+            room :load data buffers)))))))
 
 (defun workroom--project-name (project)
   "Return a name for project PROJECT."



reply via email to

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