diff --git a/uiop/run-program.lisp b/uiop/run-program.lisp index 1214a0d2e4ce7d4325dac1c9829da2d603bb3202..bb0f62ae9cd8b462a38c85fe80cc2a11ce8fe128 100644 --- a/uiop/run-program.lisp +++ b/uiop/run-program.lisp @@ -1017,9 +1017,13 @@ or :error-output." (%handle-if-does-not-exist input if-input-does-not-exist) (%handle-if-exists output if-output-exists) (%handle-if-exists error-output if-error-output-exists) - #+(or allegro clozure cmucl (and lispworks os-unix) sbcl scl) - (wait-process - (apply 'launch-program (%normalize-system-command command) keys)) + #+(or allegro clozure cmucl ecl (and lispworks os-unix) sbcl scl) + (let (#+ecl (version (parse-version (lisp-implementation-version)))) + (nest + #+ecl (unless (lexicographic<= '< version '(16 0 0))) + (return-from %system + (wait-process + (apply 'launch-program (%normalize-system-command command) keys))))) #+(or abcl clasp clisp cormanlisp ecl gcl genera (and lispworks os-windows) mkcl xcl) (let ((%command (%redirected-system-command command input output error-output directory))) #+(and lispworks os-windows)