(eldoc-message): Make function, not macro.
(eldoc-last-message): New internal variable.
(eldoc-mode): Initialize it to nil.
(eldoc-message): Use it.
(eldoc-print-current-symbol-info): Use it.
(eldoc-pre-command-refresh-echo-area): New function.
(eldoc-mode): Put it on pre-command-hook if in XEmacs or using idle timers
in Emacs.
(eldoc-message-commands-table-size): New constant.
(eldoc-add-command): Use it to initialize eldoc-message-commands.
(eldoc-display-message-no-interference-p): New function.
(eldoc-display-message-p): Use it.
(eldoc-print-fnsym-args, eldoc-print-var-docstring): Arg sym no longer
optional.
Do not initialize arg if nil.
(eldoc-forward-sexp-safe): Function deleted.
(eldoc-beginning-of-sexp): New function.
(eldoc-fnsym-in-current-sexp): Use eldoc-beginning-of-sexp.
Use eldoc-current-symbol to get symbol at point.
(eldoc-function-argstring-from-docstring-method-table): Forge docstrings
for `and', `or', `list', `+', and `-'.
(eldoc-add-command-completions): New function.
(eldoc-add-command): Take list of args.
No longer interactive.
(eldoc-remove-command-completions): New function.
(eldoc-remove-command): Take list of args.
No longer interactive.
top level: Initialize eldoc-message-commands using
eldoc-add-command-completions.
into Emacs.
Attempt to load `timer'.
(eldoc-idle-delay): Make defconst.
(eldoc-minor-mode-string): Make defconst.
(eldoc-argument-case): Make defconst.
(eldoc-message-commands): Renamed from eldoc-mode-message-commands.
All callers changed.
Add `mouse-set-point' as a default candidate.
(eldoc-use-idle-timer-p): New constant.
(eldoc-timer): New variable.
(eldoc-current-idle-delay): New variable.
(eldoc-schedule-timer): New function.
(eldoc-mode): Use idle timers if supported.
(eldoc-add-command): Provide completion on interactive commands only, not
all bound functions.
(eldoc-print-current-symbol-info): Renamed from
eldoc-mode-print-current-symbol-info. All callers changed.
Check whether using idle timers or being run from post-command hooks.
Use `executing-kbd-macro' instead of `executing-macro'.
(eldoc-print-fnsym-args): Don't make interactive.
Cache current symbol name in eldoc-last-data; it was forgetting to do this
previously.
If subr args cannot be determined, show single-line docstring for it instead.
(eldoc-docstring-message): New function.
(eldoc-print-docstring): New function.
(eldoc-print-var-docstring): Use them.
(eldoc-function-argstring-from-docstring-method-table): New constant.
(eldoc-function-argstring-from-docstring): Use it.
(eldoc-mode-print-current-symbol-info): Make sure this-command is a symbol.
(eldoc-function-argstring): If fn is a macro, skip leading `macro' elt.
(eldoc-function-argstring-from-docstring): Look for `condition-case' pattern.