changeset 104711:adeed914a5fb

* vc.el (vc-print-log-internal): Move RCS/CVS specific code ... * vc-rcs.el (vc-rcs-print-log-cleanup): ... here. New function. (vc-rcs-print-log): Use it. * vc-cvs.el (vc-cvs-print-log): Use vc-rcs-print-log-cleanup.
author Dan Nicolaescu <dann@ics.uci.edu>
date Sat, 29 Aug 2009 18:56:12 +0000
parents a211a43679df
children c4fb8f245750
files lisp/ChangeLog lisp/vc-cvs.el lisp/vc-rcs.el lisp/vc.el
diffstat 4 files changed, 29 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Sat Aug 29 17:36:30 2009 +0000
+++ b/lisp/ChangeLog	Sat Aug 29 18:56:12 2009 +0000
@@ -1,3 +1,12 @@
+2009-08-29  Dan Nicolaescu  <dann@ics.uci.edu>
+
+	* vc.el (vc-print-log-internal): Move RCS/CVS specific code ...
+
+	* vc-rcs.el (vc-rcs-print-log-cleanup): ... here.  New function.
+	(vc-rcs-print-log): Use it.
+
+	* vc-cvs.el (vc-cvs-print-log): Use vc-rcs-print-log-cleanup.
+
 2009-08-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 
 	* files.el (get-free-disk-space): Use / for default-directory.
--- a/lisp/vc-cvs.el	Sat Aug 29 17:36:30 2009 +0000
+++ b/lisp/vc-cvs.el	Sat Aug 29 18:56:12 2009 +0000
@@ -494,13 +494,18 @@
 ;;; History functions
 ;;;
 
+(declare-function vc-rcs-print-log-cleanup "vc-rcs" ())
+
 (defun vc-cvs-print-log (files &optional buffer)
   "Get change logs associated with FILES."
+  (require 'vc-rcs)
   ;; It's just the catenation of the individual logs.
   (vc-cvs-command
    buffer
    (if (vc-stay-local-p files 'CVS) 'async 0)
-   files "log"))
+   files "log")
+  (with-current-buffer buffer
+    (vc-exec-after (vc-rcs-print-log-cleanup))))
 
 (defun vc-cvs-comment-history (file)
   "Get comment history of a file."
--- a/lisp/vc-rcs.el	Sat Aug 29 17:36:30 2009 +0000
+++ b/lisp/vc-rcs.el	Sat Aug 29 18:56:12 2009 +0000
@@ -538,10 +538,23 @@
 ;;; History functions
 ;;;
 
+(defun vc-rcs-print-log-cleanup ()
+  (let ((inhibit-read-only t))
+    (goto-char (point-max))
+    (forward-line -1)
+    (while (looking-at "=*\n")
+      (delete-char (- (match-end 0) (match-beginning 0)))
+      (forward-line -1))
+    (goto-char (point-min))
+    (when (looking-at "[\b\t\n\v\f\r ]+")
+      (delete-char (- (match-end 0) (match-beginning 0))))))
+
 (defun vc-rcs-print-log (files &optional buffer)
   "Get change log associated with FILE.  If FILE is a
 directory the operation is applied to all registered files beneath it."
-  (vc-do-command (or buffer "*vc*") 0 "rlog" (mapcar 'vc-name (vc-expand-dirs files))))
+  (vc-do-command (or buffer "*vc*") 0 "rlog" (mapcar 'vc-name (vc-expand-dirs files)))
+  (with-current-buffer (or buffer "*vc*")
+    (vc-rcs-print-log-cleanup)))
 
 (defun vc-rcs-diff (files &optional oldvers newvers buffer)
   "Get a difference report using RCS between two sets of files."
--- a/lisp/vc.el	Sat Aug 29 17:36:30 2009 +0000
+++ b/lisp/vc.el	Sat Aug 29 18:56:12 2009 +0000
@@ -1834,17 +1834,6 @@
       (set (make-local-variable 'log-view-vc-backend) ',backend)
       (set (make-local-variable 'log-view-vc-fileset) ',files)
 
-      ;; FIXME: this seems to apply only to RCS/CVS, it doesn't quite
-      ;; belong here in the generic code.
-      (goto-char (point-max))
-      (forward-line -1)
-      (while (looking-at "=*\n")
-      	(delete-char (- (match-end 0) (match-beginning 0)))
-      	(forward-line -1))
-      (goto-char (point-min))
-      (when (looking-at "[\b\t\n\v\f\r ]+")
-      	(delete-char (- (match-end 0) (match-beginning 0))))
-
       (shrink-window-if-larger-than-buffer)
       ;; move point to the log entry for the working revision
       (vc-call-backend ',backend 'show-log-entry ',working-revision)