Function: gnus-handle-ephemeral-exit
gnus-handle-ephemeral-exit is a byte-compiled function defined in
gnus-sum.el.gz.
Signature
(gnus-handle-ephemeral-exit QUIT-CONFIG)
Documentation
Handle movement when leaving an ephemeral group.
The state which existed when entering the ephemeral is reset.
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/gnus-sum.el.gz
(defun gnus-handle-ephemeral-exit (quit-config)
"Handle movement when leaving an ephemeral group.
The state which existed when entering the ephemeral is reset."
(if (not (buffer-live-p (car quit-config)))
(when (gnus-buffer-live-p gnus-group-buffer)
(gnus-configure-windows 'group 'force))
(set-buffer (car quit-config))
(unless (eq (cdr quit-config) 'group)
(setq gnus-current-select-method
(gnus-find-method-for-group gnus-newsgroup-name)))
(cond ((derived-mode-p 'gnus-summary-mode)
(gnus-set-global-variables))
((derived-mode-p 'gnus-article-mode)
(save-current-buffer
;; The `gnus-summary-buffer' variable may point
;; to the old summary buffer when using a single
;; article buffer.
(unless (gnus-buffer-live-p gnus-summary-buffer)
(set-buffer gnus-group-buffer))
(set-buffer gnus-summary-buffer)
(gnus-set-global-variables))))
(if (or (eq (cdr quit-config) 'article)
(eq (cdr quit-config) 'pick))
(if (and (boundp 'gnus-pick-mode) (symbol-value 'gnus-pick-mode))
(gnus-configure-windows 'pick 'force)
(gnus-configure-windows (cdr quit-config) 'force))
(gnus-configure-windows (cdr quit-config) 'force))
(when (derived-mode-p 'gnus-summary-mode)
(if (memq gnus-auto-select-on-ephemeral-exit '(next-noselect
next-unread-noselect))
(when (zerop (cond ((eq gnus-auto-select-on-ephemeral-exit
'next-noselect)
(gnus-summary-next-subject 1 nil t))
((eq gnus-auto-select-on-ephemeral-exit
'next-unread-noselect)
(gnus-summary-next-subject 1 t t))))
;; Hide the article buffer which displays the article different
;; from the one that the cursor points to in the summary buffer.
(gnus-configure-windows 'summary 'force))
(cond ((eq gnus-auto-select-on-ephemeral-exit 'next)
(gnus-summary-next-subject 1))
((eq gnus-auto-select-on-ephemeral-exit 'next-unread)
(gnus-summary-next-subject 1 t))))
(gnus-summary-recenter)
(gnus-summary-position-point))))