;; 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,
;; 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.; 59 Temple Place, Suite 330; Boston, MA 02111-1307, 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
\"~/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)
"-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))))
(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))
- "/"))
- (push (cons (concat (cdr pair) (substring dir 1)) group)
+ (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
+ ;; have drive letters at their top.
+ (substring dir (1+ (string-match "/" dir))))
+ group)
alist)))))
gnus-newsrc-hashtb)
(dolist (pair (nconc agent cache alist))
(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
(provide 'gnus-namazu)
-;;; arch-tag: a6814a35-593a-4563-8157-a2b762c29ed8
;; gnus-namazu.el ends here.