diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2000-10-03 18:36:36 +0000 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2000-10-03 18:36:36 +0000 |
commit | a63733401412f0f4c30d1889d51db10186b4dab9 (patch) | |
tree | e66d1e28d03bb147f401d3fbdb2b0abde0bede3b /lisp/diff-mode.el | |
parent | 003dd6351758732bf0096e8c19b045aac713c810 (diff) | |
download | emacs-a63733401412f0f4c30d1889d51db10186b4dab9.tar.gz |
(diff-font-lock-keywords): Minor regex fix.
(diff-goto-source): Be smarter when choosing REVERSE or not.
Diffstat (limited to 'lisp/diff-mode.el')
-rw-r--r-- | lisp/diff-mode.el | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/lisp/diff-mode.el b/lisp/diff-mode.el index f55536a98a3..6b2d8e66faa 100644 --- a/lisp/diff-mode.el +++ b/lisp/diff-mode.el @@ -4,7 +4,7 @@ ;; Author: Stefan Monnier <monnier@cs.yale.edu> ;; Keywords: patch diff -;; Revision: $Id: diff-mode.el,v 1.25 2000/10/02 03:46:26 miles Exp $ +;; Revision: $Id: diff-mode.el,v 1.26 2000/10/02 06:49:21 miles Exp $ ;; This file is part of GNU Emacs. @@ -229,7 +229,7 @@ when editing big diffs)." (1 diff-hunk-header-face) (2 diff-comment-face)) ("^\\*\\*\\* .+ \\*\\*\\*\\*". diff-hunk-header-face) ;context - ("^\\(---\\|\\+\\+\\+\\|\\*\\*\\*\\) \\(\\S-+\\).*[^*-]\n" + ("^\\(---\\|\\+\\+\\+\\|\\*\\*\\*\\) \\(\\S-+\\)\\(.*[^*-]\\)?\n" (0 diff-header-face) (2 diff-file-header-face prepend)) ("^[0-9,]+[acd][0-9,]+$" . diff-hunk-header-face) ("^!.*\n" . diff-changed-face) ;context @@ -1050,7 +1050,6 @@ With a prefix argument, REVERSE the hunk." (defun diff-test-hunk (&optional reverse) - ;; FIXME: is `reverse' ever useful ??? "See whether it's possible to apply the current hunk. With a prefix argument, try to REVERSE the hunk." (interactive "P") @@ -1067,15 +1066,15 @@ is given) determines whether to jump to the old or the new file. If the prefix arg is bigger than 8 (for example with \\[universal-argument] \\[universal-argument]) then `diff-jump-to-old-file-flag' is also set, for the next invocations." (interactive "P") - (destructuring-bind (buf line-offset pos src dst &optional switched) - ;; We normally jump to the NEW file, where the hunk should already - ;; be applied, so favor the `reverse'. - (diff-find-source-location other-file t) - (pop-to-buffer buf) - (goto-char (+ pos (cdr src))) - (if line-offset - (diff-hunk-status-msg line-offset (not switched) t) - (message "Hunk text not found")))) + ;; When pointing at a removal line, we probably want to jump to + ;; the old location, and else to the new (i.e. as if reverting). + ;; This is a convenient detail when using smerge-diff. + (let ((rev (not (save-excursion (beginning-of-line) (looking-at "[-<]"))))) + (destructuring-bind (buf line-offset pos src dst &optional switched) + (diff-find-source-location other-file rev) + (pop-to-buffer buf) + (goto-char (+ pos (cdr src))) + (diff-hunk-status-msg line-offset (not switched) t)))) (defun diff-current-defun () |