(eval-when-compile
(require 'mm-url)
- (require 'nnselect)
(let ((features (cons 'gnus-group features)))
(require 'gnus-sum))
(unless (boundp 'gnus-cache-active-hashtb)
(nnheader-get-report backend))))
t))
-(defun gnus-group-make-permanent-search-group (&optional arg specs)
- (interactive "P")
- (gnus-group-make-search-group arg t specs))
-
-(defun gnus-group-make-search-group (&optional arg perm specs)
- "Create an nnselect group based on a search. Prompt for a
-search query and determine the groups to search as follows: if
-called from the *Server* buffer search all groups belonging to
-the server on the current line; if called from the *Group* buffer
-search any marked groups, or the group on the current line, or
-all the groups under the current topic. Calling with a prefix-arg
-means the search query will be passed raw to the . A
-non-nil `specs' arg must be an alist with `search-query-spec' and
-`search-group-spec' keys, and skips all prompting."
- (interactive "P")
- (require 'gnus-search)
- (let* ((group-spec
- (or (cdr (assq 'search-group-spec specs))
- (if (gnus-server-server-name)
- (list (list (gnus-server-server-name)))
- (nnselect-categorize
- (or gnus-group-marked
- (if (gnus-group-group-name)
- (list (gnus-group-group-name))
- (when (gnus-topic-mode-p)
- (cdr (assoc (gnus-group-topic-name) gnus-topic-alist)))))
- gnus-group-server))))
- (query-spec
- (or (cdr (assq 'search-query-spec specs))
- (list (cons 'query
- (read-string "Query: " nil 'gnus-search-history))
- (cons 'raw arg)))))
- (if perm
- (let ((name (read-string "Group name: " nil)))
- (gnus-group-make-group
- name
- (list 'nnselect "nnselect")
- nil
- (list
- (cons 'nnselect-specs
- (list
- (cons 'nnselect-function 'gnus-search-run-query)
- (cons 'nnselect-args
- (list (cons 'search-query-spec query-spec)
- (cons 'search-group-spec group-spec))))))))
- (gnus-group-read-ephemeral-group
- (concat "nnselect-" (message-unique-id))
- (list 'nnselect "nnselect")
- nil
- (cons (current-buffer) gnus-current-window-configuration)
- ; nil
- nil nil
- (list
- (cons 'nnselect-specs
- (list
- (cons 'nnselect-function 'gnus-search-run-query)
- (cons 'nnselect-args
- (list (cons 'search-query-spec query-spec)
- (cons 'search-group-spec group-spec)))))
- (cons 'nnselect-artlist nil))))))
-
(defun gnus-group-delete-groups (&optional arg)
"Delete the current group. Only meaningful with editable groups."
(interactive "P")
(gnus-group-real-name group)
(list 'nndir (gnus-group-real-name group) (list 'nndir-directory dir)))))
-
-(autoload 'nnir-make-specs "nnir")
+(autoload 'gnus-search-make-specs "gnus-search")
(autoload 'gnus-group-topic-name "gnus-topic")
;; Temporary to make group creation easier
-(defun gnus-group-make-search-group (nnir-extra-parms &optional specs)
+(defun gnus-group-make-search-group (arg &optional specs)
(interactive "P")
- (let ((name (gnus-read-group "Group name: ")))
- (with-current-buffer gnus-group-buffer
+ (let ((name (read-string "Group name: " nil)))
+ (with-current-buffer gnus-group-buffer
(gnus-group-make-group
name
(list 'nnselect "nnselect")
(list
(cons 'nnselect-specs
(list
- (cons 'nnselect-function 'nnir-run-query)
+ (cons 'nnselect-function 'gnus-search-run-query)
(cons 'nnselect-args
- (nnir-make-specs nnir-extra-parms specs)))))))))
+ (gnus-search-make-specs arg specs))))))))
-(defun gnus-group-read-ephemeral-search-group (nnir-extra-parms &optional specs)
+(defun gnus-group-read-ephemeral-search-group (arg &optional specs)
"Create an nnselect group based on a search. Prompt for a
search query and determine the groups to search as follows: if
called from the *Server* buffer search all groups belonging to
the server on the current line; if called from the *Group* buffer
search any marked groups, or the group on the current line, or
all the groups under the current topic. Calling with a prefix-arg
-prompts for additional search-engine specific constraints. A
-non-nil `specs' arg must be an alist with `nnir-query-spec' and
-`nnir-group-spec' keys, and skips all prompting."
+prevents parsing of the query. A non-nil `specs' arg must be an
+alist with `search-query-spec' and `search-group-spec' keys, and
+skips all prompting."
(interactive "P")
(gnus-group-read-ephemeral-group
(concat "nnselect-" (message-unique-id))
(list
(cons 'nnselect-specs
(list
- (cons 'nnselect-function 'nnir-run-query)
+ (cons 'nnselect-function 'gnus-search-run-query)
(cons 'nnselect-args
- (nnir-make-specs nnir-extra-parms specs))))
+ (gnus-search-make-specs arg specs))))
(cons 'nnselect-artlist nil))))
(defun gnus-group-add-to-virtual (n vgroup)
(require 'gnus-art)
-(require 'nnir)
+(require 'gnus-search)
(eval-when-compile (require 'cl-lib))
group))
-;; (defun nnselect-server-opened (&optional server)
-;; "Open SERVER if not yet opened."
-;; (let ((backend (car (gnus-server-to-method server))))
-;; (nnoo-current-server-p (or backend 'nnselect) server)))
-
-(deffoo nnselect-server-opened (&optional _server)
- t)
-
-
(declare-function gnus-registry-get-id-key "gnus-registry"
(id key))
(defun nnselect-search-thread (header)
(declare-function gnus-registry-get-id-key "gnus-registry" (id key))
-(defun gnus-summary-make-search-group (nnir-extra-parms)
+(defun gnus-summary-make-search-group (extra-parms)
"Search a group from the summary buffer."
(interactive "P")
(gnus-warp-to-article)
(let ((spec
(list
- (cons 'nnir-group-spec
+ (cons 'search-group-spec
(list (list
(gnus-group-server gnus-newsgroup-name)
gnus-newsgroup-name))))))
- (gnus-group-make-search-group nnir-extra-parms spec)))
+ (gnus-group-make-search-group extra-parms spec)))
;; The end.
(provide 'nnselect)