Fix eldoc-in-minibuffer's modeline update.
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 4 Dec 2013 04:42:01 +0000 (23:42 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 4 Dec 2013 04:42:01 +0000 (23:42 -0500)
* lisp/emacs-lisp/eldoc.el (eldoc-minibuffer-message):
Call force-mode-line-update is the proper buffer.

Fixes: debbugs:16042

lisp/ChangeLog
lisp/emacs-lisp/eldoc.el

index b18de86..18b404f 100644 (file)
@@ -1,3 +1,8 @@
+2013-12-04  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * emacs-lisp/eldoc.el (eldoc-minibuffer-message):
+       Call force-mode-line-update is the proper buffer (bug#16042).
+
 2013-12-04  Dmitry Gutov  <dgutov@yandex.ru>
 
        * vc/log-edit.el (log-edit-add-new-comment): Rename to
index 250f938..8ec6b41 100644 (file)
@@ -216,6 +216,9 @@ expression point is on."
 Otherwise work like `message'."
   (if (minibufferp)
       (progn
+       (add-hook 'minibuffer-exit-hook
+                 (lambda () (setq eldoc-mode-line-string nil))
+                 nil t)
        (with-current-buffer
            (window-buffer
             (or (window-in-direction 'above (minibuffer-window))
@@ -226,17 +229,11 @@ Otherwise work like `message'."
            (setq mode-line-format
                  (list "" '(eldoc-mode-line-string
                             (" " eldoc-mode-line-string " "))
-                       mode-line-format))))
-       (add-hook 'minibuffer-exit-hook
-                 (lambda () (setq eldoc-mode-line-string nil))
-                 nil t)
-       (cond
-        ((null format-string)
-         (setq eldoc-mode-line-string nil))
-        ((stringp format-string)
-         (setq eldoc-mode-line-string
-               (apply 'format format-string args))))
-       (force-mode-line-update))
+                       mode-line-format)))
+          (setq eldoc-mode-line-string
+                (when (stringp format-string)
+                  (apply 'format format-string args)))
+          (force-mode-line-update)))
     (apply 'message format-string args)))
 
 (defun eldoc-message (&rest args)