]> git.eshelyaron.com Git - emacs.git/commitdiff
Temporary function to ease search group creation
authorAndrew G Cohen <cohen@andy.bu.edu>
Tue, 25 Apr 2017 01:55:36 +0000 (09:55 +0800)
committerAndrew G Cohen <cohen@andy.bu.edu>
Tue, 25 Apr 2017 01:55:36 +0000 (09:55 +0800)
* lisp/gnus/nnselect.el (gnus-group-make-permanent-search-group):
(gnus-group-make-search-group): Allow permanent group creation.
* lisp/gnus/gnus-group.el (gnus-group-group-map): Bind it to "G g" in
the group buffer.

lisp/gnus/gnus-group.el
lisp/gnus/gnus-srvr.el
lisp/gnus/nnselect.el

index 9fcb3c1f697762e31f929232aa63be9f764534c3..3678abc4c5ffde74c9de1f2651230fde81ff0b9e 100644 (file)
@@ -50,6 +50,7 @@
 (autoload 'gnus-cache-total-fetched-for "gnus-cache")
 
 (autoload 'gnus-group-make-search-group "nnselect")
+(autoload 'gnus-group-make-permanent-search-group "nnselect")
 
 (autoload 'gnus-cloud-upload-all-data "gnus-cloud")
 (autoload 'gnus-cloud-download-all-data "gnus-cloud")
@@ -672,6 +673,7 @@ simple manner."
   "f" gnus-group-make-doc-group
   "w" gnus-group-make-web-group
   "G" gnus-group-make-search-group
+  "g" gnus-group-make-permanent-search-group
   "M" gnus-group-read-ephemeral-group
   "r" gnus-group-rename-group
   "R" gnus-group-make-rss-group
@@ -918,6 +920,7 @@ simple manner."
        ["Make a doc group..." gnus-group-make-doc-group t]
        ["Make a web group..." gnus-group-make-web-group t]
        ["Make a search group..." gnus-group-make-search-group t]
+       ["Make a permanent search group..." gnus-group-make-permanent-search-group t]
        ["Make a virtual group..." gnus-group-make-empty-virtual t]
        ["Add a group to a virtual..." gnus-group-add-to-virtual t]
        ["Make an ephemeral group..." gnus-group-read-ephemeral-group t]
index 24e5b1c330a97f7ea239ce29ce480eb27575acc3..1d7ad90fd91c2899a296b80e827d5484d21dc91f 100644 (file)
@@ -35,6 +35,7 @@
 (require 'gnus-cloud)
 
 (autoload 'gnus-group-make-search-group "nnselect")
+(autoload 'gnus-group-make-permanent-search-group "nnselect")
 
 (defcustom gnus-server-mode-hook nil
   "Hook run in `gnus-server-mode' buffers."
index 89255ee7b19d331cebb9e378a0b7b4d76d117ef5..095597a3243c9a6e85b2f71ae35a9de5f241db1f 100644 (file)
@@ -71,7 +71,7 @@
 (defvar gnus-inhibit-demon)
 (defvar gnus-message-group-art)
 
-;; (defvoo nnselect-artlist nil
+;; (defvar nnselect-artlist nil
 ;;   "Internal: stores the list of articles.")
 
 
@@ -721,7 +721,14 @@ originating groups."
 (declare-function nnir-read-parms "nnir" (search-engine))
 (declare-function nnir-server-to-search-engine "nnir" (server))
 
-(defun gnus-group-make-search-group (nnir-extra-parms &optional specs)
+
+;; Temporary to make group creation easier
+
+(defun gnus-group-make-permanent-search-group (nnir-extra-parms &optional specs)
+  (interactive "P")
+  (gnus-group-make-search-group nnir-extra-parms specs t))
+
+(defun gnus-group-make-search-group (nnir-extra-parms &optional specs perm)
   "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
@@ -753,21 +760,34 @@ non-nil `specs' arg must be an alist with `nnir-query-spec' and
                (lambda (x)
                  (nnir-read-parms (nnir-server-to-search-engine (car x))))
                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 'nnir-run-query)
-            (cons 'nnselect-args
-                  (list (cons 'nnir-query-spec query-spec)
-                        (cons 'nnir-group-spec group-spec)))))
-      (cons 'nnselect-artlist nil)))))
+    (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 'nnir-run-query)
+                  (cons 'nnselect-args
+                        (list (cons 'nnir-query-spec query-spec)
+                              (cons 'nnir-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 'nnir-run-query)
+              (cons 'nnselect-args
+                    (list (cons 'nnir-query-spec query-spec)
+                          (cons 'nnir-group-spec group-spec)))))
+       (cons 'nnselect-artlist nil))))))
 
 
 ;; The end.