]> git.eshelyaron.com Git - emacs.git/commitdiff
* vc.el (vc-exec-after): Don't delete process manually.
authorChong Yidong <cyd@stupidchicken.com>
Tue, 11 Jul 2006 18:39:32 +0000 (18:39 +0000)
committerChong Yidong <cyd@stupidchicken.com>
Tue, 11 Jul 2006 18:39:32 +0000 (18:39 +0000)
(vc-print-log): Run log-view-mode in process sentinel inside
inhibit-read-only.  Don't shrink window due to timing issues.

lisp/ChangeLog
lisp/vc.el

index 7bf32e705aed0e1eac0211d9ebb0c170f4b5f91a..bf2faf44f635642b59158b4e0035c1bc3cf2a4c1 100644 (file)
@@ -1,5 +1,9 @@
 2006-07-11  Chong Yidong  <cyd@stupidchicken.com>
 
+       * vc.el (vc-exec-after): Don't delete process manually.
+       (vc-print-log): Run log-view-mode in process sentinel inside
+       inhibit-read-only.  Don't shrink window due to timing issues.
+
        * progmodes/ebrowse.el (ebrowse-display-member-buffer): Avoid
        using with-output-to-temp-buffer, which clobbers local vars.
 
index 8290fd5b943557838a8b1c93402e6a1accaabcfc..d72ee4c7e4eed8b165727fc8b68ea4eee8479c23 100644 (file)
@@ -934,11 +934,12 @@ Else, add CODE to the process' sentinel."
   (let ((proc (get-buffer-process (current-buffer))))
     (cond
      ;; If there's no background process, just execute the code.
-     ((null proc) (eval code))
-     ;; If the background process has exited, reap it and try again
-     ((eq (process-status proc) 'exit)
-      (delete-process proc)
-      (vc-exec-after code))
+     ;; We used to explicitly call delete-process on exited processes,
+     ;; but this led to timing problems causing process output to be
+     ;; lost.  Terminated processes get deleted automatically
+     ;; anyway. -- cyd
+     ((or (null proc) (eq (process-status proc) 'exit))
+      (eval code))
      ;; If a process is running, add CODE to the sentinel
      ((eq (process-status proc) 'run)
       (let ((sentinel (process-sentinel proc)))
@@ -2446,9 +2447,9 @@ If FOCUS-REV is non-nil, leave the point at that revision."
          (vc-call print-log file)
          (set-buffer "*vc*"))))
     (pop-to-buffer (current-buffer))
-    (log-view-mode)
     (vc-exec-after
      `(let ((inhibit-read-only t))
+       (log-view-mode)
        (goto-char (point-max)) (forward-line -1)
        (while (looking-at "=*\n")
          (delete-char (- (match-end 0) (match-beginning 0)))
@@ -2456,7 +2457,7 @@ If FOCUS-REV is non-nil, leave the point at that revision."
        (goto-char (point-min))
        (if (looking-at "[\b\t\n\v\f\r ]+")
            (delete-char (- (match-end 0) (match-beginning 0))))
-       (shrink-window-if-larger-than-buffer)
+       ;; (shrink-window-if-larger-than-buffer)
        ;; move point to the log entry for the current version
        (vc-call-backend ',(vc-backend file)
                         'show-log-entry