(make-obsolete-variable 'gnus-registry-max-track-groups nil "23.4")
(make-obsolete-variable 'gnus-registry-entry-caching nil "23.4")
(make-obsolete-variable 'gnus-registry-trim-articles-without-groups nil "23.4")
-(make-obsolete-variable 'gnus-registry-max-pruned-entries nil "24.4")
+;; FIXME it was simply deleted.
+(make-obsolete-variable 'gnus-registry-max-pruned-entries nil "25.1")
(defcustom gnus-registry-track-extra '(subject sender recipient)
"Whether the registry should track extra data about a message.
cut the registry back to \(- 50000 \(* 50000 0.1\)\) -> 45000
entries. The pruning process is constrained by the presence of
\"precious\" entries."
- :version "24.4"
+ :version "25.1"
:group 'gnus-registry
:type 'float)
(defcustom gnus-registry-default-sort-function
#'gnus-registry-sort-by-creation-time
"Sort function to use when pruning the registry.
-
-Entries which sort to the front of the list will be pruned
-first.
-
+Entries that sort to the front of the list are pruned first.
This can slow pruning down. Set to nil to perform no sorting."
- :version "24.4"
+ :version "25.1"
:group 'gnus-registry
- :type 'symbol)
+ :type '(choice (const :tag "No sorting" nil) function))
(defun gnus-registry-sort-by-creation-time (l r)
"Sort older entries to front of list."
(defun gnus-registry-fixup-registry (db)
(when db
- (let ((old (oref db :tracked)))
- (oset db :precious
+ (let ((old (oref db tracked)))
+ (setf (oref db precious)
(append gnus-registry-extra-entries-precious
'()))
- (oset db :max-size
+ (setf (oref db max-size)
(or gnus-registry-max-entries
most-positive-fixnum))
- (oset db :prune-factor
+ (setf (oref db prune-factor)
(or gnus-registry-prune-factor
0.1))
- (oset db :tracked
+ (setf (oref db tracked)
(append gnus-registry-track-extra
'(mark group keyword)))
- (when (not (equal old (oref db :tracked)))
+ (when (not (equal old (oref db tracked)))
(gnus-message 9 "Reindexing the Gnus registry (tracked change)")
(registry-reindex db))))
db)
(defun gnus-registry-make-db (&optional file)
(interactive "fGnus registry persistence file: \n")
(gnus-registry-fixup-registry
- (registry-db
- "Gnus Registry"
- :file (or file gnus-registry-cache-file)
- ;; these parameters are set in `gnus-registry-fixup-registry'
- :max-size most-positive-fixnum
- :version registry-db-version
- :precious nil
- :tracked nil)))
+ (make-instance 'registry-db
+ :file (or file gnus-registry-cache-file)
+ ;; these parameters are set in `gnus-registry-fixup-registry'
+ :max-size most-positive-fixnum
+ :version registry-db-version
+ :precious nil
+ :tracked nil)))
(defvar gnus-registry-db (gnus-registry-make-db)
"The article registry by Message ID. See `registry-db'.")
old-file-name file)))
(progn
(gnus-registry-read old-file-name)
- (oset gnus-registry-db :file file)
+ (setf (oref gnus-registry-db :file) file)
(gnus-message 1 "Registry filename changed to %s" file))
(gnus-registry-remake-db t))))
(error
(sender (nth 0 (gnus-registry-extract-addresses
(mail-header-from data-header))))
(from (gnus-group-guess-full-name-from-command-method from))
- (to (if to (gnus-group-guess-full-name-from-command-method to) nil))
- (to-name (if to to "the Bit Bucket")))
+ (to (if to (gnus-group-guess-full-name-from-command-method to) nil)))
(gnus-message 7 "Gnus registry: article %s %s from %s to %s"
id (if method "respooling" "going") from to)
(let ((new (or (assq (first kv) entry)
(list (first kv)))))
(dolist (toadd (cdr kv))
- (add-to-list 'new toadd t))
+ (unless (member toadd new)
+ (setq new (append new (list toadd)))))
(setq entry (cons new
(assq-delete-all (first kv) entry))))))
(gnus-message 10 "Gnus registry: new entry for %s is %S"
10
"%s: stripped group %s to %s"
log-agent group short-name))
- (add-to-list 'out short-name))
+ (pushnew short-name out :test #'equal))
;; else...
(gnus-message
7
(gnus-registry-set-id-key id 'keyword words)))))
(defun gnus-registry-keywords ()
- (let ((table (registry-lookup-secondary gnus-registry-db 'keyword)))
- (when table (maphash (lambda (k v) k) table))))
+ (let ((table (registry-lookup-secondary gnus-registry-db 'keyword))
+ (ks ()))
+ (when table (maphash (lambda (k _v) (push k ks)) table) ks)))
(defun gnus-registry-find-keywords (keyword)
(interactive (list
(setq entry (car-safe old)
old (cdr-safe old))
(let* ((id (car-safe entry))
- (new-entry (gnus-registry-get-or-make-entry id))
(rest (cdr-safe entry))
(groups (loop for p in rest
when (stringp p)
(when extra
(let ((db gnus-registry-db))
(registry-reindex db)
- (loop for k being the hash-keys of (oref db :data)
+ (loop for k being the hash-keys of (oref db data)
using (hash-value v)
do (let ((newv (delq nil (mapcar #'(lambda (entry)
(unless (member (car entry) extra)