be more honest when we don't know.
(diff-tell-file-name): Don't prompt before the actual prompt.
(diff-mode): Don't prompt in add-log-buffer-file-name-function.
(diff-find-source-location): Add `noprompt' argument.
(diff-current-defun): Don't prompt.
* diff-mode.el (diff-auto-refine): Delete defcustom.
(diff-auto-refine-mode): New func/var via define-minor-mode.
Update var ref to use diff-auto-refine-mode.
* smerge-mode.el (diff-mode): Require when compiling.
(smerge-auto-refine): Delete defcustom.
Update smerge-auto-refine ref to use diff-auto-refine-mode.
(diff-font-lock-keywords, diff-context->unified)
(diff-reverse-direction, diff-fixup-modifs, diff-sanity-check-hunk)
(diff-hunk-text, diff-find-source-location): Use it.
(diff-post-command-hook): Let the user edit the hunk headers.
(diff-beginning-of-file-and-junk): Use it.
(diff-file-kill): Make sure we were really inside a file diff.
* diff-mode.el: Make it more robust in the presence of empty context
lines in unified hunks.
(diff-valid-unified-empty-line): New var.
(diff-unified->context, diff-sanity-check-hunk): Obey it.
(diff-end-of-hunk): Obey it. New arg `donttrustheader'.
(diff-fixup-modifs, diff-post-command-hook): Use this new arg.
(diff-hunk-header-re-unified): New const.
(diff-font-lock-keywords, diff-hunk-header-re, diff-split-hunk)
(diff-fixup-modifs, diff-unified->context, diff-next-complex-hunk)
(diff-sanity-check-hunk): Use it.
* diff-mode.el (diff-beginning-of-file-and-junk): If we're on the
Index: line, don't search backward for the previous one.
(diff-valid-unified-empty-line): New var.
(diff-unified->context, diff-sanity-check-hunk): Obey it.
(diff-end-of-hunk): Obey it. New arg `donttrustheader'.
(diff-fixup-modifs, diff-post-command-hook): Use this new arg.
(diff-hunk-header-re-unified): New const.
(diff-font-lock-keywords, diff-hunk-header-re, diff-split-hunk)
(diff-fixup-modifs, diff-unified->context, diff-next-complex-hunk)
(diff-sanity-check-hunk): Use it.
* progmodes/dcl-mode.el: Require imenu at compile time.
* progmodes/cc-engine.el (c-maybe-stale-found-type): Pacify
byte-compiler.
* obsolete/fast-lock.el: Use featurep test instead of
string-match.
* eshell/esh-mode.el (eshell-handle-ansi-color): Require
ansi-color at compile time too.
* eshell/em-unix.el (eshell/info): Require info at compile time
too.
* w32-fns.el: Require w32-vars.
* diff-mode.el (diff-refine-hunk): Require smerge-mode at compile
time too.
(diff-hunk): Use it.
(diff-ignore-whitespace-hunk): Rename diff-refine-ignore-spaces-hunk.
(diff-refine-change): Rename from diff-fine-change. Change it.
(diff-refine-preproc): Rename from diff-fine-highlight-preproc.
(diff-refine-hunk): Rename from diff-fine-highlight.
(diff-end-of-hunk): Use it.
(diff-context->unified): Use the new `apply' undo element, if applicable,
so as to save undo-log space.
(diff-fine-change): New face.
(diff-fine-highlight-preproc): New function.
(diff-fine-highlight): New command.