Fix last change
[gnus] / contrib / gnus-namazu.el
index eaedeb4..91db91d 100644 (file)
@@ -8,7 +8,7 @@
 
 ;; This program is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
+;; the Free Software Foundation; either version 3, or (at your option)
 ;; any later version.
 
 ;; This program is distributed in the hope that it will be useful,
@@ -17,9 +17,7 @@
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program; if not, you can either send email to this
-;; program's maintainer or write to: The Free Software Foundation,
-;; Inc.; 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+;; along with this program; if not, see <http://www.gnu.org/licenses/>.
 
 
 ;;; Commentary:
 (require 'nnheader)
 (require 'nnmail)
 (require 'gnus-sum)
+(require 'gmm-utils)
 
 ;; To suppress byte-compile warning.
 (eval-when-compile
@@ -237,7 +236,8 @@ This means that the group \"nnimap+server:INBOX.group\" is placed in
 \"~/Maildir/.group\"."
   :group 'gnus-namazu
   :type '(repeat
-         (cons (regexp :tag "Regexp of group name")
+         (cons (choice (regexp :tag "Regexp of group name")
+                       (const :tag "Groups served by `gnus-select-method'" t))
                (string :tag "Base path of groups")))
   :set (lambda (symbol value)
         (prog1 (set-default symbol value)
@@ -336,7 +336,9 @@ This means that the group \"nnimap+server:INBOX.group\" is placed in
                       "-a"             ; show all matches
                       "-l")            ; use list format
                 gnus-namazu-additional-arguments
-                (list query)
+                (list (if gnus-namazu-command-prefix
+                          (concat "'" query "'")
+                        query))
                 gnus-namazu-index-directories)))
     (apply 'call-process (car commands) nil t nil (cdr commands))))
 
@@ -362,15 +364,21 @@ This means that the group \"nnimap+server:INBOX.group\" is placed in
           (when (memq (car (setq method (gnus-find-method-for-group group)))
                       '(nnml nnmh))
             (when (file-directory-p
-                   (setq dir (nnmail-group-pathname
-                              (gnus-group-short-name group)
-                              (gnus-namazu/server-directory method))))
+                   (setq dir (let (file-name-handler-alist)
+                               (nnmail-group-pathname
+                                (gnus-group-short-name group)
+                                (gnus-namazu/server-directory method)))))
               (push (cons dir group) alist)))
           (dolist (pair gnus-namazu-remote-groups)
-            (when (string-match (car pair) group)
-              (setq dir (nnmail-group-pathname
-                         (substring group (match-end 0))
-                         "/"))
+            (when (setq dir
+                        (or (and (eq t (car pair))
+                                 (gnus-method-equal method gnus-select-method)
+                                 group)
+                            (and (stringp (car pair))
+                                 (string-match (car pair) group)
+                                 (substring group (match-end 0)))))
+              (setq dir (let (file-name-handler-alist)
+                          (nnmail-group-pathname dir "/")))
               (push (cons (concat (cdr pair)
                                   ;; nnmail-group-pathname() on some
                                   ;; systems returns pathnames which
@@ -773,9 +781,9 @@ than the period that is set to `gnus-namazu-index-update-interval'"
 (defun gnus-namazu/update-p (directory &optional force)
   "Return the DIRECTORY when the index undef the DIRECTORY should be updated."
   (setq directory (file-name-as-directory (expand-file-name directory)))
-  (labels ((error-message (format &rest args)
-                         (apply (if force 'error 'message) format args)
-                         nil))
+  (gmm-labels ((error-message (format &rest args)
+                             (apply (if force 'error 'message) format args)
+                             nil))
     (if gnus-namazu/update-process
        (error-message "%s" "Can not run two update processes simultaneously")
       (and (or force
@@ -901,5 +909,4 @@ is called."
 
 (provide 'gnus-namazu)
 
-;;; arch-tag: a6814a35-593a-4563-8157-a2b762c29ed8
 ;; gnus-namazu.el ends here.