Have just one definition, which decides what to do.
(ispell-command-loop): New args START and END. Do highlighting
and unhighlighting here.
(ispell-word, ispell-region, ispell-complete-word): Not here.
(ispell-highlight-spelling-error-generic): Bind buffer-undo-list to t.
(ispell-check-only): New variable.
(ispell-word): Handle ispell-check-only.
(ispell-minor-mode): New variable.
(ispell-minor-keymap): New map.
(ispell-minor-mode): New function.
Only pop up the choices window if an error is found in the region.
Don't change the size of the choices window except as needed.
Don't (sit-for 0) at the start of ispell-region (i.e. don't force
redisplay at the start of the region).
(ispell-overlay-window): Small documentation fix.
(ispell-dictionary-alist): Add autoload. Split into two subvariables.
(ispell-menu-map): Defvar and set up at top level. Split into parts.
(ispell-menu-map-needed): New variable.
(ispell): New function.
(ispell-region): Assure choices and checked buffer selections correct.
reindented.
(ispell-highlight-spelling-errors): Prefix ispell- to highlght fns.
(ispell-complete-word): Heuristic to respect case of completed words.
(ispell-command-loop): Non-character events ignored. Reindented.
(ispell-message): Various improvements.
(ispell-init-process): `ispell-extra-args' added to allow personal
customizations.
(ispell-message): Use ispell-message-text-end.
Spell check all of a multi-line subject.
Correct bug whereby internally generated messages were not recognized.