changeset 80333:5818a522c583

(vc-bzr-registered): Fail if `bzr' is not installed. (vc-bzr-annotate-command): Preserve line alignment. (vc-bzr-annotate-time): Accept space used to preserve alignment.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Fri, 14 Mar 2008 19:38:46 +0000
parents d10c1f589bb2
children 9833887c464d
files lisp/ChangeLog lisp/vc-bzr.el
diffstat 2 files changed, 21 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Fri Mar 14 17:47:50 2008 +0000
+++ b/lisp/ChangeLog	Fri Mar 14 19:38:46 2008 +0000
@@ -1,3 +1,9 @@
+2008-03-14  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* vc-bzr.el (vc-bzr-registered): Fail if `bzr' is not installed.
+	(vc-bzr-annotate-command): Preserve line alignment.
+	(vc-bzr-annotate-time): Accept space used to preserve alignment.
+
 2008-03-13  Richard Stallman  <rms@gnu.org>
 
 	* mouse.el (mouse-yank-secondary): Nice error msg if no secondary sel.
--- a/lisp/vc-bzr.el	Fri Mar 14 17:47:50 2008 +0000
+++ b/lisp/vc-bzr.el	Fri Mar 14 19:38:46 2008 +0000
@@ -146,13 +146,19 @@
                 (vc-bzr-state file)     ; Some other unknown format?
               (let* ((relfile (file-relative-name file root))
                      (reldir (file-name-directory relfile)))
-                (re-search-forward
-                 (concat "^\0"
-                         (if reldir (regexp-quote (directory-file-name reldir)))
-                         "\0"
-                         (regexp-quote (file-name-nondirectory relfile))
-                         "\0")
-                 nil t)))))))))
+                (when (re-search-forward
+                       (concat "^\0"
+                               (if reldir (regexp-quote
+                                           (directory-file-name reldir)))
+                               "\0"
+                               (regexp-quote (file-name-nondirectory relfile))
+                               "\0")
+                       nil t)
+                  ;; Make sure `bzr' agrees that this file is under Bzr's
+                  ;; control.  This is important because if `bzr' is not
+                  ;; installed vc-find-file may otherwise get an error in
+                  ;; the subsequent call to `vc-state'.
+                  (vc-bzr-state file))))))))))
 
 (defconst vc-bzr-state-words
   "added\\|ignored\\|kind changed\\|modified\\|removed\\|renamed\\|unknown"
@@ -430,7 +436,7 @@
     ;; to allow saving space by sharing the text properties.
     (setq vc-bzr-annotation-table (make-hash-table :test 'equal))
     (goto-char (point-min))
-    (while (re-search-forward "^\\( *[0-9]+\\) +\\(.+\\) +\\([0-9]\\{8\\}\\) |"
+    (while (re-search-forward "^\\( *[0-9]+ *\\) \\([^\n ]+\\) +\\([0-9]\\{8\\}\\) |"
                               nil t)
       (let* ((rev (match-string 1))
              (author (match-string 2))
@@ -446,7 +452,7 @@
         (insert tag " |")))))
 
 (defun vc-bzr-annotate-time ()
-  (when (re-search-forward "^ *[0-9]+ |" nil t)
+  (when (re-search-forward "^ *[0-9]+ +|" nil t)
     (let ((prop (get-text-property (line-beginning-position) 'help-echo)))
       (string-match "[0-9]+\\'" prop)
       (vc-annotate-convert-time