From 50904a7a19768dfd02e19a1669ecf5bc9be1a155 Mon Sep 17 00:00:00 2001 From: Yikai Zhao Date: Tue, 11 Feb 2025 22:04:56 +0800 Subject: [PATCH 1/2] persp-reactive-buffers: preserve recent visited order of buffers Previously, after switching to a perspective, the recent-visit order of buffers will be changed because `persp-reactive-buffers` revisits buffers based on `persp-current-buffers` which is in a fixed order. With this PR, `persp-reactive-buffers` revisits the buffers based on `(buffer-list)` --- perspective.el | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/perspective.el b/perspective.el index d85f97d..7265f18 100644 --- a/perspective.el +++ b/perspective.el @@ -663,11 +663,11 @@ buffer called \"*scratch* (NAME)\"." Returns BUFFERS with all non-living buffers removed. See also `other-buffer'." - (cl-loop for buf in (reverse buffers) - when (buffer-live-p buf) - collect buf into living-buffers + (cl-loop for buf in (reverse (buffer-list)) + when (member buf buffers) + collect buf into result-buffers and do (switch-to-buffer buf) - finally return (nreverse living-buffers))) + finally return result-buffers)) (defun persp-set-local-variables (vars) "Set the local variables given in VARS. From 3ebadf52cf749f8eb2d6bf5e556b9d1ab30c21b4 Mon Sep 17 00:00:00 2001 From: Yikai Zhao Date: Wed, 12 Feb 2025 09:54:27 +0800 Subject: [PATCH 2/2] check buffer-live-p --- perspective.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perspective.el b/perspective.el index 7265f18..be4b5de 100644 --- a/perspective.el +++ b/perspective.el @@ -664,7 +664,7 @@ Returns BUFFERS with all non-living buffers removed. See also `other-buffer'." (cl-loop for buf in (reverse (buffer-list)) - when (member buf buffers) + when (and (buffer-live-p buf) (member buf buffers)) collect buf into result-buffers and do (switch-to-buffer buf) finally return result-buffers))