* lisp/gnus/message.el: Don't insert TAB in headers with completion.
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 26 Oct 2011 17:27:51 +0000 (13:27 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 26 Oct 2011 17:27:51 +0000 (13:27 -0400)
(message-completion-function): Don't fallback on message-tab-body-function
when message-completion-alist fails to find a completion.

Fixes: debbugs:9158

lisp/gnus/ChangeLog
lisp/gnus/message.el

index 8b4e993..7519252 100644 (file)
@@ -1,3 +1,9 @@
+2011-10-26  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * message.el (message-completion-function): Make sure
+       message-tab-body-function is not attempted if one of
+       message-completion-alist fails to find a completion (bug#9158).
+
 2011-10-26  Daiki Ueno  <ueno@unixuser.org>
 
        * mml.el (mml-quote-region): Quote <#secure> tag.
@@ -7,7 +13,7 @@
 
        * gnus-cite.el (gnus-message-citation-mode): Doc fix (in Emacs 24,
        calling a minor mode from Lisp with nil arg enables it, so we have to
-       make the working a bit ambiguous here).
+       make the wording a bit ambiguous here).
 
 2011-10-18  Teodor Zlatanov  <tzz@lifelogs.com>
 
index 948892d..723f8fb 100644 (file)
@@ -7888,7 +7888,11 @@ those headers."
                (let ((mail-abbrev-mode-regexp (caar alist)))
                  (not (mail-abbrev-in-expansion-header-p))))
       (setq alist (cdr alist)))
-    (cdar alist)))
+    (when (cdar alist)
+      (lexical-let ((fun (cdar alist)))
+        ;; Even if completion fails, return a non-nil value, so as to avoid
+        ;; falling back to message-tab-body-function.
+        (lambda () (funcall fun) 'completion-attempted)))))
 
 (eval-and-compile
   (condition-case nil