GNU bug report logs -
#2612
VC annotate mode places point on wrong line number when narrowing is in effect
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
This is an automatic notification regarding your bug report
which was filed against the emacs package:
#2612: VC annotate mode places point on wrong line number when narrowing is in effect
It has been closed by Chong Yidong <cyd <at> stupidchicken.com>.
Their explanation is attached below along with your original report.
If this explanation is unsatisfactory and you have not received a
better one in a separate message then please contact Chong Yidong <cyd <at> stupidchicken.com> by
replying to this email.
--
2612: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=2612
Emacs Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
> 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.
Thanks, I've checked your patch into CVS.
[Message part 3 (message/rfc822, inline)]
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.