Function: gnus-summary-mark-article
gnus-summary-mark-article is a byte-compiled function defined in
gnus-sum.el.gz.
Signature
(gnus-summary-mark-article &optional ARTICLE MARK NO-EXPIRE)
Documentation
Mark ARTICLE with MARK. MARK can be any character.
Four MARK strings are reserved: ? (unread), ?! (ticked),
?? (dormant) and ?E (expirable).
If MARK is nil, then the default character ?r is used.
If ARTICLE is nil, then the article on the current line will be
marked.
If NO-EXPIRE, auto-expiry will be inhibited.
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/gnus-sum.el.gz
(defun gnus-summary-mark-article (&optional article mark no-expire)
"Mark ARTICLE with MARK. MARK can be any character.
Four MARK strings are reserved: `? ' (unread), `?!' (ticked),
`??' (dormant) and `?E' (expirable).
If MARK is nil, then the default character `?r' is used.
If ARTICLE is nil, then the article on the current line will be
marked.
If NO-EXPIRE, auto-expiry will be inhibited."
;; The mark might be a string.
(when (stringp mark)
(setq mark (aref mark 0)))
;; If no mark is given, then we check auto-expiring.
(when (null mark)
(setq mark gnus-del-mark))
(when (and (not no-expire)
gnus-newsgroup-auto-expire
(memq mark gnus-auto-expirable-marks))
(setq mark gnus-expirable-mark))
(let ((article (or article (gnus-summary-article-number)))
(old-mark (gnus-summary-article-mark article)))
;; Allow the backend to change the mark.
(setq mark (gnus-request-update-mark gnus-newsgroup-name article mark))
(if (eq mark old-mark)
t
(unless article
(error "No article on current line"))
(if (not (if (or (= mark gnus-unread-mark)
(= mark gnus-ticked-mark)
(= mark gnus-spam-mark)
(= mark gnus-dormant-mark))
(gnus-mark-article-as-unread article mark)
(gnus-mark-article-as-read article mark)))
t
;; See whether the article is to be put in the cache.
(and gnus-use-cache
(not (= mark gnus-canceled-mark))
(mail-header-p (gnus-summary-article-header article))
(save-excursion
(gnus-cache-possibly-enter-article
gnus-newsgroup-name article
(= mark gnus-ticked-mark)
(= mark gnus-dormant-mark) (= mark gnus-unread-mark))))
(when (gnus-summary-goto-subject article nil t)
(let ((inhibit-read-only t))
(gnus-summary-show-thread)
;; Fix the mark.
(gnus-summary-update-mark mark 'unread)
t))))))