diff options
author | Katsumi Yamaoka <yamaoka@jpl.org> | 2010-08-13 11:03:19 +0000 |
---|---|---|
committer | Katsumi Yamaoka <yamaoka@jpl.org> | 2010-08-13 11:03:19 +0000 |
commit | 186a9cbb9d4e7e9fd74249501ce6838442c7c11a (patch) | |
tree | 0b0d877406cb75a3a3848d815377e5dfd8389429 /lisp/gnus | |
parent | 79993b193e9766c7c8731549a68b6a27eac89f1d (diff) | |
download | emacs-186a9cbb9d4e7e9fd74249501ce6838442c7c11a.tar.gz |
Optimizations for gnus-sync.el.
From Ted Zlatanov <tzz@lifelogs.com>.
* gnus-sync.el: Add docs about gnus-sync-backend
possibilities.
(gnus-sync-save): Remove unnecessary message.
(gnus-sync-read): Optimize and show what groups were skipped.
Diffstat (limited to 'lisp/gnus')
-rw-r--r-- | lisp/gnus/ChangeLog | 9 | ||||
-rw-r--r-- | lisp/gnus/gnus-sync.el | 36 |
2 files changed, 34 insertions, 11 deletions
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index b61eb330792..40e4fe8ab66 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,5 +1,14 @@ 2010-08-12 Teodor Zlatanov <tzz@lifelogs.com> + Optimizations for gnus-sync.el. + + * gnus-sync.el: Add docs about gnus-sync-backend + possibilities. + (gnus-sync-save): Remove unnecessary message. + (gnus-sync-read): Optimize and show what groups were skipped. + +2010-08-12 Teodor Zlatanov <tzz@lifelogs.com> + Minor bug fixes for gnus-sync.el. * gnus-sync.el (gnus-sync-unload-hook, gnus-sync-install-hooks): Don't diff --git a/lisp/gnus/gnus-sync.el b/lisp/gnus/gnus-sync.el index bd889576dc0..236a8742630 100644 --- a/lisp/gnus/gnus-sync.el +++ b/lisp/gnus/gnus-sync.el @@ -27,6 +27,11 @@ ;; Put this in your startup file (~/.gnus.el for instance) +;; possibilities for gnus-sync-backend: +;; Tramp over SSH: /ssh:user@host:/path/to/filename +;; Tramp over IMAP: /imaps:user@yourhosthere.com:/INBOX.test/filename +;; ...or any other file Tramp and Emacs can handle... + ;; (setq gnus-sync-backend `("/remote:/path.gpg") ; will use Tramp+EPA if loaded ;; gnus-sync-global-vars `(gnus-newsrc-last-checked-date) ;; gnus-sync-newsrc-groups `("nntp" "nnrss") @@ -85,7 +90,6 @@ synchronized, I believe). Also see `gnus-variable-list'." (defun gnus-sync-save () "Save the Gnus sync data to the backend." (interactive) - (gnus-message 6 "Saving the Gnus sync data") (cond ((stringp gnus-sync-backend) (gnus-message 7 "gnus-sync: saving to backend %s" gnus-sync-backend) @@ -162,21 +166,31 @@ synchronized, I believe). Also see `gnus-variable-list'." (load gnus-sync-backend nil t) (error (error "Error in %s: %s" gnus-sync-backend (cadr var))))) - (let ((valid-nodes - (loop for node in gnus-sync-newsrc-loader - if (gnus-gethash (car node) gnus-newsrc-hashtb) - collect node))) - (dolist (node valid-nodes) - (loop for store in (cdr node) - do (setf (nth (car store) - (assoc (car node) gnus-newsrc-alist)) + (let ((valid-count 0) + invalid-groups) + (dolist (node gnus-sync-newsrc-loader) + (if (gnus-gethash (car node) gnus-newsrc-hashtb) + (progn + (incf valid-count) + (loop for store in (cdr node) + do (setf (nth (car store) + (assoc (car node) gnus-newsrc-alist)) (cdr store)))) + (push (car node) invalid-groups))) (gnus-message 7 "gnus-sync: loaded %d groups (out of %d) from %s" - (length valid-nodes) - (length gnus-sync-newsrc-loader) + valid-count (length gnus-sync-newsrc-loader) gnus-sync-backend) + (when invalid-groups + (gnus-message + 7 + "gnus-sync: skipped %d groups (out of %d) from %s" + (length invalid-groups) + (length gnus-sync-newsrc-loader) + gnus-sync-backend) + (gnus-message 9 "gnus-sync: skipped groups: %s" + (mapconcat 'identity invalid-groups ", "))) (setq gnus-sync-newsrc-loader nil))) (nil)) ;; make the hashtable again because the newsrc-alist may have been modified |