emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

patch: vc.el annotation prev/next "in place"


From: Thien-Thi Nguyen
Subject: patch: vc.el annotation prev/next "in place"
Date: 05 Apr 2006 17:15:04 -0400
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.4

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.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]