gnus-summary-respool-article (B r) no longer works in emacs 24
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
emacs24 (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
In emacs24, gnus-summary-
It prompts me for the backend to use (nnfolder), but then doesn't find
any servers for nnfolder and doesn't offer me any completions for the
server question and won't accept anything I type.
The relevant change appears to be this one in gnus-sum.el:
| @@ -9945,7 +10202,7 @@
| (car ms))
| (t
| (let ((ms-alist (mapcar (lambda (m) (cons (cadr m) m)) ms)))
| - (cdr (assoc (completing-read "Server name: " ms-alist nil t)
| + (cdr (assoc (gnus-completin
| ms-alist))))))))
| (unless method
| (error "No method given for respooling"))
If I switch it back to completing-read, gnus-summary-
works again. Looking at gnus-completing
gnus-completing
i.e. gnus-emacs-
Looking at that function:
| (defun gnus-emacs-
| initial-input history def)
| "Call standard `completing-
| (let ((completion-styles gnus-completion
| (completing-read prompt
| ;; Old XEmacs (at least 21.4) expect an alist for
| ;; collection.
| (mapcar 'list collection)
| nil require-match initial-input history def)))
The problem appears to be the mapcar. If I replace it with just
'collection', gnus-summary-
Thanks for taking the time to report this bug. It looks like you've managed to pin-point the issue here! Have you considered sending a patch upstream?
I just had a quick peek at lp:emacs trunk and it seems they still use mapcar currently. I don't fully understand what that function is trying to do, but it seems to just result in transforming the list into a list of single-length lists, like so:
ELISP> (mapcar 'list '(1 2 3))
((1)
(2)
(3))
It's not clear to me why this would be desirable though.