Subject: Re: bug#14304: 24.3.50; Gnus gnus-summary-respool-article broken due to gnus-completing-read

From: Katsumi Yamaoka <[email-masked]>
Date: Wed, 01 May 2013 09:29:21 +0900

[email-masked] wrote:
> Recipe:

> In a Gnus Summary buffer, type `B q' (gnus-summary-respool-query) to
> "Query where the respool algorithm would put this article."
> ==> Fine, it displays the expected group.

> Now do `B r' (gnus-summary-respool-article) to actually "Respool the
> current article."

> - Prompt "Backend to use when respooling (default nnml): ", I hit
>   RET.  Fine.

> - Prompt "Server name: ", TAB gives "no match".  What?  I'm sure that
>   I have several nnml backends:

> ,----[ <f1> v gnus-server-alist RET ]
>| gnus-server-alist is a variable defined in `gnus.el'.
>| Its value is shown below.
>|
>| Documentation:
>| List of available servers.
>|
>| Value: (("personal" nnml "personal"
>|   (nnml-directory "~/Mail/personal")
>|   [...]
>|   (nnml-get-new-mail t)
>|   (nnml-active-file "~/Mail/var/nnml/personal/active"))
>|  ("archive" nnml "archive"
>|   (nnml-directory "~/News/archive")
>|   [...]
>|   (nnml-get-new-mail nil)
>|   (nnml-active-file "~/News/var/nnml/archive/active"))
>|  [...]
> `----

> I'm sure that this worked correctly in the past, probably before the
> changes done WRT `gnus-completing-read' around 2010-09-27.

> ,----
>| 2010-09-27  Julien Danjou  <[email-masked]>
>|
>| 	* gnus-util.el (gnus-completing-read): Use gnus-use-ido to apply the
>| 	right completing-read function.
>| 	(gnus-use-ido): New variable
>| 	(gnus-completing-read-with-default): Remove.
>|[...]
>| 	* gnus-sum.el (gnus-summary-goto-article, gnus-summary-limit-to-extra)
>| 	(gnus-summary-execute-command, gnus-summary-respool-article)
>| 	(gnus-read-move-group-name):
>|       [...]
>| 	* gnus-registry.el (gnus-registry-read-mark): Use gnus-completing-read.
> `----

Fixed.  Though, it's not exactly equal to Emacs's completing-read,
i.e.:

(completing-read "What? " '(foo "bar" (baz))) ;; Doesn't work
(gnus-completing-read "What? " '(foo "bar" (baz))) ;; Works

Please rise a new bug thread if there's a problem in the other
candidates for gnus-completing-read-function.