unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* patch: vc.el annotation prev/next "in place"
@ 2006-04-05 21:15 Thien-Thi Nguyen
  2006-04-05 22:04 ` Stefan Monnier
  2006-04-05 22:37 ` Kevin Rodgers
  0 siblings, 2 replies; 6+ messages in thread
From: Thien-Thi Nguyen @ 2006-04-05 21:15 UTC (permalink / raw)


i month or so ago, i complained about the P and N (and J) commands in
vc-annotate buffer ending up (selecting) another buffer/window.  the
following patch reverts the old behavior, according to my tastes, but
i suspect there is a better way, by avoiding `switch-to-buffer', for
example.  what do you think?

thi

______________________________
Index: vc.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/vc.el,v
retrieving revision 1.414
diff -w -b -B -c -r1.414 vc.el
*** vc.el	7 Feb 2006 16:59:01 -0000	1.414
--- vc.el	5 Apr 2006 21:05:34 -0000
***************
*** 3076,3083 ****
  				  nil nil "20")))))))
    (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))
      (message "Annotating...")
      ;; If BUF is specified it tells in which buffer we should put the
      ;; annotations.  This is used when switching annotations to another
--- 3076,3087 ----
  				  nil nil "20")))))))
    (vc-ensure-vc-buffer)
    (setq vc-annotate-display-mode display-mode) ;Not sure why.  --Stef
!   (let* ((temp-buffer-setup-hook nil)
!          (temp-buffer-name (format "*Annotate %s (rev %s)*"
!                                    (buffer-name) rev))
!          (temp-buffer-show-function (lambda (buf)
!                                       (switch-to-buffer buf)
!                                       (vc-annotate-display-select))))
      (message "Annotating...")
      ;; If BUF is specified it tells in which buffer we should put the
      ;; annotations.  This is used when switching annotations to another
***************
*** 3086,3101 ****
  	      (rename-buffer temp-buffer-name t)
  	      ;; In case it had to be uniquified.
  	      (setq temp-buffer-name (buffer-name))))
!     (with-output-to-temp-buffer temp-buffer-name
!       (vc-call annotate-command file (get-buffer temp-buffer-name) rev))
      (with-current-buffer temp-buffer-name
        (set (make-local-variable 'vc-annotate-backend) (vc-backend file))
        (set (make-local-variable 'vc-annotate-parent-file) file)
        (set (make-local-variable 'vc-annotate-parent-rev) rev)
        (set (make-local-variable 'vc-annotate-parent-display-mode)
! 	   display-mode))
  
!   (message "Annotating... done")))
  
  (defun vc-annotate-prev-version (prefix)
    "Visit the annotation of the version previous to this one.
--- 3090,3108 ----
                (rename-buffer temp-buffer-name t)
                ;; In case it had to be uniquified.
                (setq temp-buffer-name (buffer-name))))
!     (vc-call annotate-command file (get-buffer-create temp-buffer-name) rev)
!     (switch-to-buffer temp-buffer-name)
!     (delete-other-windows)
!     (vc-annotate-display-select)
!     (goto-char (point-min))
      (with-current-buffer temp-buffer-name
        (set (make-local-variable 'vc-annotate-backend) (vc-backend file))
        (set (make-local-variable 'vc-annotate-parent-file) file)
        (set (make-local-variable 'vc-annotate-parent-rev) rev)
        (set (make-local-variable 'vc-annotate-parent-display-mode)
!            display-mode)))
  
!   (message "Annotating... done"))
  
  (defun vc-annotate-prev-version (prefix)
    "Visit the annotation of the version previous to this one.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2006-04-13 16:26 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-04-05 21:15 patch: vc.el annotation prev/next "in place" Thien-Thi Nguyen
2006-04-05 22:04 ` Stefan Monnier
2006-04-05 22:37 ` Kevin Rodgers
2006-04-11 20:29   ` Stefan Monnier
2006-04-13 16:07   ` Thien-Thi Nguyen
2006-04-13 16:26     ` Romain Francoise

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).