Fix Gnus registry pruning and sorting, and rename file.
authorEric Abrahamsen <eric@ericabrahamsen.net>
Thu, 18 Dec 2014 10:06:02 +0000 (05:06 -0500)
committerTed Zlatanov <tzz@lifelogs.com>
Thu, 18 Dec 2014 10:06:02 +0000 (05:06 -0500)
commitaf0fe49bfe085fa79608eed261a7b7b04c8a86b6
tree5d4ca764a4aec0bcb220c852a5de42b8222a0eeb
parent28ef90e547ec983cbed563e955a9f329eefe0419
Fix Gnus registry pruning and sorting, and rename file.

* lisp/gnus-registry.el (gnus-registry-prune-factor): Add new variable.
(gnus-registry-max-pruned-entries): Remove obsolete variable.
(gnus-registry-cache-file): Change default
filename extension to "eieio".
(gnus-registry-read): Add new function, split out from
`gnus-registry-load', that does the actual object reading.
(gnus-registry-load): Use it. Add condition case handler to check for
old filename extension and rename to the new one.
(gnus-registry-default-sort-function): New variable to specify a sort
function to use when pruning.
(gnus-registry-save, gnus-registry-insert): Use it.
(gnus-registry-sort-by-creation-time): Define a default sort function.

* lisp/tests/gnustest-registry.el (gnustest-registry-make-testable-db):
Adjust test for new object signature.
(gnustest-registry-pruning-test): Add new pruning test.
(gnustest-registry-sort-function): Default sort function for testing.
(gnustest-registry-pruning-sort-test): New test for sorting.

* lisp/registry.el (registry-db): Consolidate the :max-hard and :max-soft
slots into a :max-size slot.
(registry-db-version): Add new variable for database version number.
(registry-prune): Use :max-size slot. Accept and use a sort-function
argument.
(registry-collect-prune-candidates): Add new function for finding
non-precious pruning candidates.
(registry-prune-hard-candidates, registry-prune-soft-candidates):
Remove obsolete functions.
(initialize-instance): Upgrade registry version when starting.

* texi/gnus.texi (Gnus Registry Setup): Explain pruning changes. Mention
gnus-registry-prune-factor. Explain sorting changes and
gnus-registry-default-sort-function. Correct file extension.
lisp/ChangeLog
lisp/gnus-registry.el
lisp/registry.el
lisp/tests/gnustest-registry.el
texi/ChangeLog
texi/gnus.texi