changeset 91876:c38d9e3eee47

(vc-annotate): Add new argument. (vc-annotate-warp-revision): Pass the current line to vc-annotate.
author Dan Nicolaescu <dann@ics.uci.edu>
date Sat, 16 Feb 2008 15:54:37 +0000
parents f6acc1fe7932
children 66415e9a068a
files lisp/ChangeLog lisp/vc.el
diffstat 2 files changed, 13 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Sat Feb 16 15:02:12 2008 +0000
+++ b/lisp/ChangeLog	Sat Feb 16 15:54:37 2008 +0000
@@ -1,5 +1,8 @@
 2008-02-16  Dan Nicolaescu  <dann@ics.uci.edu>
 
+	* vc.el (vc-annotate): Add new argument.
+	(vc-annotate-warp-revision): Pass the current line to vc-annotate.
+
 	* progmodes/hideshow.el: Remove the minor-mode bookkeeping. Move
 	make-variable-buffer-local code after the corresponding defvar.
 	(hs-minor-mode-map): Define and initialize in one step.
--- a/lisp/vc.el	Sat Feb 16 15:02:12 2008 +0000
+++ b/lisp/vc.el	Sat Feb 16 15:54:37 2008 +0000
@@ -3684,7 +3684,7 @@
 		  vc-annotate-display-mode))))
 
 ;;;###autoload
-(defun vc-annotate (file rev &optional display-mode buf)
+(defun vc-annotate (file rev &optional display-mode buf move-point-to)
   "Display the edit history of the current file using colors.
 
 This command creates a buffer that shows, for each line of the current
@@ -3703,6 +3703,8 @@
 over the past 20 days are shown in red to blue, according to their
 age, and everything that is older than that is shown in blue.
 
+If MOVE-POINT-TO is given, move the point to that line.
+
 Customization variables:
 
 `vc-annotate-menu-elements' customizes the menu elements of the
@@ -3730,7 +3732,7 @@
          ;; If BUF is specified, we presume the caller maintains current line,
          ;; so we don't need to do it here.  This implementation may give
          ;; strange results occasionally in the case of REV != WORKFILE-REV.
-         (current-line (unless buf (line-number-at-pos))))
+         (current-line (or move-point-to (unless buf (line-number-at-pos)))))
     (message "Annotating...")
     ;; If BUF is specified it tells in which buffer we should put the
     ;; annotations.  This is used when switching annotations to another
@@ -3898,10 +3900,12 @@
       (when newrev
 	(vc-annotate vc-annotate-parent-file newrev
                      vc-annotate-parent-display-mode
-                     buf)
-	(goto-line (min oldline (progn (goto-char (point-max))
-				       (forward-line -1)
-				       (line-number-at-pos))) buf)))))
+                     buf
+		     ;; Pass the current line so that vc-annotate will
+		     ;; place the point in the line.
+		     (min oldline (progn (goto-char (point-max))
+					   (forward-line -1)
+					   (line-number-at-pos))))))))
 
 (defun vc-annotate-compcar (threshold a-list)
   "Test successive cons cells of A-LIST against THRESHOLD.