Function: spam-register-routine

spam-register-routine is a byte-compiled function defined in spam.el.gz.

Signature

(spam-register-routine CLASSIFICATION BACKEND SPECIFIC-ARTICLES &optional UNREGISTER)

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/spam.el.gz
(defun spam-register-routine (classification
                              backend
                              specific-articles
                              &optional unregister)
  (when (and (spam-classification-valid-p classification)
             (spam-backend-valid-p backend))
    (let* ((register-function
            (spam-backend-function backend classification 'registration))
           (unregister-function
            (spam-backend-function backend classification 'unregistration))
           (run-function (if unregister
                             unregister-function
                           register-function))
           (log-function (if unregister
                             'spam-log-undo-registration
                           'spam-log-processing-to-registry))
           articles) ;; article

      (when run-function
        ;; make list of articles, using specific-articles if given
        (setq articles (or specific-articles
                           (spam-list-articles
                            gnus-newsgroup-articles
                            classification)))
        ;; process them
        (when (> (length articles) 0)
          (gnus-message 5 "%s %d %s articles as %s using backend %s"
                        (if unregister "Unregistering" "Registering")
                        (length articles)
                        (if specific-articles "specific" "")
                        classification
                        backend)
          (funcall run-function articles)
          ;; now log all the registrations (or undo them, depending on
          ;; unregister)
          (dolist (article articles)
            (funcall log-function
                     (spam-fetch-field-message-id-fast article)
                     'process
                     classification
                     backend
                     gnus-newsgroup-name))))
      ;; return the number of articles processed
      (length articles))))