Commit 2de39aa3 authored by Robert Goldman's avatar Robert Goldman

Fix shell commands on Windows: clisp, ACL and (partially) SBCL.

parent 85e60689
......@@ -735,20 +735,31 @@ It returns a process-info plist with possible keys:
:ignore-error-status ignore-error-status))))))))
(values output-result error-output-result exit-code)))
;; find CMD.exe on windows
(defun %cmd-shell-pathname ()
(os-cond
((os-windows-p)
(concatenate 'string (namestring (getenv-absolute-directory "WINDIR"))
"System32\\cmd"))
(t
(error "CMD.EXE is not the command shell for this OS."))))
(defun %normalize-system-command (command) ;; helper for %USE-SYSTEM
(etypecase command
(string
(os-cond
((os-windows-p)
#+allegro
(concatenate 'string "cmd /c " command)
#-allegro command)
#+(or allegro clisp sbcl)
(concatenate 'string (%cmd-shell-pathname) " /c " command)
#-(or allegro sbcl clisp) command)
(t command)))
(list (escape-shell-command
(os-cond
((os-unix-p) (cons "exec" command))
((os-windows-p) #+allegro (append '("cmd" "/c") command)
#-allegro command)
((os-windows-p)
#+(or allegro sbcl clisp)
(cons (%cmd-shell-pathname) (cons "/c" command))
#-(or allegro sbcl clisp) command)
(t command))))))
(defun %redirected-system-command (command in out err directory) ;; helper for %USE-SYSTEM
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment