Function: tab-line-select-tab-buffer

tab-line-select-tab-buffer is a byte-compiled function defined in tab-line.el.gz.

Signature

(tab-line-select-tab-buffer BUFFER &optional WINDOW)

Source Code

;; Defined in /usr/src/emacs/lisp/tab-line.el.gz
(defun tab-line-select-tab-buffer (buffer &optional window)
  (if (eq tab-line-tabs-function #'tab-line-tabs-window-buffers)
      (let* ((window-buffer (window-buffer window))
             (next-buffers (seq-remove (lambda (b) (eq b window-buffer))
                                       (window-next-buffers window)))
             (prev-buffers (seq-remove (lambda (b) (eq b window-buffer))
                                       (mapcar #'car (window-prev-buffers window))))
             ;; Remove next-buffers from prev-buffers
             (prev-buffers (seq-difference prev-buffers next-buffers)))
        (cond
         ((memq buffer next-buffers)
          (dotimes (_ (1+ (seq-position next-buffers buffer)))
            (switch-to-next-buffer window)))
         ((memq buffer prev-buffers)
          (dotimes (_ (1+ (seq-position prev-buffers buffer)))
            (switch-to-prev-buffer window)))))
    (with-selected-window window
      (let ((switch-to-buffer-obey-display-actions nil))
        (switch-to-buffer buffer)))))