* emacs-lisp/eldoc.el (eldoc-post-insert-mode): Remove.
(eldoc-edit-message-commands): New function.
(eldoc-print-after-edit): New variable.
(eldoc-pre-command-refresh-echo-area): Emit message only by
eldoc-message-commands.
(eldoc-mode): Restrict eldoc-message-commands to editing commands
if eldoc-print-after-edit is set.
* progmodes/octave.el (octave-mode-menu): Adapt to change in
eldoc.
Fixes: debbugs:16346
* lisp/cus-edit.el: Use lexical-binding.
(customize-push-and-save, customize-apropos)
(custom-buffer-create-internal): Use closures.
* lisp/progmodes/bat-mode.el (bat-mode-syntax-table): "..." are strings.
* lisp/progmodes/ada-xref.el: Use setq.
* lisp/net/tramp.el (with-tramp-progress-reporter): Avoid setq.
* lisp/dframe.el: Use lexical-binding.
(dframe-frame-mode): Fix calling convention for hooks. Use a closure.
* lisp/speedbar.el (speedbar-frame-mode): Adjust call accordingly.
* lisp/descr-text.el: Use lexical-binding.
(describe-text-widget, describe-text-sexp, describe-property-list):
Use closures.
* lisp/comint.el (comint-history-isearch-push-state): Use a closure.
* lisp/calculator.el: Use lexical-binding.
(calculator-number-to-string): Make it work with lexical-binding.
(calculator-funcall): Same and use cl-letf.
(eval-expression): Run it.
Extend eldoc to display info in the mode-line.
* emacs-lisp/eldoc.el (eldoc-post-insert-mode): New minor mode.
(eldoc-mode-line-string): New variable.
(eldoc-minibuffer-message): New function.
(eldoc-message-function): New variable.
(eldoc-message): Use it.
(eldoc-display-message-p)
(eldoc-display-message-no-interference-p): Support
eldoc-post-insert-mode.
Fixes: debbugs:13978
(describe-function-1): Do it here instead so it also applies to subrs.
* emacs-lisp/eldoc.el (eldoc-get-fnsym-args-string):
Obey advertised-signature-table.
Revert 2007-09-26 change; use `string-match-p' to check for &keywords.
(eldoc-get-fnsym-args-string, eldoc-highlight-function-argument):
Use `string-match-p'.
comment to basic doc string. Also apply eldoc-argument-case in
the help-split-fundoc case. Adapt for changed behavior of
eldoc-function-argstring, eldoc-function-argstring-format, and
eldoc-highlight-function-argument.
(eldoc-highlight-function-argument): Make INDEX argument
optional, just call eldoc-docstring-format-sym-doc if absent.
(eldoc-function-argstring): Change the behavior. Now it converts
an argument list to a string.
(eldoc-function-argstring-format): Change the behavior. Now it
applies `eldoc-argument-case' to a string.
(eldoc-print-current-symbol-info): Adjust for changed helper
function signatures.
(eldoc-get-fnsym-args-string): Add `args' argument. Use new
`eldoc-highlight-function-argument'.
(eldoc-highlight-function-argument): New function.
(eldoc-get-var-docstring): Format documentation with
`font-lock-variable-name-face'.
(eldoc-docstring-format-sym-doc): Add `face' argument and apply it
where suited.
(eldoc-fnsym-in-current-sexp): Return a list with argument index.
(eldoc-beginning-of-sexp): Return number of skipped sexps.
(mouse-autoselect-window-position)
(mouse-autoselect-window-window)
(mouse-autoselect-window-now): New vars.
(mouse-autoselect-window-cancel)
(mouse-autoselect-window-select)
(mouse-autoselect-window-start): New functions.
(handle-select-window): Call `mouse-autoselect-window-start' when
delayed window autoselection is enabled.
* cus-start.el (mouse-autoselect-window): Handle delayed window
autoselection.
* emacs-lisp/eldoc.el: Add `handle-select-window' to the set of
commands after which it is allowed to print in the echo area.
(eldoc-message-commands): Initialize in its declaration.
Add move-beginning-of-line and move-end-of-line.
(eldoc-add-command, eldoc-add-command-completions)
(eldoc-remove-command, eldoc-remove-command-completions): Simplify.