Function: gnus-add-marked-articles

gnus-add-marked-articles is a byte-compiled function defined in gnus-group.el.gz.

Signature

(gnus-add-marked-articles GROUP TYPE ARTICLES &optional INFO FORCE)

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/gnus-group.el.gz
(defun gnus-add-marked-articles (group type articles &optional info force)
  ;; Add ARTICLES of TYPE to the info of GROUP.
  ;; If INFO is non-nil, use that info.  If FORCE is non-nil, don't
  ;; add, but replace marked articles of TYPE with ARTICLES.
  (let ((info (or info (gnus-get-info group)))
	marked m)
    (or (not info)
	(and (not (setq marked (nthcdr 3 info)))
	     (or (null articles)
		 (setcdr (nthcdr 2 info)
			 (list (list (cons type (range-compress-list
                                                 articles)))))))
	(and (not (setq m (assq type (car marked))))
	     (or (null articles)
		 (setcar marked
			 (cons (cons type (range-compress-list articles))
			       (car marked)))))
	(if force
	    (if (null articles)
		(setcar (nthcdr 3 info)
			(assq-delete-all type (car marked)))
	      (setcdr m (range-compress-list articles)))
	  (setcdr m (range-compress-list
		     (sort (nconc (range-uncompress (cdr m))
				  (copy-sequence articles))
			   #'<)))))))