]> code.delx.au - gnu-emacs/blobdiff - lisp/vc-bzr.el
(vc-bzr-log-view-mode): Fix short log regexp.
[gnu-emacs] / lisp / vc-bzr.el
index eb021f5e3dba0196d5a3b7f525dd89a0d591ff96..99b910e9f94ec99bda4946a451fafcd19772b49e 100644 (file)
@@ -462,7 +462,7 @@ REV non-nil gets an error."
   (set (make-local-variable 'log-view-file-re) "\\`a\\`")
   (set (make-local-variable 'log-view-message-re)
        (if vc-short-log
-          "^ +\\([0-9]+\\) \\(.*?\\)[ \t]+\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}\\)\\( \\[merge\\]\\)?"
+          "^ *\\([0-9.]+\\) \\(.*?\\)[ \t]+\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}\\)\\( \\[merge\\]\\)?"
         "^ *\\(?:revno: \\([0-9.]+\\)\\|merged: .+\\)"))
   (set (make-local-variable 'log-view-font-lock-keywords)
        ;; log-view-font-lock-keywords is careful to use the buffer-local
@@ -472,7 +472,7 @@ REV non-nil gets an error."
                    (1 'log-view-message-face)
                    (2 'change-log-name)
                    (3 'change-log-date)
-                   (4 'change-log-list))))
+                   (4 'change-log-list nil lax))))
         (append `((,log-view-message-re . 'log-view-message-face))
                 ;; log-view-font-lock-keywords
                 '(("^ *committer: \
@@ -481,7 +481,7 @@ REV non-nil gets an error."
                    (2 'change-log-email))
                   ("^ *timestamp: \\(.*\\)" (1 'change-log-date-face)))))))
 
-(defun vc-bzr-print-log (files buffer &optional shortlog limit)
+(defun vc-bzr-print-log (files buffer &optional shortlog start-revision limit)
   "Get bzr change log for FILES into specified BUFFER."
   ;; `vc-do-command' creates the buffer, but we need it before running
   ;; the command.
@@ -495,6 +495,7 @@ REV non-nil gets an error."
     (apply 'vc-bzr-command "log" buffer 'async files
           (append
            (when shortlog '("--short"))
+           (when start-revision (list (format "-r..%s" start-revision)))
            (when limit (list "-l" (format "%s" limit)))
            (if (stringp vc-bzr-log-switches)
                (list vc-bzr-log-switches)
@@ -504,7 +505,8 @@ REV non-nil gets an error."
   "Find entry for patch name REVISION in bzr change log buffer."
   (goto-char (point-min))
   (when revision
-    (let (case-fold-search)
+    (let (case-fold-search
+         found)
       (if (re-search-forward
           ;; "revno:" can appear either at the beginning of a line,
           ;; or indented.
@@ -512,8 +514,11 @@ REV non-nil gets an error."
                   ;; The revision can contain ".", quote it so that it
                   ;; does not interfere with regexp matching.
                   (regexp-quote revision) "$") nil t)
-         (beginning-of-line 0)
-       (goto-char (point-min))))))
+         (progn
+           (beginning-of-line 0)
+           (setq found t))
+       (goto-char (point-min)))
+      found)))
 
 (defun vc-bzr-diff (files &optional rev1 rev2 buffer)
   "VC bzr backend for diff."
@@ -571,10 +576,14 @@ property containing author and date information."
                     (tag (gethash key table))
                     (inhibit-read-only t))
                (setq string (substring string (match-end 0)))
-        (unless tag
-          (setq tag (propertize rev 'help-echo (concat "Author: " author
-                                                       ", date: " date)
-                                'mouse-face 'highlight))
+              (unless tag
+                (setq tag
+                      (propertize
+                       (format "%s %-7.7s" rev author)
+                       'help-echo (format "Revision: %d, author: %s, date: %s"
+                                          (string-to-number rev)
+                                          author date)
+                       'mouse-face 'highlight))
                  (puthash key tag table))
                (goto-char (process-mark proc))
                (insert tag line)
@@ -584,7 +593,7 @@ property containing author and date information."
 (declare-function vc-annotate-convert-time "vc-annotate" (time))
 
 (defun vc-bzr-annotate-time ()
-  (when (re-search-forward "^ *[0-9.]+ +|" nil t)
+  (when (re-search-forward "^ *[0-9.]+ +[^\n ]* +|" nil t)
     (let ((prop (get-text-property (line-beginning-position) 'help-echo)))
       (string-match "[0-9]+\\'" prop)
       (let ((str (match-string-no-properties 0 prop)))
@@ -599,7 +608,7 @@ property containing author and date information."
 Return nil if current line isn't annotated."
   (save-excursion
     (beginning-of-line)
-    (if (looking-at " *\\([0-9.]+\\) *| ")
+    (if (looking-at "^ *\\([0-9.]+\\) +[^\n ]* +|")
         (match-string-no-properties 1))))
 
 (defun vc-bzr-command-discarding-stderr (command &rest args)