summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/subr.el13
1 files changed, 9 insertions, 4 deletions
diff --git a/lisp/subr.el b/lisp/subr.el
index b623658e8df..b0c718a7601 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -846,10 +846,15 @@ BUFFER is the buffer or (buffer-name) to associate with the process.
Third arg is command name, the name of a shell command.
Remaining arguments are the arguments for the command.
Wildcards and redirection are handled as usual in the shell."
- (if (eq system-type 'vax-vms)
- (apply 'start-process name buffer args)
- (start-process name buffer shell-file-name "-c"
- (concat "exec " (mapconcat 'identity args " ")))))
+ (cond
+ ((eq system-type 'vax-vms)
+ (apply 'start-process name buffer args))
+ ((eq system-type 'windows-nt)
+ (start-process name buffer shell-file-name shell-command-switch
+ (mapconcat 'identity args " ")))
+ (t
+ (start-process name buffer shell-file-name shell-command-switch
+ (concat "exec " (mapconcat 'identity args " "))))))
(defmacro save-match-data (&rest body)
"Execute the BODY forms, restoring the global value of the match data."