changeset 70007:19ab508f832f

(vc-annotate): Arrange for point to end up at the same line number as in the original, but only when using a new buffer.
author Thien-Thi Nguyen <ttn@gnuvola.org>
date Thu, 13 Apr 2006 13:35:55 +0000
parents ccc2eb385394
children 687819bce4df
files lisp/vc.el
diffstat 1 files changed, 7 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/vc.el	Thu Apr 13 13:29:22 2006 +0000
+++ b/lisp/vc.el	Thu Apr 13 13:35:55 2006 +0000
@@ -3107,7 +3107,11 @@
   (vc-ensure-vc-buffer)
   (setq vc-annotate-display-mode display-mode) ;Not sure why.  --Stef
   (let* ((temp-buffer-name (format "*Annotate %s (rev %s)*" (buffer-name) rev))
-         (temp-buffer-show-function 'vc-annotate-display-select))
+         (temp-buffer-show-function 'vc-annotate-display-select)
+         ;; 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))))
     (message "Annotating...")
     ;; If BUF is specified it tells in which buffer we should put the
     ;; annotations.  This is used when switching annotations to another
@@ -3129,6 +3133,8 @@
         (set (make-local-variable 'vc-annotate-parent-rev) rev)
         (set (make-local-variable 'vc-annotate-parent-display-mode)
              display-mode)))
+    (when current-line
+      (goto-line current-line temp-buffer-name))
     (message "Annotating... done")))
 
 (defun vc-annotate-prev-version (prefix)