diff options
author | Dan Nicolaescu <dann@ics.uci.edu> | 2019-06-27 20:13:14 +0200 |
---|---|---|
committer | Lars Ingebrigtsen <larsi@gnus.org> | 2019-06-27 21:00:36 +0200 |
commit | b93e5463885f9c99e74b52d2f569ad06ec2d0ff8 (patch) | |
tree | a5924bda8ebf66891e773d791d44a237b5aa9e0e /lisp/vc | |
parent | b98b843a5b6df987d3dba3e66fe637570c06cd0d (diff) | |
download | emacs-b93e5463885f9c99e74b52d2f569ad06ec2d0ff8.tar.gz |
Include the date in the bzr annotation buffer
* lisp/vc/vc-bzr.el (vc-bzr-annotate-command)
(vc-bzr-annotate-time)
(vc-bzr-annotate-extract-revision-at-line): Include a date in the
bzr annotation buffer (bug#5428).
Diffstat (limited to 'lisp/vc')
-rw-r--r-- | lisp/vc/vc-bzr.el | 50 |
1 files changed, 7 insertions, 43 deletions
diff --git a/lisp/vc/vc-bzr.el b/lisp/vc/vc-bzr.el index ee1646cae5a..89f1fcce376 100644 --- a/lisp/vc/vc-bzr.el +++ b/lisp/vc/vc-bzr.el @@ -869,61 +869,25 @@ Each line is tagged with the revision number, which has a `help-echo' property containing author and date information." (apply #'vc-bzr-command "annotate" buffer 'async file "--long" "--all" (append (vc-switches 'bzr 'annotate) - (if revision (list "-r" revision)))) - (let ((table (make-hash-table :test 'equal))) - (set-process-filter - (get-buffer-process buffer) - (lambda (proc string) - (when (process-buffer proc) - (with-current-buffer (process-buffer proc) - (setq string (concat (process-get proc :vc-left-over) string)) - ;; Eg: 102020 Gnus developers 20101020 | regexp." - ;; As of bzr 2.2.2, no email address in whoami (which can - ;; lead to spaces in the author field) is allowed but discouraged. - ;; See bug#7792. - (while (string-match "^\\( *[0-9.]+ *\\) \\(.+?\\) +\\([0-9]\\{8\\}\\)\\( |.*\n\\)" string) - (let* ((rev (match-string 1 string)) - (author (match-string 2 string)) - (date (match-string 3 string)) - (key (substring string (match-beginning 0) - (match-beginning 4))) - (line (match-string 4 string)) - (tag (gethash key table)) - (inhibit-read-only t)) - (setq string (substring string (match-end 0))) - (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) - (move-marker (process-mark proc) (point)))) - (process-put proc :vc-left-over string))))))) + (if revision (list "-r" revision))))) (declare-function vc-annotate-convert-time "vc-annotate" (&optional time)) (defun vc-bzr-annotate-time () - (when (re-search-forward "^ *[0-9.]+ +.+? +|" 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))) + (when (re-search-forward "^[0-9.]+ +[^\n ]* +\\([0-9]\\{8\\}\\) |" nil t) + (let ((str (match-string-no-properties 1))) (vc-annotate-convert-time (encode-time 0 0 0 - (string-to-number (substring str 6 8)) - (string-to-number (substring str 4 6)) - (string-to-number (substring str 0 4)))))))) + (string-to-number (substring str 6 8)) + (string-to-number (substring str 4 6)) + (string-to-number (substring str 0 4))))))) (defun vc-bzr-annotate-extract-revision-at-line () "Return revision for current line of annotation buffer, or nil. Return nil if current line isn't annotated." (save-excursion (beginning-of-line) - (if (looking-at "^ *\\([0-9.]+\\) +.* +|") + (if (looking-at "^\\([0-9.]+\\) +[^\n ]* +\\([0-9]\\{8\\}\\) |") (match-string-no-properties 1)))) (defun vc-bzr-command-discarding-stderr (command &rest args) |