GNU bug report logs - #2612
VC annotate mode places point on wrong line number when narrowing is in effect

Previous Next

Package: emacs;

Reported by: Alexander Becher <alexander.becher <at> capgemini-sdm.com>

Date: Mon, 9 Mar 2009 15:55:03 UTC

Severity: normal

Done: Chong Yidong <cyd <at> stupidchicken.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Alexander Becher <alexander.becher <at> capgemini-sdm.com>
To: bug-gnu-emacs <at> gnu.org
Subject: bug#2612: VC annotate mode places point on wrong line number when narrowing is in effect
Date: Mon, 09 Mar 2009 15:28:12 +0100
Actual Behaviour:

The VC annotate mode automatically places point on the same line as it 
is in the buffer of the corresponding file. Thus, one sees the same line 
in the annotated buffer as in the file buffer. However, when narrowing 
is in effect in the file buffer when vc-annotate is called, point is 
placed on the wrong line.

How to Reproduce:

 * Visit a version-controlled file with at least 2 lines.
 * Narrow to a region that does not start on line 1 (say, on line 2).
 * Place point on say, line 1 of the narrowed portion (i.e., line 2 of 
the file).
 * Call vc-annotate (C-x v g)
 * Note how point is on line 1 of the file instead of the expected line 2.

Patch:

In vc.el, surround the call to (line-number-at-pos) by a 
(save-restriction (widen) ...):

diff -u "c:/Programme/emacs/emacs-22.2/lisp/vc.el~" 
"c:/Programme/emacs/emacs-22.2/lisp/vc.el"
--- c:/Programme/emacs/emacs-22.2/lisp/vc.el~	2008-02-04 
03:32:56.000000000 +0100
+++ c:/Programme/emacs/emacs-22.2/lisp/vc.el	2009-03-04 
17:57:40.078000000 +0100
@@ -3194,7 +3194,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 (unless buf (save-restriction (widen) 
(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

Diff finished.  Mon Mar 09 15:24:19 2009

By the Way:

vc.el contains '$Id$', looks like keyword expansion was not switched on.

In GNU Emacs 22.2.1 (i386-mingw-nt5.1.2600)
 of 2008-03-26 on RELEASE
Windowing system distributor `Microsoft Corp.', version 5.1.2600
configured using `configure --with-gcc (3.4)'








This bug report was last modified 16 years and 73 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.