Function: erc-track--switch-buffer
erc-track--switch-buffer is a byte-compiled function defined in
erc-track.el.gz.
Signature
(erc-track--switch-buffer FUN ARG)
Source Code
;; Defined in /usr/src/emacs/lisp/erc/erc-track.el.gz
(defun erc-track--switch-buffer (fun arg)
(if (not erc-track-mode)
(message (concat "Enable the ERC track module if you want to use the"
" tracking minor mode"))
(cond (erc-modified-channels-alist
;; if we're not in erc-mode, set this buffer to return to
(unless (buffer-match-p (cons 'or
erc-track--switch-fallback-blockers)
(current-buffer))
(setq erc-track-last-non-erc-buffer (current-buffer)))
;; and jump to the next active channel
(if-let* ((buf (erc-track-get-active-buffer arg))
((buffer-live-p buf)))
(funcall fun buf)
(erc-modified-channels-update)
(erc-track--switch-buffer fun arg)))
;; if no active channels, switch back to what we were doing before
((and erc-track-last-non-erc-buffer
erc-track-switch-from-erc
(buffer-live-p erc-track-last-non-erc-buffer))
(funcall fun erc-track-last-non-erc-buffer)))))