diff options
author | Dan Nicolaescu <dann@ics.uci.edu> | 2007-12-28 22:50:18 +0000 |
---|---|---|
committer | Dan Nicolaescu <dann@ics.uci.edu> | 2007-12-28 22:50:18 +0000 |
commit | 6c47d8195e2402731c5cec511019b16d6a7a02bd (patch) | |
tree | daf95a8e084df5cca7d85cf6307750dd1656dc5f /lisp/vc-hg.el | |
parent | 870356897e927f380841268667a92b40fb9e6782 (diff) | |
download | emacs-6c47d8195e2402731c5cec511019b16d6a7a02bd.tar.gz emacs-6c47d8195e2402731c5cec511019b16d6a7a02bd.tar.bz2 emacs-6c47d8195e2402731c5cec511019b16d6a7a02bd.zip |
(vc-hg-registered): Return the false when vc-hg-state
returns 'ignored or 'unregistered.
(vc-hg-state): Pass "-A" to the status command and deal with the
output.
(vc-hg-dir-state): Pass "-A" to the status command.
Diffstat (limited to 'lisp/vc-hg.el')
-rw-r--r-- | lisp/vc-hg.el | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/lisp/vc-hg.el b/lisp/vc-hg.el index 592bccaf517..41cc883c0a4 100644 --- a/lisp/vc-hg.el +++ b/lisp/vc-hg.el @@ -147,7 +147,9 @@ (defun vc-hg-registered (file) "Return non-nil if FILE is registered with hg." (when (vc-hg-root file) ; short cut - (vc-file-setprop file 'vc-state (vc-hg-state file)))) ; expensive + (let ((state (vc-hg-state file))) ; expensive + (vc-file-setprop file 'vc-state state) + (not (memq state '(ignored unregistered)))))) (defun vc-hg-state (file) "Hg-specific version of `vc-state'." @@ -162,26 +164,26 @@ ;; Ignore all errors. (call-process "hg" nil t nil "--cwd" (file-name-directory file) - "status" (file-name-nondirectory file)) + "status" "-A" (file-name-nondirectory file)) ;; Some problem happened. E.g. We can't find an `hg' ;; executable. (error nil))))))) (when (eq 0 status) - (if (eq 0 (length out)) 'up-to-date (when (null (string-match ".*: No such file or directory$" out)) (let ((state (aref out 0))) (cond + ((eq state ?C) 'up-to-date) ((eq state ?A) 'edited) ((eq state ?M) 'edited) ((eq state ?I) 'ignored) ((eq state ?R) 'unregistered) ((eq state ??) 'unregistered) - (t 'up-to-date)))))))) + (t 'up-to-date))))))) (defun vc-hg-dir-state (dir) (with-temp-buffer (buffer-disable-undo) ;; Because these buffers can get huge - (vc-hg-command (current-buffer) nil nil "status") + (vc-hg-command (current-buffer) nil nil "status" "-A") (goto-char (point-min)) (let ((status-char nil) (file nil)) |