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.
buffer's display table doesn't match the width table the cache was
built for.
(display_text_line): Use compute_motion to skip forward to the
left edge of the window when the window is hscrolled; this is
faster than rendering all the characters into the bit bucket when
the hscroll is large.
Doc fixes.
(display_count_lines): Call scan_buffer with new args.
(max, min): Make these functions, not macros; we'd like to pass
them arguments that would be bad to evaluate more than once.
(newline_cache_on_off): New function.
(scan_buffer): New argument END. Call newline_cache_on_off. If
this buffer's newline cache is enabled, consult it to see if we
need to scan a region for newlines, and store information in the
cache after doing so.
(find_next_newline): Pass new arg to scan_buffer.
(find_before_next_newline): New function.
(character_width, disptab_matches_widthtab, recompute_width_table,
width_run_cache_on_off): New functions.
(compute_motion): Call width_run_cache_on_off. If this buffer's
width run cache is enabled, consult it to see if we need to
traverse a region character-by-character; store information in the
cache after doing so. Call find_before_next_newline instead of
writing out an equivalent loop explicitly, to take advantage of
the newline cache.
Doc fixes.
(Fget_buffer_create): Initialize new members of struct buffer.
(Fkill_buffer): Free memory occupied by caches.
(init_buffer_once): Set default value for cache_long_line_scans in
buffer_defaults, and give it a bit in buffer_local_flags.
(syms_of_buffer): Add DEFVAR_PER_BUFFER for cache_long_line_scans.
rmail-summary-font-lock-keywords, dired-font-lock-keywords,
shell-font-lock-keywords, texi-font-lock-keywords,
perl-font-lock-keywords): Deleted.
(font-lock-mode): Doc fix; use add/remove-hook, not
setq; removed make-local-variable of font-lock-no-comments.
(font-lock-set-defaults): Do it there, and use:
(font-lock-defaults-alist): Use it to set font-lock-keywords,
font-lock-keywords-case-fold-search and font-lock-no-comments.
(turn-on-font-lock): New function.
(font-lock-fontify-buffer): Made interruptible; deleted messages.
(font-lock-fontify-region): Made syntax state reliable
by widening within new restriction; let cstart and cend for speed;
outputs message.
(font-lock-after-change-function): Remove spurious goto-char and use
forward-line, not 1+ end-of-line, for end of fontification region.
(font-lock-any-properties-p): Removed, use text-property-not-all.
(font-lock-*-face): facename values are themselves.
(font-lock-variable-name-face, font-lock-reference-face): New vars.
(font-lock-doc-string-face): Removed.
(font-lock-keywords): Extended value syntax.
(font-lock-hack-keywords): Cope with it; outputs initial message.
Merged in face-lock.el:
(font-lock-display-type, font-lock-background-mode)
(font-lock-face-attributes): New variables, use it.
(font-lock-make-face): New function, use them.