diff --git a/uiop/run-program.lisp b/uiop/run-program.lisp index 48cc2ef441d31b09cd8af937c1922b3decc8886d..1858e98f6d507591da960f8c39e908832a3fb902 100644 --- a/uiop/run-program.lisp +++ b/uiop/run-program.lisp @@ -353,13 +353,13 @@ for the implementation's underlying run-program function" #+os-unix (list command) #+os-windows (string - #+mkcl (list "cmd" "/c" command) ;; NB: We do NOT add cmd /c here. You might want to. #+(or allegro clisp) command ;; On ClozureCL for Windows, we assume you are using ;; r15398 or later in 1.9 or later, ;; so that bug 858 is fixed http://trac.clozure.com/ccl/ticket/858 #+clozure (cons "cmd" (strcat "/c " command)) + #+mkcl (list "cmd" "/c" command) #+sbcl (list (%cmd-shell-pathname) "/c" command) ;; NB: On other Windows implementations, this is utterly bogus ;; except in the most trivial cases where no quoting is needed. @@ -472,10 +472,10 @@ It returns a process-info plist with possible keys: #-lispworks :if-error-exists #+lispworks :if-error-output-exists ,if-error-output-exists) #+lispworks `(:save-exit-status t) + #+mkcl `(:directory ,(native-namestring directory)) #+sbcl `(:search t :if-output-does-not-exist :create :if-error-does-not-exist :create) - #+mkcl `(:directory ,(native-namestring directory)) #-sbcl keys #+sbcl (if directory keys (remove-plist-key :directory keys)))))) (process-info-r ())) @@ -581,8 +581,8 @@ It returns a process-info plist with possible keys: (system:pipe-exit-status stream :wait t) (if-let ((f (find-symbol* :pid-exit-status :system nil))) (funcall f process :wait t))) - #+sbcl (sb-ext:process-exit-code process) - #+mkcl (mkcl:join-process process))))) + #+mkcl (mkcl:join-process process) + #+sbcl (sb-ext:process-exit-code process))))) (defun %check-result (exit-code &key command process ignore-error-status) (unless ignore-error-status