Function: gnus-summary-update-article-line
gnus-summary-update-article-line is a byte-compiled function defined
in gnus-sum.el.gz.
Signature
(gnus-summary-update-article-line ARTICLE HEADER)
Documentation
Update the line for ARTICLE using HEADER.
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/gnus-sum.el.gz
(defun gnus-summary-update-article-line (article header)
"Update the line for ARTICLE using HEADER."
(let* ((id (mail-header-id header))
(thread (gnus-id-to-thread id)))
(unless thread
(error "Article in no thread"))
;; Update the thread.
(setcar thread header)
(gnus-summary-goto-subject article)
(let* ((datal (gnus-data-find-list article))
(data (car datal))
(inhibit-read-only t)
(level (gnus-summary-thread-level)))
(gnus-delete-line)
(let ((inserted (- (point)
(progn
(gnus-summary-insert-line
header level nil
(memq article gnus-newsgroup-undownloaded)
(gnus-article-mark article)
(memq article gnus-newsgroup-replied)
(memq article gnus-newsgroup-expirable)
;; Only insert the Subject string when it's different
;; from the previous Subject string.
(if (and
gnus-show-threads
(gnus-subject-equal
(condition-case ()
(mail-header-subject
(gnus-data-header
(cadr
(gnus-data-find-list
article
(gnus-data-list t)))))
;; Error on the side of excessive subjects.
(error ""))
(mail-header-subject header)))
""
(mail-header-subject header))
nil (cdr (assq article gnus-newsgroup-scored))
(memq article gnus-newsgroup-processable))
(point)))))
(when (cdr datal)
(gnus-data-update-list
(cdr datal)
(- (gnus-data-pos data) (gnus-data-pos (cadr datal)) inserted)))))))