From: Romain Francoise Date: Thu, 13 Apr 2006 19:02:40 +0000 (+0000) Subject: * gnus-util.el (gnus-alist-to-hashtable, gnus-hashtable-to-alist): X-Git-Url: http://cgit.sxemacs.org/?a=commitdiff_plain;h=b7dff6c67ce5228d493836660edeb7e321856e5e;p=gnus * gnus-util.el (gnus-alist-to-hashtable, gnus-hashtable-to-alist): Moved here (and renamed) from gnus-registry.el. * gnus-registry.el: Require gnus-util. Use `gnus-alist-to-hashtable' and `gnus-hashtable-to-alist'. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 9ba718e9f..f6e82865d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,11 @@ +2006-04-13 Romain Francoise + + * gnus-util.el (gnus-alist-to-hashtable, gnus-hashtable-to-alist): + Moved here (and renamed) from gnus-registry.el. + + * gnus-registry.el: Require gnus-util. + Use `gnus-alist-to-hashtable' and `gnus-hashtable-to-alist'. + 2006-04-13 Lars Magne Ingebrigtsen * gnus-group.el (gnus-group-catchup-current): Change diff --git a/lisp/gnus-registry.el b/lisp/gnus-registry.el index 192f6447d..150008c15 100644 --- a/lisp/gnus-registry.el +++ b/lisp/gnus-registry.el @@ -60,6 +60,7 @@ (require 'gnus) (require 'gnus-int) (require 'gnus-sum) +(require 'gnus-util) (require 'nnmail) (defvar gnus-registry-dirty t @@ -242,7 +243,8 @@ way." (gnus-registry-clean-empty-function)) ;; now trim the registry appropriately (setq gnus-registry-alist (gnus-registry-trim - (hashtable-to-alist gnus-registry-hashtb))) + (gnus-hashtable-to-alist + gnus-registry-hashtb))) ;; really save (gnus-registry-cache-save) (setq gnus-registry-entry-caching caching) @@ -287,7 +289,7 @@ way." (defun gnus-registry-read () (gnus-registry-cache-read) - (setq gnus-registry-hashtb (alist-to-hashtable gnus-registry-alist)) + (setq gnus-registry-hashtb (gnus-alist-to-hashtable gnus-registry-alist)) (setq gnus-registry-dirty nil)) (defun gnus-registry-trim (alist) @@ -316,26 +318,6 @@ Also, drop all gnus-registry-ignored-groups matches." (or (cdr (gethash (car a) timehash)) '(0 0 0)) (or (cdr (gethash (car b) timehash)) '(0 0 0)))))))))) -(defun alist-to-hashtable (alist) - "Build a hashtable from the values in ALIST." - (let ((ht (make-hash-table - :size 4096 - :test 'equal))) - (mapc - (lambda (kv-pair) - (puthash (car kv-pair) (cdr kv-pair) ht)) - alist) - ht)) - -(defun hashtable-to-alist (hash) - "Build an alist from the values in HASH." - (let ((list nil)) - (maphash - (lambda (key value) - (setq list (cons (cons key value) list))) - hash) - list)) - (defun gnus-registry-action (action data-header from &optional to method) (let* ((id (mail-header-id data-header)) (subject (gnus-registry-simplify-subject @@ -714,7 +696,7 @@ Returns the first place where the trail finds a group name." "Clear the Gnus registry." (interactive) (setq gnus-registry-alist nil) - (setq gnus-registry-hashtb (alist-to-hashtable gnus-registry-alist)) + (setq gnus-registry-hashtb (gnus-alist-to-hashtable gnus-registry-alist)) (setq gnus-registry-dirty t)) ;;;###autoload diff --git a/lisp/gnus-util.el b/lisp/gnus-util.el index a94f7277a..265d1438b 100644 --- a/lisp/gnus-util.el +++ b/lisp/gnus-util.el @@ -723,6 +723,28 @@ If there's no subdirectory, delete DIRECTORY as well." (unless dir (delete-directory directory))))) +;; The following two functions are used in gnus-registry. +;; They were contributed by Andreas Fuchs . +(defun gnus-alist-to-hashtable (alist) + "Build a hashtable from the values in ALIST." + (let ((ht (make-hash-table + :size 4096 + :test 'equal))) + (mapc + (lambda (kv-pair) + (puthash (car kv-pair) (cdr kv-pair) ht)) + alist) + ht)) + +(defun gnus-hashtable-to-alist (hash) + "Build an alist from the values in HASH." + (let ((list nil)) + (maphash + (lambda (key value) + (setq list (cons (cons key value) list))) + hash) + list)) + (defun gnus-strip-whitespace (string) "Return STRING stripped of all whitespace." (while (string-match "[\r\n\t ]+" string)