Add new optional arg LINE-OFFSET, and return a cons if it's non-nil.
(diff-apply-hunk):
Try to jump to the exact line in the source text corresponding to the
position of point in the in the hunk.
non-unified diffs. Some functionality moved into `diff-hunk-text' and
`diff-find-text'. Add OTHER-FILE, DRY-RUN, POPUP, and NOERROR
arguments. If DRY-RUN is true, don't actually modify anything. Only
reposition point in the patched file if the patch succeeds. Only pop
up another window if POPUP is true. Emit a message describing what
happened if successful, and at what line-offset. Automatically detect
reversed hunks and do something appropriate.
(diff-hunk-text, diff-find-text): New functions.
(diff-filter-lines): Function removed.
(diff-test-hunk): New function.
(diff-goto-source): Rewritten in terms of diff-apply-hunk.
(diff-find-source-location): New fun, extracted from diff-goto-source.
(diff-goto-source): Use it.
(diff-next-complex-hunk, diff-filter-lines): New function.
(diff-apply-hunk): New command.
(diff-goto-source, diff-unified->context, diff-context->unified)
(diff-reverse-direction, diff-fixup-modifs): Fix the regexps to
understand the format output by the `-p' argument to diff.
(diff-end-of-hunk): Return the end position for use in
`easy-mmode-define-navigation'.
(diff-recenter): Remove.
(diff-(next|prev)-*): Rename `diff-*-(prev|next)' and defined in terms
of `easy-mmode-define-navigation'.
(diff-kill-*): Rename `diff-*-kill' (for consistency with the
previous renaming) and fix to use new names.
(diff-merge-strings): Use \n as separator: simpler, faster.
(diff-mode): Use `define-derived-mode'.
(diff-reverse-direction): Use delete-and-extract-region.
(diff-post-command-hook): Restrict the area so that the hook also works
outside of any diff hunk. This is necessary for the minor-mode.
(diff-mode): Use toggle-read-only and minor-mode-overriding-map-alist.
(diff-minor-mode): Setup the hooks for header-hunk rewriting.
(diff-minor-mode, diff-minor-mode-prefix, diff-minor-mode-map):
New code to support the minor mode version.
(diff-recenter): New function.
(diff-next-hunk, diff-next-file): Use it.
(diff-remembered-files-alist): New var.
(diff-merge-strings): New function.
(diff-find-file-name): Make it smarter and use the user's input more.
(diff-mode): Cosmetic changes.