]> git.eshelyaron.com Git - emacs.git/commitdiff
nnir.el (gnus-group-make-nnir-group): Allow optional search query argument.
authorAndrew Cohen <cohen@andy.bu.edu>
Wed, 20 Jul 2011 15:24:16 +0000 (15:24 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Wed, 20 Jul 2011 15:24:16 +0000 (15:24 +0000)
 (gnus-group-make-nnir-group, nnir-request-group, nnir-run-query): Use `nnir-address' to handle server info rather than passing an arg.

lisp/gnus/ChangeLog
lisp/gnus/nnir.el

index 3dc1fe142bf88def65351767b69c4370875992f5..a1cb003a8ff8dbb6d4874156d3b3b9a45a1ff7eb 100644 (file)
@@ -1,5 +1,10 @@
 2011-07-20  Andrew Cohen  <cohen@andy.bu.edu>
 
+       * nnir.el (gnus-group-make-nnir-group): Allow optional search query
+       argument.
+       (gnus-group-make-nnir-group, nnir-request-group, nnir-run-query): Use
+       `nnir-address' to handle server info rather than passing an arg.
+
        * nnimap.el (nnimap-make-thread-query): New utility function to format
        an imap thread search query.
        (nnimap-request-thread): Use it.
index 3f140ef59d96fb209f3d7c4ffd28d34ed1092b98..9840dddcb66bbdc62533282558d7d183d98b641b 100644 (file)
@@ -296,6 +296,9 @@ is `(valuefunc member)'."
 (nnoo-declare nnir)
 (nnoo-define-basics nnir)
 
+(defvoo nnir-address nil
+  "The address of the nnir server.")
+
 (gnus-declare-backend "nnir" 'mail)
 
 
@@ -582,18 +585,17 @@ Add an entry here when adding a new search engine.")
 
 ;; Gnus glue.
 
-(defun gnus-group-make-nnir-group (nnir-extra-parms)
+(defun gnus-group-make-nnir-group (nnir-extra-parms &optional parms)
   "Create an nnir group.  Asks for query."
   (interactive "P")
   (setq nnir-current-query nil
        nnir-current-server nil
        nnir-current-group-marked nil
        nnir-artlist nil)
-  (let* ((query (read-string "Query: " nil 'nnir-search-history))
-        (parms (list (cons 'query query)))
-        (srv (if (gnus-server-server-name)
-                 "all" "")))
-    (add-to-list 'parms (cons 'unique-id (message-unique-id)) t)
+  (let* ((query (unless parms (read-string "Query: " nil 'nnir-search-history)))
+        (parms (or parms (list (cons 'query query))))
+        (srv (or (cdr (assq 'server parms)) (gnus-server-server-name) "nnir")))
+   (add-to-list 'parms (cons 'unique-id (message-unique-id)) t)
     (gnus-group-read-ephemeral-group
      (concat "nnir:" (prin1-to-string parms)) (list 'nnir srv) t
      (cons (current-buffer) gnus-current-window-configuration)
@@ -617,7 +619,7 @@ Add an entry here when adding a new search engine.")
                (equal server nnir-current-server)))
       nnir-artlist
     ;; Cache miss.
-    (setq nnir-artlist (nnir-run-query group server)))
+    (setq nnir-artlist (nnir-run-query group)))
   (with-current-buffer nntp-server-buffer
     (setq nnir-current-query group)
     (when server (setq nnir-current-server server))
@@ -1594,14 +1596,13 @@ actually)."
 
 (autoload 'gnus-group-topic-name "gnus-topic")
 
-(defun nnir-run-query (query nserver)
+(defun nnir-run-query (query)
   "Invoke appropriate search engine function (see `nnir-engines').
   If some groups were process-marked, run the query for each of the groups
   and concat the results."
   (let ((q (car (read-from-string query)))
-        (groups (if (string= "all-ephemeral" nserver)
-                   (with-current-buffer gnus-server-buffer
-                     (list (list (gnus-server-server-name))))
+        (groups (if (not (string= "nnir" nnir-address))
+                   (list (list nnir-address))
                  (nnir-categorize
                   (or gnus-group-marked
                       (if (gnus-group-group-name)