Bug: emacs 23.2 doesn't like ido-completing-read

Mark Walters markwalters1009 at gmail.com
Sat Feb 4 04:31:57 PST 2012


On Mon, 30 Jan 2012 10:21:38 +0000, Mark Walters <markwalters1009 at gmail.com> wrote:
> On Mon, 30 Jan 2012 09:39:32 +0000, David Edmondson <dme at dme.org> wrote:
> > On Sun, 29 Jan 2012 23:17:55 +0000, Mark Walters <markwalters1009 at gmail.com> wrote:
> > > I have been experimenting with notmuch-always-prompt-for-sender on my
> > > debian stable setup (emacs 23.2.1) and it doesn't like
> > > ido-completing-read. It goes to the minibuffer and then it seems to be
> > > impossible to exit the minibuffer.
> > > 
> > > I can find an emacs bug report #3274 and some discussion
> > > http://comments.gmane.org/gmane.emacs.bugs/27856 which indicates that it
> > > is a problem with ido initialisation. Unfortunately I can't get from there to a
> > > solution (except upgrade emacs).
> > 
> > I'm not sure that notmuch-mua.el should be using `ido-completing-read',
> > and certainly not without `require'ing it.
> > 
> > Is there a particular thing required that `completing-read' doesn't do?
> 
> Thanks for the suggestion: I can confirm that with ido-completing-read
> replaced by completing-read it works nicely. The "ido" version shows the
> possibilities for you which is nice, but this works fine.

I hadn't realised before but this also goes wrong if you use the prefix
argument to mail (eg ctrl-u m). The current code seems to mess up the
mini-buffer and even closing the buffer does not get out of it.

Changing ido-completing-read read to completing-read seems to fix the
problem entirely. Since this will affect most debian stable users (*) I
think we should fix it. The trivial patch below works for me but other solutions
may be better as they could maintain the benefits of ido-completing-read
(eg that it shows the possibilities).

Best wishes

Mark

(*) Perhaps only those who have more than one email address.

diff --git a/emacs/notmuch-mua.el b/emacs/notmuch-mua.el
index 023645e..41f82c2 100644
--- a/emacs/notmuch-mua.el
+++ b/emacs/notmuch-mua.el
@@ -191,7 +191,7 @@ the From: header is already filled in by notmuch."
     ;; Now prompt the user, either for an email address only or for a full identity.
     (if one-name-only
 	(let ((address
-	       (ido-completing-read (concat "Sender address for " name ": ") addresses
+	       (completing-read (concat "Sender address for " name ": ") addresses
 				    nil nil nil 'notmuch-mua-sender-history (car addresses))))
 	  (concat name " <" address ">"))
       (ido-completing-read "Send mail From: " notmuch-identities
-- 
1.7.2.3



More information about the notmuch mailing list