diff lisp/gnus/gnus-sync.el @ 109777:729aca322fce

Doc fixes and keep unknown groups. From Ted Zlatanov <tzz@lifelogs.com>. * gnus-sync.el: Fix docs. (gnus-sync-save): Keep unknown groups in `gnus-sync-newsrc-loader'. (gnus-sync-read): Don't wipe `gnus-sync-newsrc-loader' after reading.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Sat, 14 Aug 2010 10:45:32 +0000
parents 7a46ef068de4
children e253995f955c
line wrap: on
line diff
--- a/lisp/gnus/gnus-sync.el	Sat Aug 14 11:46:48 2010 +0300
+++ b/lisp/gnus/gnus-sync.el	Sat Aug 14 10:45:32 2010 +0000
@@ -31,10 +31,10 @@
 ;; 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
+;; (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")
-;;       gnus-sync-newsrc-vars `(read marks))
+;;       gnus-sync-newsrc-offsets `(2 3))
 
 ;; TODO:
 
@@ -95,15 +95,19 @@
     ;; populate gnus-sync-newsrc-loader from all but the first dummy
     ;; entry in gnus-newsrc-alist whose group matches any of the
     ;; gnus-sync-newsrc-groups
-    (let ((gnus-sync-newsrc-loader
-           (loop for entry in (cdr gnus-newsrc-alist)
-                 when (gnus-grep-in-list
-                       (car entry)     ;the group name
-                       gnus-sync-newsrc-groups)
-                 collect (cons (car entry)
-                               (mapcar (lambda (offset)
-                                         (cons offset (nth offset entry)))
-                                       gnus-sync-newsrc-offsets)))))
+    (let* ((loader
+            (loop for entry in (cdr gnus-newsrc-alist)
+                  when (gnus-grep-in-list
+                        (car entry)     ;the group name
+                        gnus-sync-newsrc-groups)
+                  collect (cons (car entry)
+                                (mapcar (lambda (offset)
+                                          (cons offset (nth offset entry)))
+                                        gnus-sync-newsrc-offsets))))
+           (gnus-sync-newsrc-loader
+            (nunion gnus-sync-newsrc-loader
+                    (set-difference gnus-sync-newsrc-loader loader :key 'car)
+                    :key 'car)))
 
       (with-temp-file gnus-sync-backend
         (progn
@@ -189,8 +193,7 @@
                (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)))
+                            (mapconcat 'identity invalid-groups ", ")))))
           (nil))
     ;; make the hashtable again because the newsrc-alist may have been modified
     (when gnus-sync-newsrc-offsets