diff lisp/gnus/gnus-group.el @ 28:1917ad0d78d7 r19-15b97

Import from CVS: tag r19-15b97
author cvs
date Mon, 13 Aug 2007 08:51:55 +0200
parents 441bb1e64a06
children ec9a17fef872
line wrap: on
line diff
--- a/lisp/gnus/gnus-group.el	Mon Aug 13 08:51:34 2007 +0200
+++ b/lisp/gnus/gnus-group.el	Mon Aug 13 08:51:55 2007 +0200
@@ -1544,6 +1544,8 @@
     (gnus))
   (gnus-group-read-group nil nil group))
 
+(defvar gnus-ephemeral-group-server 0)
+
 ;; Enter a group that is not in the group buffer.  Non-nil is returned
 ;; if selection was successful.
 (defun gnus-group-read-ephemeral-group (group method &optional activate 
@@ -1555,6 +1557,13 @@
 If REQUEST-ONLY, don't actually read the group; just request it.
 
 Return the name of the group is selection was successful."
+  ;; Transform the select method into a unique server.
+  (let ((saddr (intern (format "%s-address" (car method)))))
+    (setq method (gnus-copy-sequence method))
+    (unless (assq saddr method)
+      (nconc method `((,saddr ,(cadr method)))))
+    (setf (cadr method) (format "%s-%d" (cadr method)
+				(incf gnus-ephemeral-group-server))))
   (let ((group (if (gnus-group-foreign-p group) group
 		 (gnus-group-prefixed-name group method))))
     (gnus-sethash