# HG changeset patch # User Dan Nicolaescu # Date 1223165329 0 # Node ID 622e1277bbf26c23bb2bc659496273b14de57d05 # Parent 2bd72d98abe899ed7d3189c60eb65673be232e5e (vc-bzr-after-dir-status): Parse the output for non existent files. (vc-bzr-dir-status-files): New function. diff -r 2bd72d98abe8 -r 622e1277bbf2 lisp/ChangeLog --- a/lisp/ChangeLog Sat Oct 04 20:38:22 2008 +0000 +++ b/lisp/ChangeLog Sun Oct 05 00:08:49 2008 +0000 @@ -1,3 +1,9 @@ +2008-10-05 Dan Nicolaescu + + * vc-bzr.el (vc-bzr-after-dir-status): Parse the output for non + existent files. + (vc-bzr-dir-status-files): New function. + 2008-10-04 Glenn Morris * files.el (make-temp-file): Handle empty `prefix'. (Bug#1081) diff -r 2bd72d98abe8 -r 622e1277bbf2 lisp/vc-bzr.el --- a/lisp/vc-bzr.el Sat Oct 04 20:38:22 2008 +0000 +++ b/lisp/vc-bzr.el Sun Oct 05 00:08:49 2008 +0000 @@ -611,6 +611,9 @@ ("? " . unregistered) ;; No such state, but we need to distinguish this case. ("R " . renamed) + ;; For a non existent file FOO, the output is: + ;; bzr: ERROR: Path(s) do not exist: FOO + ("bzr" . not-found) ;; Ignore "P " and "P." for pending patches. )) (translated nil) @@ -640,6 +643,8 @@ (old-name (match-string 1))) (push (list new-name 'edited (vc-bzr-create-extra-fileinfo old-name)) result))) + ;; do nothing for non existent files + ((eq translated 'not-found)) (t (push (list (buffer-substring-no-properties (+ (point) 4) @@ -654,6 +659,11 @@ (vc-exec-after `(vc-bzr-after-dir-status (quote ,update-function)))) +(defun vc-bzr-dir-status-files (dir files default-state update-function) + "Return a list of conses (file . state) for DIR." + (apply 'vc-bzr-command "status" (current-buffer) 'async dir "-v" "-S" files) + (vc-exec-after + `(vc-bzr-after-dir-status (quote ,update-function)))) ;;; Revision completion (defun vc-bzr-revision-completion-table (files)