From: Stefan Monnier Date: Wed, 14 Apr 2004 17:31:42 +0000 (+0000) Subject: (diff-goto-source): Make it work for mouse bindings. X-Git-Tag: ttn-vms-21-2-B4~6835 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=a1e2d7f757128842226ee60820c5b76462788c38;p=emacs.git (diff-goto-source): Make it work for mouse bindings. (diff-mouse-goto-source): Make it an alias of diff-goto-source. --- diff --git a/lisp/diff-mode.el b/lisp/diff-mode.el index c235c8cf6d2..f6b2520a112 100644 --- a/lisp/diff-mode.el +++ b/lisp/diff-mode.el @@ -110,7 +110,7 @@ when editing big diffs)." ("}" . diff-file-next) ("{" . diff-file-prev) ("\C-m" . diff-goto-source) - ([mouse-2] . diff-mouse-goto-source) + ([mouse-2] . diff-goto-source) ;; From XEmacs' diff-mode. ("W" . widen) ;;("." . diff-goto-source) ;display-buffer @@ -547,14 +547,6 @@ Non-nil OLD means that we want the old file." file))))) -(defun diff-mouse-goto-source (event) - "Run `diff-goto-source' for the diff at a mouse click." - (interactive "e") - (save-excursion - (mouse-set-point event) - (diff-goto-source))) - - (defun diff-ediff-patch () "Call `ediff-patch-file' on the current buffer." (interactive) @@ -1223,16 +1215,19 @@ With a prefix argument, try to REVERSE the hunk." (diff-hunk-status-msg line-offset (diff-xor reverse switched) t))) -(defun diff-goto-source (&optional other-file) +(defalias 'diff-mouse-goto-source 'diff-goto-source) + +(defun diff-goto-source (&optional other-file event) "Jump to the corresponding source line. `diff-jump-to-old-file' (or its opposite if the OTHER-FILE prefix arg 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' is also set, for the next invocations." - (interactive "P") + (interactive (list current-prefix-arg last-input-event)) ;; 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. + (if event (posn-set-point (event-end event))) (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)