summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorDan Nicolaescu <dann@ics.uci.edu>2008-03-24 08:21:43 +0000
committerDan Nicolaescu <dann@ics.uci.edu>2008-03-24 08:21:43 +0000
commit75cb52bed9dcfe06b1ceb0cb9213175b1caac95e (patch)
tree67692eb735eb44b4ad98f028b7ca0f54f6efeb46 /lisp
parent9c92e9136b5a550eb936e2ec5c4e9ac18c5bb9ca (diff)
downloademacs-75cb52bed9dcfe06b1ceb0cb9213175b1caac95e.tar.gz
emacs-75cb52bed9dcfe06b1ceb0cb9213175b1caac95e.tar.bz2
emacs-75cb52bed9dcfe06b1ceb0cb9213175b1caac95e.zip
(vc-git-after-dir-status-stage1): Move state matching
code ... (vc-git--state-code): ... to this new function. (vc-git-state): Use it.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog7
-rw-r--r--lisp/vc-git.el20
2 files changed, 19 insertions, 8 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index ccca34f2150..91638c1dce8 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,10 @@
+2008-03-24 Alexandre Julliard <julliard@winehq.org>
+
+ * vc-git.el (vc-git-after-dir-status-stage1): Move state matching
+ code ...
+ (vc-git--state-code): ... to this new function.
+ (vc-git-state): Use it.
+
2008-03-24 Trent Buck <trentbuck@gmail.com> (tiny change)
* textmodes/remember.el (remember-mail-date)
diff --git a/lisp/vc-git.el b/lisp/vc-git.el
index 82c00677169..f75c4b8b810 100644
--- a/lisp/vc-git.el
+++ b/lisp/vc-git.el
@@ -141,14 +141,23 @@
(string= (substring str 0 (1+ (length name)))
(concat name "\0")))))))))
+(defun vc-git--state-code (code)
+ "Convert from a string to a added/deleted/modified state."
+ (case (string-to-char code)
+ (?M 'edited)
+ (?A 'added)
+ (?D 'removed)
+ (?U 'edited) ;; FIXME
+ (?T 'edited))) ;; FIXME
+
(defun vc-git-state (file)
"Git-specific version of `vc-state'."
;; FIXME: This can't set 'ignored yet
(vc-git--call nil "add" "--refresh" "--" (file-relative-name file))
(let ((diff (vc-git--run-command-string file "diff-index" "-z" "HEAD" "--")))
- (if (and diff (string-match ":[0-7]\\{6\\} [0-7]\\{6\\} [0-9a-f]\\{40\\} [0-9a-f]\\{40\\} \\([ADMU]\\)\0[^\0]+\0"
+ (if (and diff (string-match ":[0-7]\\{6\\} [0-7]\\{6\\} [0-9a-f]\\{40\\} [0-9a-f]\\{40\\} \\([ADMUT]\\)\0[^\0]+\0"
diff))
- (if (string= (match-string 1 diff) "A") 'added 'edited)
+ (vc-git--state-code (match-string 1 diff))
(if (vc-git--empty-db-p) 'added 'up-to-date))))
(defun vc-git--ls-files-state (state &rest args)
@@ -216,12 +225,7 @@
":[0-7]\\{6\\} [0-7]\\{6\\} [0-9a-f]\\{40\\} [0-9a-f]\\{40\\} \\([ADMUT]\\)\0\\([^\0]+\\)\0"
nil t 1)
(let ((filename (match-string 2))
- (status (case (string-to-char( match-string 1))
- (?M 'edited)
- (?A 'added)
- (?D 'removed)
- (?U 'edited) ;; FIXME
- (?T 'edited)))) ;; FIXME
+ (status (vc-git--state-code (match-string 1))))
(push (cons filename status) vc-git-status-result)))
(erase-buffer)
(vc-git-command (current-buffer) 'async nil "ls-files" "-z" "-o"