diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2004-04-22 22:57:09 +0000 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2004-04-22 22:57:09 +0000 |
commit | 6fc049f6212531a498b1770e4f0232627f522195 (patch) | |
tree | 1a3da30c359f1adec0bcf5bde2cb66778313ac98 /lisp/diff-mode.el | |
parent | e462ab772ac754ec2333929c54207cece4a8efe4 (diff) | |
download | emacs-6fc049f6212531a498b1770e4f0232627f522195.tar.gz |
(diff-next-error): New fun.
(diff-mode): Use it.
Diffstat (limited to 'lisp/diff-mode.el')
-rw-r--r-- | lisp/diff-mode.el | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/lisp/diff-mode.el b/lisp/diff-mode.el index d41bfcad58a..17602317958 100644 --- a/lisp/diff-mode.el +++ b/lisp/diff-mode.el @@ -48,7 +48,6 @@ ;; ;; - Refine hunk on a word-by-word basis. ;; -;; - Use the new next-error-function to allow C-x `. ;; - Handle `diff -b' output in context->unified. ;;; Code: @@ -886,9 +885,14 @@ See `after-change-functions' for the meaning of BEG, END and LEN." (diff-fixup-modifs (point) (cdr diff-unhandled-changes))))) (setq diff-unhandled-changes nil))) -;;;; -;;;; The main function -;;;; +(defun diff-next-error (arg reset) + ;; Select a window that displays the current buffer so that point + ;; movements are reflected in that window. Otherwise, the user might + ;; never see the hunk corresponding to the source she's jumping to. + (pop-to-buffer (current-buffer)) + (if reset (goto-char (point-min))) + (diff-hunk-next arg) + (diff-goto-source)) ;;;###autoload (define-derived-mode diff-mode fundamental-mode "Diff" @@ -916,6 +920,7 @@ a diff with \\[diff-reverse-direction]." ;; (set (make-local-variable 'paragraph-separate) paragraph-start) ;; (set (make-local-variable 'page-delimiter) "--- [^\t]+\t") ;; compile support + (set (make-local-variable 'next-error-function) 'diff-next-error) (when (and (> (point-max) (point-min)) diff-default-read-only) (toggle-read-only t)) |