(timer): Never require. It only works in current Emacs anyway.
(eldoc-mode, eldoc-message, eldoc-display-message-p)
(eldoc-docstring-format-sym-doc, eldoc-remove-command): Simplify.
Turn errors into messages so they don't get ignored.
(eldoc-get-fnsym-args-string): Use help-split-fundoc.
(eldoc-beginning-of-sexp): Simplify.
(eldoc-function-arglist): Remove.
(eldoc-function-argstring): Use help-function-arglist instead.
(eldoc-function-argstring-from-docstring-method-table)
(eldoc-function-argstring-from-docstring): Remove.
add-minor-mode call complains in Emacs 21.
Use add-minor-mode to set minor-mode-alist, if available.
(eldoc-echo-area-use-multiline-p): New user option.
(eldoc-echo-area-multiline-supported-p): New variable.
(eldoc-docstring-format-sym-doc): Use them.
(eldoc-mode): If not using idle timers, append to local post and
pre command hooks. Suggested by David Byers <davby@ida.liu.se>.
(eldoc-display-message-no-interference-p): Don't interfere with edebug.
Add autoload cookie for eldoc-mode minor-mode-alist initialization.
(eldoc-function-arglist): New function.
(eldoc-function-argstring): Use it.
eldoc-last-message without consing a new string.
Rearrange logic from nested if's into cond's.
(eldoc-print-fnsym-args): Renamed to eldoc-get-fnsym-args-string.
Do not print message; just return string.
(eldoc-get-var-docstring): Renamed from eldoc-print-var-docstring.
Do not print message; just return string.
Cache that string in eldoc-last-data.
(eldoc-last-data): Make into a vector.
(eldoc-get-fnsym-args-string): Use new data form of structure.
(eldoc-get-var-docstring): Here also.
(eldoc-last-data-store): New function.
(eldoc-get-fnsym-args-string): Use it.
(eldoc-get-var-docstring): Here also.
(eldoc-docstring-first-line): Minimize interim string consing.
Call substitute-command-keys on the result.
(eldoc-print-var-docstrings, eldoc-print-docstring,
eldoc-docstring-message): Functions removed.
(eldoc-docstring-format-sym-doc): New function, functionality ripped out of
eldoc-docstring-message.
(eldoc-get-fnsym-args-string, eldoc-get-var-docstring): Use it.
a user variable.
(eldoc-message-commands-table-size, eldoc-use-idle-timer-p,
eldoc-function-argstring-from-docstring-method-table): Use defvar,
not defconst.
(eldoc-last-data): Use cons explicitly; don't rely on dotted pair read
syntax. I'm worried the latter might get compiled as read-only data someday.
(eldoc-docstring-message): If truncating symbol name, show ending of name
rather than beginning. The former is generally more unique.
(eldoc-function-argstring-from-docstring-method-table): Handle
pathological `save-restriction' case.
[top level]: Add `indent-for-tab-command' to eldoc-message-commands.
(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.