>From 9792b97faf4e5b1dc22e58d99806ec17a9fd7985 Mon Sep 17 00:00:00 2001 From: "Basil L. Contovounesios" Date: Sat, 5 Dec 2020 15:28:35 +0000 Subject: [PATCH] Stop using deprecated nnimap variable in spam.el * lisp/gnus/nnimap.el (nnimap--split-download-body): New variable. (nnimap-fetch-inbox): Use it in conjunction with nnimap-split-download-body. * lisp/gnus/spam.el: Don't load nnimap.el at compile time for a dynamic variable. (spam-setup-widening): Rather than unconditionally set deprecated nnimap-split-download-body-default, set nnimap--split-download-body to recognizable non-nil value only if it is nil (bug#44981). (spam-teardown-widening): Undo this if nnimap--split-download-body still holds the recognizable value. (spam-unload-hook): Call spam-teardown-widening to revert any change to the value of nnimap--split-download-body. --- lisp/gnus/nnimap.el | 6 +++++- lisp/gnus/spam.el | 26 +++++++++++++++++--------- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el index a860333066..c8b700ebcc 100644 --- a/lisp/gnus/nnimap.el +++ b/lisp/gnus/nnimap.el @@ -157,6 +157,9 @@ nnimap-split-download-body :version "28.1" :type 'boolean) +(defvar nnimap--split-download-body nil + "Like `nnimap-split-download-body', but for internal use.") + (defvar nnimap-process nil) (defvar nnimap-status-string "") @@ -2108,7 +2111,8 @@ nnimap-fetch-inbox "BODY.PEEK" "RFC822.PEEK")) (cond - (nnimap-split-download-body + ((or nnimap-split-download-body + nnimap--split-download-body) "[]") ((nnimap-ver4-p) "[HEADER]") diff --git a/lisp/gnus/spam.el b/lisp/gnus/spam.el index 96a7da2313..e74aef3efe 100644 --- a/lisp/gnus/spam.el +++ b/lisp/gnus/spam.el @@ -44,12 +44,9 @@ ;;; for the definitions of group content classification and spam processors (require 'gnus) -(eval-when-compile (require 'hashcash)) - -;; for nnimap-split-download-body-default -(eval-when-compile (require 'nnimap)) - -(eval-when-compile (require 'cl-lib)) +(eval-when-compile + (require 'cl-lib) + (require 'hashcash)) ;; autoload query-dig (autoload 'query-dig "dig") @@ -1228,10 +1225,20 @@ spam-generic-score ;;{{{ set up widening, processor checks -;;; set up IMAP widening if it's necessary +(defconst spam--widened (list ()) + "Unique value identifying changes to `nnimap--split-download-body'.") + (defun spam-setup-widening () - (when (spam-widening-needed-p) - (setq nnimap-split-download-body-default t))) + "Set up IMAP widening if it's necessary." + (and (boundp 'nnimap--split-download-body) + (not nnimap--split-download-body) + (spam-widening-needed-p) + (setq nnimap--split-download-body spam--widened))) + +(defun spam-teardown-widening () + "Tear down IMAP widening." + (when (eq (bound-and-true-p nnimap--split-download-body) spam--widened) + (setq nnimap--split-download-body nil))) (defun spam-widening-needed-p (&optional force-symbols) (let (found) @@ -2865,6 +2872,7 @@ spam-initialize (defun spam-unload-hook () "Uninstall the spam.el hooks." (interactive) + (spam-teardown-widening) (remove-hook 'gnus-save-newsrc-hook 'spam-maybe-spam-stat-save) (remove-hook 'gnus-get-top-new-news-hook 'spam-maybe-spam-stat-load) (remove-hook 'gnus-startup-hook 'spam-maybe-spam-stat-load) -- 2.29.2