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)))))