Change how cloud files are specified
authorLars Ingebrigtsen <larsi@building.gnus.org>
Tue, 4 Feb 2014 00:07:03 +0000 (16:07 -0800)
committerLars Ingebrigtsen <larsi@building.gnus.org>
Tue, 4 Feb 2014 00:07:03 +0000 (16:07 -0800)
lisp/gnus-cloud.el

index 75c1416..133e6c1 100644 (file)
   "Syncing Gnus data via IMAP."
   :group 'gnus)
 
-(defcustom gnus-cloud-synced-files '("~/\\.authinfo"
-                                    "~/\\.authinfo\\.gpg"
-                                    "~/\\.gnus\\.el"
-                                    "~/News/.*.SCORE")
+(defcustom gnus-cloud-synced-files
+  '("~/.authinfo"
+    "~/.authinfo.gpg"
+    "~/.gnus.el"
+    (:directory "~/News" :match ".*.SCORE\\'"))
   "List of file regexps that should be kept up-to-date via the cloud."
   :group 'gnus-cloud
   :type '(repeat regexp))
 
 (defun gnus-cloud-file-covered-p (file-name)
   (let ((matched nil))
-    (dolist (regexp gnus-cloud-synced-files)
-      (when (string-match regexp file-name)
-       (setq matched t)))
+    (dolist (elem gnus-cloud-synced-files)
+      (cond
+       ((stringp elem)
+       (when (equal elem file-name)
+         (setq matched t)))
+       ((consp elem)
+       (when (and (equal (directory-file-name (plist-get elem :directory))
+                         (directory-file-name (file-name-directory file-name)))
+                  (string-match (plist-get elem :match)
+                                (file-name-nondirectory file-name)))
+         (setq matched t)))))
     matched))
 
 (provide 'gnus-cloud)