]> rtime.felk.cvut.cz Git - notmuch.git/commitdiff
emacs: initialize ido(-completing-read) in emacs 23.[123]
authorTomi Ollila <tomi.ollila@iki.fi>
Mon, 27 Jan 2014 20:23:37 +0000 (22:23 +0200)
committerDavid Bremner <david@tethera.net>
Mon, 3 Feb 2014 20:20:39 +0000 (16:20 -0400)
Otherwise `ido-completing-read' will freeze after PROMPT is displayed.

emacs/notmuch-mua.el

index 00cd9808c1141f8e6ae470eaa63f2482652bfa5d..481abd7c3ba1df6db86d532817b67c64a802f0d9 100644 (file)
@@ -287,6 +287,19 @@ the From: header is already filled in by notmuch."
 
 (defvar notmuch-mua-sender-history nil)
 
+;; Workaround: Running `ido-completing-read' in emacs 23.1, 23.2 and 23.3
+;; without some explicit initialization fill freeze the operation.
+;; Hence, we advice `ido-completing-read' to ensure required initialization
+;; is done.
+(if (and (= emacs-major-version 23) (< emacs-minor-version 4))
+    (defadvice ido-completing-read (before notmuch-ido-mode-init activate)
+      (ido-init-completion-maps)
+      (add-hook 'minibuffer-setup-hook 'ido-minibuffer-setup)
+      (add-hook 'choose-completion-string-functions
+               'ido-choose-completion-string)
+      (ad-disable-advice 'ido-completing-read 'before 'notmuch-ido-mode-init)
+      (ad-activate 'ido-completing-read)))
+
 (defun notmuch-mua-prompt-for-sender ()
   (interactive)
   (let (name addresses one-name-only)