Function: gnus-update-summary-mark-positions
gnus-update-summary-mark-positions is a byte-compiled function defined
in gnus-sum.el.gz.
Signature
(gnus-update-summary-mark-positions)
Documentation
Compute where the summary marks are to go.
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/gnus-sum.el.gz
(defun gnus-update-summary-mark-positions ()
"Compute where the summary marks are to go."
(save-excursion
(when (gnus-buffer-live-p gnus-summary-buffer)
(set-buffer gnus-summary-buffer))
(let ((spec gnus-summary-line-format-spec)
pos)
(save-excursion
(gnus-set-work-buffer)
(let ((gnus-tmp-unread ?Z)
(gnus-replied-mark ?Z)
(gnus-score-below-mark ?Z)
(gnus-score-over-mark ?Z)
(gnus-undownloaded-mark ?Z)
(gnus-summary-line-format-spec spec)
;; Make sure `gnus-data-find' finds a dummy element
;; so we don't call gnus-data-<field> accessors on nil.
(gnus-newsgroup-data gnus--dummy-data-list)
(gnus-newsgroup-downloadable '(0))
(gnus-visual nil)
case-fold-search ignores)
;; Here, all marks are bound to Z.
(gnus-summary-insert-line gnus--dummy-mail-header
0 nil t gnus-tmp-unread t nil "" nil 1)
(goto-char (point-min))
;; Memorize the positions of the same characters as dummy marks.
(while (re-search-forward "[A-D]" nil t)
(push (point) ignores))
(erase-buffer)
;; We use A-D as dummy marks in order to know column positions
;; where marks should be inserted.
(setq gnus-tmp-unread ?A
gnus-replied-mark ?B
gnus-score-below-mark ?C
gnus-score-over-mark ?C
gnus-undownloaded-mark ?D)
(gnus-summary-insert-line gnus--dummy-mail-header
0 nil t gnus-tmp-unread t nil "" nil 1)
;; Ignore characters which aren't dummy marks.
(dolist (p ignores)
(delete-region (goto-char (1- p)) p)
(insert ?Z))
(goto-char (point-min))
(setq pos (list (cons 'unread
(and (search-forward "A" nil t)
(- (point) (point-min) 1)))))
(goto-char (point-min))
(push (cons 'replied (and (search-forward "B" nil t)
(- (point) (point-min) 1)))
pos)
(goto-char (point-min))
(push (cons 'score (and (search-forward "C" nil t)
(- (point) (point-min) 1)))
pos)
(goto-char (point-min))
(push (cons 'download (and (search-forward "D" nil t)
(- (point) (point-min) 1)))
pos)))
(setq gnus-summary-mark-positions pos))))