Function: nnvirtual-reverse-map-sequence

nnvirtual-reverse-map-sequence is a byte-compiled function defined in nnvirtual.el.gz.

Signature

(nnvirtual-reverse-map-sequence GROUP ARTICLES)

Documentation

Return list of virtual article numbers for all ARTICLES in GROUP.

The ARTICLES should be sorted, and can be a compressed sequence. If any of the article numbers has no corresponding virtual article, then it is left out of the result.

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/nnvirtual.el.gz
(defsubst nnvirtual-reverse-map-sequence (group articles)
  "Return list of virtual article numbers for all ARTICLES in GROUP.
The ARTICLES should be sorted, and can be a compressed sequence.
If any of the article numbers has no corresponding virtual article,
then it is left out of the result."
  (when (numberp (cdr-safe articles))
    (setq articles (list articles)))
  (let (result a i j new-a)
    (while (setq a (pop articles))
      (if (atom a)
	  (setq i a
		j a)
	(setq i (car a)
	      j (cdr a)))
      (while (<= i j)
	;; If this is slow, you can optimize by moving article checking
	;; into here.  You don't have to recompute the group-pos,
	;; nor scan the table every time.
	(when (setq new-a (nnvirtual-reverse-map-article group i))
	  (push new-a result))
	(setq i (1+ i))))
    (nreverse result)))