[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master b90f502: * lisp/gnus/registry.el (registry-db): Don
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] master b90f502: * lisp/gnus/registry.el (registry-db): Don't oset-default an instance slot. |
Date: |
Wed, 11 Mar 2015 15:00:31 +0000 |
branch: master
commit b90f502cc18b60644ce3898699589ecd9653b397
Author: Stefan Monnier <address@hidden>
Commit: Stefan Monnier <address@hidden>
* lisp/gnus/registry.el (registry-db): Don't oset-default an instance slot.
* lisp/gnus/gnus-registry.el (gnus-registry-handle-action)
(gnus-registry-post-process-groups): Don't add-to-list on a local var.
(gnus-registry-keywords): Make it do something.
(gnus-registry-import-eld): Remove unused var `new-entry'.
(gnus-registry-action): Remove unused var `to-name'.
(gnus-registry-make-db): Prefer `make-instance' to avoid
compiler warnings.
(gnus-registry-load, gnus-registry-fixup-registry): Avoid `oset'.
---
lisp/gnus/ChangeLog | 14 ++++++++++++++
lisp/gnus/gnus-registry.el | 39 +++++++++++++++++++--------------------
lisp/gnus/registry.el | 9 ++++++---
3 files changed, 39 insertions(+), 23 deletions(-)
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 1744a13..64124bc 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,17 @@
+2015-03-11 Stefan Monnier <address@hidden>
+
+ * gnus-registry.el (gnus-registry-handle-action)
+ (gnus-registry-post-process-groups): Don't add-to-list on a local var.
+ (gnus-registry-keywords): Make it do something.
+ (gnus-registry-import-eld): Remove unused var `new-entry'.
+ (gnus-registry-action): Remove unused var `to-name'.
+ (gnus-registry-make-db): Prefer `make-instance' to avoid
+ compiler warnings.
+ (gnus-registry-load, gnus-registry-fixup-registry): Avoid `oset'.
+
+ * registry.el (registry-db): Don't oset-default an instance-allocated
+ slot.
+
2015-03-10 Glenn Morris <address@hidden>
* message.el (message-valid-fqdn-regexp): Bump :version for
diff --git a/lisp/gnus/gnus-registry.el b/lisp/gnus/gnus-registry.el
index ac903a2..1d5887d 100644
--- a/lisp/gnus/gnus-registry.el
+++ b/lisp/gnus/gnus-registry.el
@@ -277,16 +277,16 @@ This can slow pruning down. Set to nil to perform no
sorting."
(defun gnus-registry-fixup-registry (db)
(when db
(let ((old (oref db tracked)))
- (oset db precious
+ (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)))
@@ -297,14 +297,13 @@ This can slow pruning down. Set to nil to perform no
sorting."
(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'.")
@@ -336,7 +335,7 @@ This is not required after changing
`gnus-registry-cache-file'."
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
@@ -398,8 +397,7 @@ This is not required after changing
`gnus-registry-cache-file'."
(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)
@@ -455,7 +453,8 @@ This is not required after changing
`gnus-registry-cache-file'."
(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"
@@ -699,7 +698,7 @@ possible. Uses `gnus-registry-split-strategy'."
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
@@ -785,8 +784,9 @@ Overrides existing keywords with FORCE set non-nil."
(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
@@ -1104,7 +1104,6 @@ only the last one's marks are returned."
(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)
diff --git a/lisp/gnus/registry.el b/lisp/gnus/registry.el
index 881eb9f..1c83b93 100644
--- a/lisp/gnus/registry.el
+++ b/lisp/gnus/registry.el
@@ -98,7 +98,12 @@
:type (or null float)
:documentation "The registry version.")
(max-size :initarg :max-size
- ;; :initform most-positive-fixnum ;; see below
+ ;; EIEIO's :initform is not 100% compatible with CLOS in
+ ;; that if the form is an atom, it assumes it's constant
+ ;; value rather than an expression, so in order to get the value
+ ;; of `most-positive-fixnum', we need to use an
+ ;; expression that's not just a symbol.
+ :initform (symbol-value 'most-positive-fixnum)
:type integer
:custom integer
:documentation "The maximum number of registry entries.")
@@ -123,8 +128,6 @@
(data :initarg :data
:type hash-table
:documentation "The data hashtable.")))
-;; Do this separately, since defclass doesn't allow expressions in :initform.
-(oset-default 'registry-db max-size most-positive-fixnum)
(defmethod initialize-instance :BEFORE ((this registry-db) slots)
"Check whether a registry object needs to be upgraded."
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master b90f502: * lisp/gnus/registry.el (registry-db): Don't oset-default an instance slot.,
Stefan Monnier <=