changeset 94835:0f7a18ff94d6

* vc-sccs.el (vc-sccs-dir-status): * vc-rcs.el (vc-rcs-dir-status): Avoid using results from multiple backends and returning up to date files.
author Dan Nicolaescu <dann@ics.uci.edu>
date Sat, 10 May 2008 03:58:11 +0000
parents 8dbc13404a47
children 3cb546529dde
files lisp/ChangeLog lisp/vc-rcs.el lisp/vc-sccs.el
diffstat 3 files changed, 22 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Sat May 10 03:55:00 2008 +0000
+++ b/lisp/ChangeLog	Sat May 10 03:58:11 2008 +0000
@@ -1,5 +1,9 @@
 2008-05-10  Dan Nicolaescu  <dann@ics.uci.edu>
 
+	* vc-sccs.el (vc-sccs-dir-status):
+	* vc-rcs.el (vc-rcs-dir-status): Avoid using results from multiple
+	backends and returning up to date files.
+
 	* vc-hooks.el (vc-prefix-map): Remove duplicate binding.
 
 2008-05-09  Eric S. Raymond  <esr@snark.thyrsus.com>
--- a/lisp/vc-rcs.el	Sat May 10 03:55:00 2008 +0000
+++ b/lisp/vc-rcs.el	Sat May 10 03:58:11 2008 +0000
@@ -188,14 +188,21 @@
         (vc-rcs-state file)))))
 
 (defun vc-rcs-dir-status (dir update-function)
-  ;; Doing individual vc-state calls is painful but tgere
-  ;; is no better way in RCS-land. 
+  ;; FIXME: this function should be rewritten or `vc-expand-dirs'
+  ;; should be changed to take a backend parameter.  Using
+  ;; `vc-expand-dirs' is not TRTD because it returns files from
+  ;; multiple backends.  It should also return 'unregistered files.
+
+  ;; Doing individual vc-state calls is painful but there
+  ;; is no better way in RCS-land.
   (let ((flist (vc-expand-dirs (list dir)))
 	(result nil))
     (dolist (file flist)
       (let ((state (vc-state file))
 	    (frel (file-relative-name file)))
-	(push (list frel state) result)))
+	(when (and (eq (vc-backend file) 'RCS)
+		   (not (eq state 'up-to-date)))
+	  (push (list frel state) result))))
     (funcall update-function result)))
 
 (defun vc-rcs-working-revision (file)
--- a/lisp/vc-sccs.el	Sat May 10 03:55:00 2008 +0000
+++ b/lisp/vc-sccs.el	Sat May 10 03:58:11 2008 +0000
@@ -152,14 +152,20 @@
     (vc-sccs-state file)))
 
 (defun vc-sccs-dir-status (dir update-function)
-  ;; Doing lots of individual VC-state calls is painful, but 
+  ;; FIXME: this function should be rewritten, using `vc-expand-dirs'
+  ;; is not TRTD because it returns files from multiple backends.
+  ;; It should also return 'unregistered files.
+
+  ;; Doing lots of individual VC-state calls is painful, but
   ;; there is no better option in SCCS-land.
   (let ((flist (vc-expand-dirs (list dir)))
 	(result nil))
     (dolist (file flist)
       (let ((state (vc-state file))
 	    (frel (file-relative-name file)))
-	(push (list frel state) result)))
+	(when (and (eq (vc-backend file) 'SCCS)
+		   (not (eq state 'up-to-date)))
+	  (push (list frel state) result))))
     (funcall update-function result)))
 
 (defun vc-sccs-working-revision (file)