# HG changeset patch # User Dan Nicolaescu # Date 1198882218 0 # Node ID 06f57a4af48c3bd8e36b615873ed4e28ddb9eae1 # Parent 0cbc451989a7c74676c32a44c69e24476ca71f94 (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. diff -r 0cbc451989a7 -r 06f57a4af48c lisp/ChangeLog --- a/lisp/ChangeLog Fri Dec 28 22:26:31 2007 +0000 +++ b/lisp/ChangeLog Fri Dec 28 22:50:18 2007 +0000 @@ -1,3 +1,11 @@ +2007-12-28 Dan Nicolaescu + + * vc-hg.el (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. + 2007-12-29 Richard Stallman * progmodes/compile.el (compilation-start): Set initial visible diff -r 0cbc451989a7 -r 06f57a4af48c lisp/vc-hg.el --- a/lisp/vc-hg.el Fri Dec 28 22:26:31 2007 +0000 +++ b/lisp/vc-hg.el Fri Dec 28 22:50:18 2007 +0000 @@ -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))