]> git.eshelyaron.com Git - emacs.git/commitdiff
(vc-do-command): Return the process object in
authorDan Nicolaescu <dann@ics.uci.edu>
Sun, 20 Sep 2009 19:55:36 +0000 (19:55 +0000)
committerDan Nicolaescu <dann@ics.uci.edu>
Sun, 20 Sep 2009 19:55:36 +0000 (19:55 +0000)
the asynchronous case.  Use when instead of if.  Do not run
vc-exec-after to display a message if not enabled.

lisp/ChangeLog
lisp/vc-dispatcher.el

index 2cbd183b9a55fa0281c1c558cadb99a04829ea1d..11a5f69e4524bb190d940af3d03981bfd7ec358d 100644 (file)
@@ -1,5 +1,9 @@
 2009-09-20  Dan Nicolaescu  <dann@ics.uci.edu>
 
+       * vc-dispatcher.el (vc-do-command): Return the process object in
+       the asynchronous case.  Use when instead of if.  Do not run
+       vc-exec-after to display a message if not enabled.
+
        * vc-git.el (vc-git-dir-extra-headers): Add keymap and mouse-face
        properties to the stash strings.
        (vc-git-stash-list): Return a list of strings.
index a209e139bc20f50e17614eb9f1518184e0b8447a..07cf4a1ad289bec47bc0418fc1c9c861597d6f8a 100644 (file)
@@ -87,7 +87,7 @@
 ;;
 ;; The main interface to the lower level is vc-do-command.  This launches a
 ;; command, synchronously or asynchronously, making the output available
-;; in a command log buffer.  Two other functions, (vc-start-annotation) and
+;; in a command log buffer.  Two other functions, (vc-start-logentry) and
 ;; (vc-finish-logentry), allow you to associate a command closure with an
 ;; annotation buffer so that when the user confirms the comment the closure
 ;; is run (with the comment as part of its context).
@@ -280,7 +280,9 @@ subprocess; if it is t it means to ignore all execution errors).
 FILE-OR-LIST is the name of a working file; it may be a list of
 files or be nil (to execute commands that don't expect a file
 name or set of files).  If an optional list of FLAGS is present,
-that is inserted into the command line before the filename."
+that is inserted into the command line before the filename.
+Return the return value of the slave command in the synchronous
+case, and the process object in the asynchronous case."
   ;; FIXME: file-relative-name can return a bogus result because
   ;; it doesn't look at the actual file-system to see if symlinks
   ;; come into play.
@@ -310,7 +312,7 @@ that is inserted into the command line before the filename."
         ;; something, we'd have used vc-eval-after.
         ;; Use `delete-process' rather than `kill-process' because we don't
         ;; want any of its output to appear from now on.
-        (if oldproc (delete-process oldproc)))
+        (when oldproc (delete-process oldproc)))
       (let ((squeezed (remq nil flags))
            (inhibit-read-only t)
            (status 0))
@@ -330,13 +332,14 @@ that is inserted into the command line before the filename."
                     (let ((process-connection-type nil))
                       (apply 'start-file-process command (current-buffer)
                               command squeezed))))
-               (if vc-command-messages
-                   (message "Running %s in background..." full-command))
+               (when vc-command-messages
+                 (message "Running %s in background..." full-command))
                ;;(set-process-sentinel proc (lambda (p msg) (delete-process p)))
                (set-process-filter proc 'vc-process-filter)
-               (vc-exec-after
-                `(if vc-command-messages
-                     (message "Running %s in background... done" ',full-command))))
+               (setq status proc)
+               (when vc-command-messages
+                 (vc-exec-after
+                  `(message "Running %s in background... done" ',full-command))))
            ;; Run synchronously
            (when vc-command-messages
              (message "Running %s in foreground..." full-command))
@@ -350,11 +353,9 @@ that is inserted into the command line before the filename."
                 (goto-char (point-min))
                 (shrink-window-if-larger-than-buffer))
              (error "Running %s...FAILED (%s)" full-command
-                    (if (integerp status) (format "status %d" status) status))))
-         ;; We're done.  But don't emit a status message if running
-         ;; asynchronously, it would just mislead.
-         (if (and vc-command-messages (not (eq okstatus 'async)))
-             (message "Running %s...OK = %d" full-command status)))
+                    (if (integerp status) (format "status %d" status) status)))
+           (when vc-command-messages
+             (message "Running %s...OK = %d" full-command status))))
        (vc-exec-after
         `(run-hook-with-args 'vc-post-command-functions
                              ',command ',file-or-list ',flags))