]> code.delx.au - gnu-emacs/blobdiff - lisp/vc-hg.el
Merge from emacs--rel--22
[gnu-emacs] / lisp / vc-hg.el
index 6b025c8cfa7efbfae11a84689f082eb156acc197..eb392291653c746370772d77ec86ff181f5bcaac 100644 (file)
@@ -288,14 +288,18 @@ Optional arg REVISION is a revision to annotate from."
                 (when revision (concat "-r" revision)))
   (with-current-buffer buffer
     (goto-char (point-min))
-    (re-search-forward "^[0-9]")
-    (delete-region (point-min) (1- (point)))))
+    (re-search-forward "^[ \t]*[0-9]")
+    (delete-region (point-min) (match-beginning 0))))
 
 
 ;; The format for one line output by "hg annotate -d -n" looks like this:
 ;;215 Wed Jun 20 21:22:58 2007 -0700: CONTENTS
 ;; i.e: VERSION_NUMBER DATE: CONTENTS
-(defconst vc-hg-annotate-re "^[ \t]*\\([0-9]+\\) \\(.\\{30\\}\\): ")
+;; If the user has set the "--follow" option, the output looks like:
+;;215 Wed Jun 20 21:22:58 2007 -0700 foo.c: CONTENTS
+;; i.e. VERSION_NUMBER DATE FILENAME: CONTENTS
+(defconst vc-hg-annotate-re
+  "^[ \t]*\\([0-9]+\\) \\(.\\{30\\}\\)[^:\n]*\\(:[^ \n][^:\n]*\\)*: ")
 
 (defun vc-hg-annotate-time ()
   (when (looking-at vc-hg-annotate-re)
@@ -306,7 +310,7 @@ Optional arg REVISION is a revision to annotate from."
 (defun vc-hg-annotate-extract-revision-at-line ()
   (save-excursion
     (beginning-of-line)
-    (if (looking-at vc-hg-annotate-re) (match-string-no-properties 1))))
+    (when (looking-at vc-hg-annotate-re) (match-string-no-properties 1))))
 
 (defun vc-hg-previous-revision (file rev)
   (let ((newrev (1- (string-to-number rev))))