emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] Changes to emacs/lisp/vc.el,v


From: Stefan Monnier
Subject: [Emacs-diffs] Changes to emacs/lisp/vc.el,v
Date: Sat, 07 Jul 2007 20:37:20 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Stefan Monnier <monnier>        07/07/07 20:37:20

Index: vc.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/vc.el,v
retrieving revision 1.430
retrieving revision 1.431
diff -u -b -r1.430 -r1.431
--- vc.el       7 Jul 2007 01:53:20 -0000       1.430
+++ vc.el       7 Jul 2007 20:37:18 -0000       1.431
@@ -952,6 +952,8 @@
      ;; lost.  Terminated processes get deleted automatically
      ;; anyway. -- cyd
      ((or (null proc) (eq (process-status proc) 'exit))
+      ;; Make sure we've read the process's output before going further.
+      (if proc (accept-process-output proc))
       (eval code))
      ;; If a process is running, add CODE to the sentinel
      ((eq (process-status proc) 'run)
@@ -959,12 +961,13 @@
        (set-process-sentinel proc
          `(lambda (p s)
             (with-current-buffer ',(current-buffer)
+               (save-excursion
               (goto-char (process-mark p))
-              ,@(append (cdr (cdr (cdr ;strip off `with-current-buffer buf
-                                        ;             (goto-char...)'
-                          (car (cdr (cdr ;strip off `lambda (p s)'
-                           sentinel))))))
-                        (list `(vc-exec-after ',code))))))))
+               ,@(append (cdr (cdr (car   ;Strip off (save-exc (goto-char...)
+                           (cdr (cdr       ;Strip off (with-current-buffer buf
+                           (car (cdr (cdr ;Strip off (lambda (p s)
+                             sentinel))))))))
+                         (list `(vc-exec-after ',code)))))))))
      (t (error "Unexpected process state"))))
   nil)
 
@@ -3056,13 +3059,13 @@
     ;; Run through this file and find the oldest and newest dates annotated.
     (save-excursion
       (goto-char (point-min))
-      (while (setq date (prog1 (vc-call-backend vc-annotate-backend
-                                                'annotate-time)
-                          (forward-line 1)))
+      (while (not (eobp))
+        (when (setq date (vc-call-backend vc-annotate-backend 'annotate-time))
        (if (> date newest)
            (setq newest date))
        (if (< date oldest)
-           (setq oldest date))))
+              (setq oldest date)))
+        (forward-line 1)))
     (vc-annotate-display
      (/ (- (if full newest current) oldest)
         (vc-annotate-oldest-in-map vc-annotate-color-map))
@@ -3127,9 +3130,9 @@
         (vc-annotate-display-default (or vc-annotate-ratio 1.0)))
         ;; One of the auto-scaling modes
        ((eq vc-annotate-display-mode 'scale)
-        (vc-annotate-display-autoscale))
+        (vc-exec-after `(vc-annotate-display-autoscale)))
        ((eq vc-annotate-display-mode 'fullscale)
-        (vc-annotate-display-autoscale t))
+        (vc-exec-after `(vc-annotate-display-autoscale t)))
        ((numberp vc-annotate-display-mode) ; A fixed number of days lookback
         (vc-annotate-display-default
          (/ vc-annotate-display-mode
@@ -3383,9 +3386,11 @@
   (font-lock-mode 1))
 
 (defun vc-annotate-lines (limit)
-  (let (difference)
-    (while (and (< (point) limit)
-               (setq difference (vc-annotate-difference vc-annotate-offset)))
+  (while (< (point) limit)
+    (let ((difference (vc-annotate-difference vc-annotate-offset))
+          (start (point))
+          (end (progn (forward-line 1) (point))))
+      (when difference
       (let* ((color (or (vc-annotate-compcar difference vc-annotate-color-map)
                        (cons nil vc-annotate-very-old-color)))
             ;; substring from index 1 to remove any leading `#' in the name
@@ -3401,12 +3406,10 @@
                         (if vc-annotate-background
                             (set-face-background tmp-face
                                                  vc-annotate-background))
-                        tmp-face)))    ; Return the face
-            (point (point)))
-       (forward-line 1)
-       (put-text-property point (point) 'face face)))
+                           tmp-face))))        ; Return the face
+          (put-text-property start end 'face face)))))
     ;; Pretend to font-lock there were no matches.
-    nil))
+  nil)
 
 ;; Collect back-end-dependent stuff here
 




reply via email to

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