Function: gnus-browse-toggle-subscription
gnus-browse-toggle-subscription is a byte-compiled function defined in
gnus-srvr.el.gz.
Signature
(gnus-browse-toggle-subscription)
Documentation
Toggle subscription of the current group in the browse buffer.
Aliases
gnus-browse-unsubscribe-group (obsolete since 28.1)
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/gnus-srvr.el.gz
(defun gnus-browse-toggle-subscription ()
"Toggle subscription of the current group in the browse buffer."
(let ((sub nil)
(buffer-read-only nil)
group)
(save-excursion
(beginning-of-line)
;; If this group it killed, then we want to subscribe it.
(unless (eq (char-after) ? )
(setq sub t))
(setq group (gnus-browse-group-name))
(when (gnus-server-equal gnus-browse-current-method "native")
(setq group (gnus-group-real-name group)))
(if sub
(progn
;; Make sure the group has been properly removed before we
;; subscribe to it.
(if (gnus-ephemeral-group-p group)
(gnus-kill-ephemeral-group group))
(let ((entry (gnus-group-entry group)))
(if entry
;; Just change the subscription level if it is an
;; unsubscribed group.
(gnus-group-change-level entry
gnus-level-default-subscribed)
;; If it is a killed group or a zombie, feed it to the
;; mechanism for new group subscription.
(gnus-call-subscribe-functions
gnus-browse-subscribe-newsgroup-method
group)
(gnus-request-update-group-status group 'subscribe)))
(delete-char 1)
(insert (let ((lvl (gnus-group-level group)))
(cond
((< lvl gnus-level-unsubscribed) ? )
((< lvl gnus-level-zombie) ?U)
((< lvl gnus-level-killed) ?Z)
(t ?K)))))
(gnus-group-change-level
group gnus-level-unsubscribed gnus-level-default-subscribed)
(delete-char 1)
(insert ?U)))
t))