From: Dan Nicolaescu Date: Sun, 20 Sep 2009 19:55:36 +0000 (+0000) Subject: (vc-do-command): Return the process object in X-Git-Tag: emacs-pretest-23.1.90~1214 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=4096c5f2f0db164bbaf7c39129047df6c2592bcb;p=emacs.git (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. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 2cbd183b9a5..11a5f69e452 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,9 @@ 2009-09-20 Dan Nicolaescu + * 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. diff --git a/lisp/vc-dispatcher.el b/lisp/vc-dispatcher.el index a209e139bc2..07cf4a1ad28 100644 --- a/lisp/vc-dispatcher.el +++ b/lisp/vc-dispatcher.el @@ -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))