Merge from gnus--rel--5.10

Patches applied:

 * gnus--rel--5.10  (patch 126-127)

   - Merge from emacs--devo--0
   - Update from CVS

2006-08-23  Andreas Seltenreich  <uwi7@rz.uni-karlsruhe.de>

   [ Backported bug fix from No Gnus. ]

   * lisp/gnus/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.

   * lisp/gnus/gnus-util.el (gnus-group-server): Copy required macro from No Gnus.

Revision: emacs@sv.gnu.org/emacs--devo--0--patch-410
This commit is contained in:
Miles Bader 2006-08-25 02:15:02 +00:00
parent 1063efe807
commit 6c5d6b6ce7
3 changed files with 29 additions and 2 deletions

View file

@ -1,3 +1,14 @@
2006-08-23 Andreas Seltenreich <uwi7@rz.uni-karlsruhe.de>
[ Backported bug fix from No Gnus. ]
* 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): Copy required macro from No Gnus.
2006-08-13 Romain Francoise <romain@orebokech.com>
* mm-extern.el (mm-extern-mail-server): End `y-or-n-p' prompt with a

View file

@ -607,6 +607,17 @@ If N, return the Nth ancestor instead."
(substring gname (match-end 0))
gname)))
(defmacro gnus-group-server (group)
"Find the server name of a foreign newsgroup.
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) (or
(match-string 2 gname)
""))
(format "%s:%s" (car gnus-select-method) (cadr gnus-select-method)))))
(defun gnus-make-sort-function (funs)
"Return a composite sort condition based on the functions in FUNS."
(cond

View file

@ -4079,8 +4079,13 @@ If NEWSGROUP is nil, return the global kill file name instead."
(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)