looking up the method using GROUP's prefix before inventing a new one.
It is used on killed/unknown groups in various places where returning
an all-new method isn't expected by the caller.
* gnus-util.el (gnus-group-server): Fix for empty virtual server names
and match semantics of gnus-group-real-prefix.
+2006-06-25 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de>
+
+ * gnus.el (gnus-find-method-for-group): On killed/unknown groups, try
+ looking up the method using GROUP's prefix before inventing a new one.
+ It is used on killed/unknown groups in various places where returning
+ an all-new method isn't expected by the caller.
+
+ * gnus-util.el (gnus-group-server): Fix for empty virtual server names
+ and match semantics of gnus-group-real-prefix.
+
2006-06-22 Reiner Steib <Reiner.Steib@gmx.de>
* nnmail.el (nnmail-broken-references-mailers): New variable.
For example, (gnus-group-server \"nnimap+yxa:INBOX.foo\") would
yield \"nnimap:yxa\"."
`(let ((gname ,group))
- (if (string-match "^\\([^+]+\\).\\([^:]+\\):" gname)
- (format "%s:%s" (match-string 1 gname) (match-string 2 gname))
+ (if (string-match "^\\([^:+]+\\)\\(?:\\+\\([^:]*\\)\\)?:" gname)
+ (format "%s:%s" (match-string 1 gname) (or
+ (match-string 2 gname)
+ ""))
(format "%s:%s" (car gnus-select-method) (cadr gnus-select-method)))))
(defun gnus-make-sort-function (funs)
(or gnus-override-method
(and (not group)
gnus-select-method)
- (and (not (gnus-group-entry group)) ;; a new group
- (gnus-group-name-to-method group))
+ (and (not (gnus-group-entry group))
+ ;; Killed or otherwise unknown group.
+ (or
+ ;; If we know a virtual server by that name, return its method.
+ (gnus-server-to-method (gnus-group-server group))
+ ;; Guess a new method as last resort.
+ (gnus-group-name-to-method group)))
(let ((info (or info (gnus-get-info group)))
method)
(if (or (not info)