emacs-diffs
[Top][All Lists]
Advanced

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

master eddb003: Fix behavior when switch-to-prev-buffer-skip is a functi


From: Martin Rudalics
Subject: master eddb003: Fix behavior when switch-to-prev-buffer-skip is a function (Bug#49275)
Date: Wed, 18 Aug 2021 03:17:13 -0400 (EDT)

branch: master
commit eddb003f30e48bdbc0b9cb774f261b1558912167
Author: pillule <pillule@riseup.net>
Commit: Martin Rudalics <rudalics@gmx.at>

    Fix behavior when switch-to-prev-buffer-skip is a function (Bug#49275)
    
    * lisp/window.el (switch-to-prev-buffer)
    (switch-to-next-buffer): More correctly handle cases where
    'switch-to-prev-buffer-skip' is a function.
---
 lisp/window.el | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/lisp/window.el b/lisp/window.el
index 0346397..e14d472 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -4721,8 +4721,8 @@ This function is called by `prev-buffer'."
               window new-buffer (nth 1 entry) (nth 2 entry))
              (throw 'found t)))))
 
-      (when skipped
-        ;; Show first skipped buffer.
+      (when (and skipped (not (functionp switch-to-prev-buffer-skip)))
+        ;; Show first skipped buffer, unless skip was a function.
        (setq new-buffer skipped)
        (set-window-buffer-start-and-point window new-buffer)))
 
@@ -4831,6 +4831,7 @@ This function is called by `next-buffer'."
       ;; nreverse here!)
       (dolist (entry (reverse (window-prev-buffers window)))
        (when (and (not (eq new-buffer (car entry)))
+                   (not (eq old-buffer (car entry)))
                    (setq new-buffer (car entry))
                   (or (buffer-live-p new-buffer)
                       (not (setq killed-buffers
@@ -4842,8 +4843,8 @@ This function is called by `next-buffer'."
             window new-buffer (nth 1 entry) (nth 2 entry))
            (throw 'found t))))
 
-      (when skipped
-        ;; Show first skipped buffer.
+      (when (and skipped (not (functionp switch-to-prev-buffer-skip)))
+        ;; Show first skipped buffer, unless skip was a function.
        (setq new-buffer skipped)
        (set-window-buffer-start-and-point window new-buffer)))
 



reply via email to

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