diff --git a/modules/ui/workspaces/config.el b/modules/ui/workspaces/config.el index e2fb47a7a..56431578e 100644 --- a/modules/ui/workspaces/config.el +++ b/modules/ui/workspaces/config.el @@ -197,7 +197,7 @@ stored in `persp-save-dir'.") :predicate #'buffer-base-buffer :save-function (lambda (buf tag vars) (list tag (buffer-name buf) vars - (buffer-name (buffer-base-buffer)))) + (buffer-name (buffer-base-buffer buf)))) :load-function (lambda (savelist &rest _rest) (cl-destructuring-bind (buf-name _vars base-buf-name &rest _) (cdr savelist) @@ -206,12 +206,10 @@ stored in `persp-save-dir'.") nil))) (defun +workspaces|reload-indirect-buffers (&rest _) (dolist (ibc +workspaces--indirect-buffers-to-restore) - (let* ((nbn (car ibc)) - (bbn (cdr ibc)) - (bb (get-buffer bbn))) - (when bb - (when (get-buffer nbn) - (setq nbn (generate-new-buffer-name nbn))) - (make-indirect-buffer bb nbn t)))) + (cl-destructuring-bind (buffer-name . base-buffer-name) ibc + (when (buffer-live-p (get-buffer base-buffer-name)) + (when (get-buffer buffer-name) + (setq buffer-name (generate-new-buffer-name buffer-name))) + (make-indirect-buffer bb buffer-name t)))) (setq +workspaces--indirect-buffers-to-restore nil)) (add-hook 'persp-after-load-state-functions #'+workspaces|reload-indirect-buffers))