Function: nnmairix-request-marks
nnmairix-request-marks is a byte-compiled function defined in
nnmairix.el.gz.
Signature
(nnmairix-request-marks GROUP INFO &optional SERVER)
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/nnmairix.el.gz
(deffoo nnmairix-request-marks (group info &optional server)
;; propagate info from underlying IMAP folder to nnmairix group
;; This is currently experimental and must be explicitly activated
;; with nnmairix-propagate-marks-to-nnmairix-group
(when server
(nnmairix-open-server server))
(let* ((qualgroup (gnus-group-prefixed-name
group
(list 'nnmairix nnmairix-current-server)))
(readmarks (gnus-group-get-parameter qualgroup 'readmarks))
(propmarks (gnus-group-get-parameter qualgroup 'propmarks))
(folder (nnmairix-get-backend-folder group server))
(corr (nnmairix-get-numcorr group server))
(docorr (and corr (not (zerop (cadr corr)))))
(folderinfo `(,group 1 ((1 . 1))))
) ;; readrange marks
(when (and propmarks
nnmairix-propagate-marks-to-nnmairix-groups)
;; these groups are not subscribed, so we have to ask the back end directly
(if (eq nnmairix-backend 'nnimap)
(nnimap-request-update-info-internal folder folderinfo nnmairix-backend-server)
(nnmairix-call-backend "request-update-info" folder folderinfo nnmairix-backend-server))
;; set range of read articles
(setf (gnus-info-read info)
(if docorr
(nnmairix-map-range
(let ((off (cadr corr)))
(lambda (x) (+ x off)))
(gnus-info-read folderinfo))
(gnus-info-read folderinfo)))
;; set other marks
(setf (gnus-info-marks info)
(if docorr
(mapcar (lambda (cur)
(cons
(car cur)
(nnmairix-map-range
(let ((off (cadr corr)))
(lambda (x) (+ x off)))
(list (cadr cur)))))
(gnus-info-marks folderinfo))
(gnus-info-marks folderinfo))))
(when (eq readmarks 'unread)
(setf (gnus-info-read info) nil))
(when (eq readmarks 'read)
(setf (gnus-info-read info) (gnus-active qualgroup))))
t)