emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] Changes to emacs/lisp/vc-svn.el,v


From: Dan Nicolaescu
Subject: [Emacs-diffs] Changes to emacs/lisp/vc-svn.el,v
Date: Fri, 18 Jan 2008 23:45:07 +0000

CVSROOT:        /cvsroot/emacs
Module name:    emacs
Changes by:     Dan Nicolaescu <dann>   08/01/18 23:45:06

Index: vc-svn.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/vc-svn.el,v
retrieving revision 1.63
retrieving revision 1.64
diff -u -b -r1.63 -r1.64
--- vc-svn.el   16 Jan 2008 06:22:58 -0000      1.63
+++ vc-svn.el   18 Jan 2008 23:45:03 -0000      1.64
@@ -158,6 +158,29 @@
       (vc-svn-command t 0 nil "status" (if localp "-v" "-u"))
       (vc-svn-parse-status))))
 
+(defun vc-svn-dir-status (dir)
+  "Return a list of conses (FILE . STATE) for DIR."
+  (with-temp-buffer
+    (let ((default-directory (file-name-as-directory dir))
+         (state-map '((?A . added)
+                      (?C . edited)
+                      (?D . removed)
+                      (?I . ignored)
+                      (?M . edited)
+                      (?R . removed)
+                      (?? . unregistered)
+                      ;; This is what vc-svn-parse-status does.
+                      (?~ . edited)))
+         result)
+      (vc-svn-command t 0 nil "status")
+      (goto-char (point-min))
+      (while (re-search-forward "^\\(.\\)..... \\(.*\\)$" nil t)
+       (let ((state (cdr (assq (aref (match-string 1) 0) state-map)))
+             (filename (match-string 2)))
+         (when state
+           (setq result (cons (cons filename state) result)))))
+      result)))
+
 (defun vc-svn-working-revision (file)
   "SVN-specific version of `vc-working-revision'."
   ;; There is no need to consult RCS headers under SVN, because we




reply via email to

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