[PATCH 1/1] 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)
committerW. Trevor King <wking@tremily.us>
Fri, 7 Nov 2014 17:59:28 +0000 (09:59 -0800)
25/2e0b4c4361413679cb43f61531ffda61b15b07 [new file with mode: 0644]

diff --git a/25/2e0b4c4361413679cb43f61531ffda61b15b07 b/25/2e0b4c4361413679cb43f61531ffda61b15b07
new file mode 100644 (file)
index 0000000..2cdd0ad
--- /dev/null
@@ -0,0 +1,84 @@
+Return-Path: <too@guru-group.fi>\r
+X-Original-To: notmuch@notmuchmail.org\r
+Delivered-To: notmuch@notmuchmail.org\r
+Received: from localhost (localhost [127.0.0.1])\r
+       by olra.theworths.org (Postfix) with ESMTP id AA228431FBF\r
+       for <notmuch@notmuchmail.org>; Mon, 27 Jan 2014 12:23:54 -0800 (PST)\r
+X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: 0\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[none]\r
+       autolearn=disabled\r
+Received: from olra.theworths.org ([127.0.0.1])\r
+       by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
+       with ESMTP id tb-fHVb1MIYk for <notmuch@notmuchmail.org>;\r
+       Mon, 27 Jan 2014 12:23:45 -0800 (PST)\r
+Received: from guru.guru-group.fi (guru.guru-group.fi [46.183.73.34])\r
+       by olra.theworths.org (Postfix) with ESMTP id 6B297431FBC\r
+       for <notmuch@notmuchmail.org>; Mon, 27 Jan 2014 12:23:45 -0800 (PST)\r
+Received: by guru.guru-group.fi (Postfix, from userid 501)\r
+       id 2785310008B; Mon, 27 Jan 2014 22:23:39 +0200 (EET)\r
+From: Tomi Ollila <tomi.ollila@iki.fi>\r
+To: notmuch@notmuchmail.org\r
+Subject: [PATCH 1/1] emacs: initialize ido(-completing-read) in emacs 23.[123]\r
+Date: Mon, 27 Jan 2014 22:23:37 +0200\r
+Message-Id: <1390854217-7281-1-git-send-email-tomi.ollila@iki.fi>\r
+X-Mailer: git-send-email 1.8.0\r
+In-Reply-To: <m24n4q5xf9.fsf@guru.guru-group.fi>\r
+References: <m24n4q5xf9.fsf@guru.guru-group.fi>\r
+Cc: tomi.ollila@iki.fi\r
+X-BeenThere: notmuch@notmuchmail.org\r
+X-Mailman-Version: 2.1.13\r
+Precedence: list\r
+List-Id: "Use and development of the notmuch mail system."\r
+       <notmuch.notmuchmail.org>\r
+List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
+List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
+List-Post: <mailto:notmuch@notmuchmail.org>\r
+List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
+List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
+X-List-Received-Date: Mon, 27 Jan 2014 20:23:54 -0000\r
+\r
+Otherwise `ido-completing-read' will freeze after PROMPT is displayed.\r
+---\r
+\r
+I tested this on emacs 23.1 & 24.3.\r
+\r
+I also tested this by adding (sit-for 2.0) inside the advice -- this\r
+lead to the addition of (ad-activate 'ido-completing-read (*)).\r
+\r
+(*) http://lists.gnu.org/archive/html/emacs-pretest-bug/2003-02/msg00087.html\r
+\r
+ emacs/notmuch-mua.el | 13 +++++++++++++\r
+ 1 file changed, 13 insertions(+)\r
+\r
+diff --git a/emacs/notmuch-mua.el b/emacs/notmuch-mua.el\r
+index 00cd980..481abd7 100644\r
+--- a/emacs/notmuch-mua.el\r
++++ b/emacs/notmuch-mua.el\r
+@@ -287,6 +287,19 @@ the From: header is already filled in by notmuch."\r
\r
+ (defvar notmuch-mua-sender-history nil)\r
\r
++;; Workaround: Running `ido-completing-read' in emacs 23.1, 23.2 and 23.3\r
++;; without some explicit initialization fill freeze the operation.\r
++;; Hence, we advice `ido-completing-read' to ensure required initialization\r
++;; is done.\r
++(if (and (= emacs-major-version 23) (< emacs-minor-version 4))\r
++    (defadvice ido-completing-read (before notmuch-ido-mode-init activate)\r
++      (ido-init-completion-maps)\r
++      (add-hook 'minibuffer-setup-hook 'ido-minibuffer-setup)\r
++      (add-hook 'choose-completion-string-functions\r
++              'ido-choose-completion-string)\r
++      (ad-disable-advice 'ido-completing-read 'before 'notmuch-ido-mode-init)\r
++      (ad-activate 'ido-completing-read)))\r
++\r
+ (defun notmuch-mua-prompt-for-sender ()\r
+   (interactive)\r
+   (let (name addresses one-name-only)\r
+-- \r
+1.8.0\r
+\r