mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-04 08:47:11 +00:00
registry.el (registry-full): Add convenience method. Fix logic.
(registry-insert): Use it. Fix logic here too. gnus-registry.el (gnus-registry-insert): Add wrapper that calls `registry-prune' if `registry-full' returns t. (gnus-registry-handle-action, gnus-registry-get-or-make-entry, gnus-registry-set-id-key, gnus-registry-usage-test): Use it.
This commit is contained in:
parent
9bedd73a50
commit
81d7704c97
@ -2,6 +2,17 @@
|
||||
|
||||
* nntp.el (nntp-open-connection): Set TCP keepalive option.
|
||||
|
||||
2011-05-09 Teodor Zlatanov <tzz@lifelogs.com>
|
||||
|
||||
* registry.el (registry-full): Add convenience method. Fix logic.
|
||||
(registry-insert): Use it. Fix logic here too.
|
||||
|
||||
* gnus-registry.el (gnus-registry-insert): Add wrapper that calls
|
||||
`registry-prune' if `registry-full' returns t.
|
||||
(gnus-registry-handle-action)
|
||||
(gnus-registry-get-or-make-entry, gnus-registry-set-id-key)
|
||||
(gnus-registry-usage-test): Use it.
|
||||
|
||||
2011-05-07 Julien Danjou <julien@danjou.info>
|
||||
|
||||
* shr.el (shr-link): Make shr-link inherit from link by default.
|
||||
|
@ -383,7 +383,7 @@ This is not required after changing `gnus-registry-cache-file'."
|
||||
(gnus-message 10 "Gnus registry: new entry for %s is %S"
|
||||
id
|
||||
entry)
|
||||
(registry-insert db id entry)))
|
||||
(gnus-registry-insert db id entry)))
|
||||
|
||||
;; Function for nn{mail|imap}-split-fancy: look up all references in
|
||||
;; the cache and if a match is found, return that group.
|
||||
@ -962,8 +962,8 @@ only the last one's marks are returned."
|
||||
(entries (registry-lookup db (list id))))
|
||||
|
||||
(when (null entries)
|
||||
(registry-insert db id (list (list 'creation-time (current-time))
|
||||
'(group) '(sender) '(subject)))
|
||||
(gnus-registry-insert db id (list (list 'creation-time (current-time))
|
||||
'(group) '(sender) '(subject)))
|
||||
(setq entries (registry-lookup db (list id))))
|
||||
|
||||
(nth 1 (assoc id entries))))
|
||||
@ -979,9 +979,17 @@ only the last one's marks are returned."
|
||||
(entry (gnus-registry-get-or-make-entry id)))
|
||||
(registry-delete db (list id) nil)
|
||||
(setq entry (cons (cons key vals) (assq-delete-all key entry)))
|
||||
(registry-insert db id entry)
|
||||
(gnus-registry-insert db id entry)
|
||||
entry))
|
||||
|
||||
(defun gnus-registry-insert (db id entry)
|
||||
"Just like `registry-insert' but tries to prune on error."
|
||||
(when (registry-full db)
|
||||
(message "Trying to prune the registry because it's full")
|
||||
(registry-prune db))
|
||||
(registry-insert db id entry)
|
||||
entry)
|
||||
|
||||
(defun gnus-registry-import-eld (file)
|
||||
(interactive "fOld registry file to import? ")
|
||||
;; example content:
|
||||
@ -1075,7 +1083,7 @@ only the last one's marks are returned."
|
||||
(should (equal (gnus-registry-get-id-key "34" 'group) '("togroup")))
|
||||
(should (equal (gnus-registry-get-id-key "34" 'subject) '("subject 4")))
|
||||
(message "Trying to insert a duplicate key")
|
||||
(should-error (registry-insert db "55" '()))
|
||||
(should-error (gnus-registry-insert db "55" '()))
|
||||
(message "Looking up individual keys (gnus-registry-get-or-make-entry)")
|
||||
(should (gnus-registry-get-or-make-entry "22"))
|
||||
(message "Saving the Gnus registry to %s" tempfile)
|
||||
|
@ -261,6 +261,11 @@ With assert non-nil, errors out if the key does not exist already."
|
||||
(remhash key data)))
|
||||
keys))
|
||||
|
||||
(defmethod registry-full ((db registry-db))
|
||||
"Checks if registry-db THIS is full."
|
||||
(>= (registry-size db)
|
||||
(oref db :max-hard)))
|
||||
|
||||
(defmethod registry-insert ((db registry-db) key entry)
|
||||
"Insert ENTRY under KEY into the registry-db THIS.
|
||||
Updates the secondary ('tracked') indices as well.
|
||||
@ -269,8 +274,7 @@ Errors out if the key exists already."
|
||||
(assert (not (gethash key (oref db :data))) nil
|
||||
"Key already exists in database")
|
||||
|
||||
(assert (< (registry-size db)
|
||||
(oref db :max-hard))
|
||||
(assert (not (registry-full db))
|
||||
nil
|
||||
"registry max-hard size limit reached")
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user