Function: nnmaildir--grp-add-art

nnmaildir--grp-add-art is a byte-compiled function defined in nnmaildir.el.gz.

Signature

(nnmaildir--grp-add-art SERVER GROUP ARTICLE)

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/nnmaildir.el.gz
(defun nnmaildir--grp-add-art (server group article)
  (let ((nov (nnmaildir--update-nov server group article))
	count num min nlist nlist-cdr insert-nlist)
    (when nov
      (setq count (1+ (nnmaildir--grp-count group))
	    num (nnmaildir--art-num article)
	    min (if (= count 1) num
		  (min num (nnmaildir--grp-min group)))
	    nlist (nnmaildir--grp-nlist group))
      (if (or (null nlist) (> num (caar nlist)))
	  (setq nlist (cons (cons num article) nlist))
	(setq insert-nlist t
	      nlist-cdr (cdr nlist))
	(while (and nlist-cdr (< num (caar nlist-cdr)))
	  (setq nlist nlist-cdr
		nlist-cdr (cdr nlist))))
      (let ((inhibit-quit t))
	(setf (nnmaildir--grp-count group) count)
	(setf (nnmaildir--grp-min group) min)
	(if insert-nlist
	    (setcdr nlist (cons (cons num article) nlist-cdr))
	  (setf (nnmaildir--grp-nlist group) nlist))
	(puthash (nnmaildir--art-prefix article)
		 article
		 (nnmaildir--grp-flist group))
	(puthash (nnmaildir--art-msgid article)
		 article
		 (nnmaildir--grp-mlist group))
	(puthash (nnmaildir--grp-name group)
		 group
		 (nnmaildir--srv-groups server)))
      (nnmaildir--cache-nov group article nov)
      t)))