emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] feature/gnus-select2 514f0cb 04/32: Temporary function to


From: Andrew G Cohen
Subject: [Emacs-diffs] feature/gnus-select2 514f0cb 04/32: Temporary function to ease search group creation
Date: Sun, 16 Dec 2018 06:54:00 -0500 (EST)

branch: feature/gnus-select2
commit 514f0cbac33d199216d96749497914f5954b720e
Author: Andrew G Cohen <address@hidden>
Commit: Andrew G Cohen <address@hidden>

    Temporary function to ease search group creation
    
    * 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 |  3 +++
 lisp/gnus/gnus-srvr.el  |  1 +
 lisp/gnus/nnselect.el   | 54 +++++++++++++++++++++++++++++++++----------------
 3 files changed, 41 insertions(+), 17 deletions(-)

diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el
index c799550..a7676ee 100644
--- a/lisp/gnus/gnus-group.el
+++ b/lisp/gnus/gnus-group.el
@@ -49,6 +49,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")
@@ -669,6 +670,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
@@ -915,6 +917,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]
diff --git a/lisp/gnus/gnus-srvr.el b/lisp/gnus/gnus-srvr.el
index 05f9f74..617db40 100644
--- a/lisp/gnus/gnus-srvr.el
+++ b/lisp/gnus/gnus-srvr.el
@@ -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-exit-hook nil
   "Hook run when exiting the server buffer."
diff --git a/lisp/gnus/nnselect.el b/lisp/gnus/nnselect.el
index 89255ee..095597a 100644
--- a/lisp/gnus/nnselect.el
+++ b/lisp/gnus/nnselect.el
@@ -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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]