emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs/lisp ChangeLog vc-bzr.el


From: Stefan Monnier
Subject: [Emacs-diffs] emacs/lisp ChangeLog vc-bzr.el
Date: Thu, 26 Nov 2009 14:50:33 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Stefan Monnier <monnier>        09/11/26 14:50:32

Modified files:
        lisp           : ChangeLog vc-bzr.el 

Log message:
        (vc-bzr-annotate-command): Make operation asynchronous.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/ChangeLog?cvsroot=emacs&r1=1.16747&r2=1.16748
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/vc-bzr.el?cvsroot=emacs&r1=1.85&r2=1.86

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/emacs/emacs/lisp/ChangeLog,v
retrieving revision 1.16747
retrieving revision 1.16748
diff -u -b -r1.16747 -r1.16748
--- ChangeLog   26 Nov 2009 03:27:10 -0000      1.16747
+++ ChangeLog   26 Nov 2009 14:50:28 -0000      1.16748
@@ -1,3 +1,7 @@
+2009-11-26  Stefan Monnier  <address@hidden>
+
+       * vc-bzr.el (vc-bzr-annotate-command): Make operation asynchronous.
+
 2009-11-26  Dan Nicolaescu  <address@hidden>
 
        * finder.el (finder-mode-map): Add a menu.
@@ -13,17 +17,18 @@
 2009-11-26  Wilson Snyder  <address@hidden>
 
        * verilog-mode.el (verilog-auto-insert-lisp, verilog-delete-auto)
-       (verilog-delete-empty-auto-pair, verilog-library-filenames): Fix
-       AUTOINSERTLISP to support insert-file.  Reported by Clay Douglass.
+       (verilog-delete-empty-auto-pair, verilog-library-filenames):
+       Fix AUTOINSERTLISP to support insert-file.  Reported by Clay Douglass.
 
        (verilog-auto-inst, verilog-auto-star-safe)
-       (verilog-delete-auto-star-implicit, verilog-read-sub-decls): Fix
-       removing "// Interfaces" when saving .* expansions.  Reported by
+       (verilog-delete-auto-star-implicit, verilog-read-sub-decls):
+       Fix removing "// Interfaces" when saving .* expansions.  Reported by
        Pierre-David Pfister.
 
 2009-11-26  Glenn Morris  <address@hidden>
 
-       * eshell/em-dirs.el (eshell/cd): Don't throw to a tag outside the scope.
+       * eshell/em-dirs.el (eshell/cd): Don't throw to a tag outside
+       the scope.
 
 2009-11-25  Johan Bockgård  <address@hidden>
 

Index: vc-bzr.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/vc-bzr.el,v
retrieving revision 1.85
retrieving revision 1.86
diff -u -b -r1.85 -r1.86
--- vc-bzr.el   15 Nov 2009 20:29:01 -0000      1.85
+++ vc-bzr.el   26 Nov 2009 14:50:32 -0000      1.86
@@ -551,27 +551,34 @@
   "Prepare BUFFER for `vc-annotate' on FILE.
 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 0 file "--long" "--all"
+  (apply #'vc-bzr-command "annotate" buffer 'async file "--long" "--all"
          (if revision (list "-r" revision)))
-  (with-current-buffer buffer
-    ;; Store the tags for the annotated source lines in a hash table
-    ;; 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.]+ *\\) \\([^\n ]+\\) 
+\\([0-9]\\{8\\}\\) |"
-                              nil t)
-      (let* ((rev (match-string 1))
-             (author (match-string 2))
-             (date (match-string 3))
-             (key (match-string 0))
-             (tag (gethash key vc-bzr-annotation-table)))
+  (lexical-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))
+           (while (string-match "^\\( *[0-9.]+ *\\) \\([^\n ]+\\) 
+\\([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 rev 'help-echo (concat "Author: " author
                                                        ", date: " date)
                                 'mouse-face 'highlight))
-          (puthash key tag vc-bzr-annotation-table))
-        (replace-match "")
-        (insert tag " |")))))
+                 (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)))))))
 
 (declare-function vc-annotate-convert-time "vc-annotate" (time))
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]