Oh. Is it the case that you don't even try to properly escape commands as with uiop:escape-windows-command or GetCommandLineW?
Grepping your source code, it looks like it has a lot of bogus escaping, on Unix as well as on Windows :-(
http://msdn.microsoft.com/en-us/library/bb776391(v=vs.85).aspxhttp://msdn.mi...
mkcl needs an interface that works, and then asdf can use it.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org My knowledge is finite. My ignorance is infinite. — Faré
On Mon, Dec 19, 2016 at 7:08 AM, Jean-Claude Beaudoin jean.claude.beaudoin@gmail.com wrote:
On Mon, Dec 19, 2016 at 3:36 AM, Faré fahree@gmail.com wrote:
On Mon, Dec 19, 2016 at 2:32 AM, Jean-Claude Beaudoin jean.claude.beaudoin@gmail.com wrote:
(...)
- test-run-program.script
.../uiop/launch-program.lisp is incomplete for MKCL on windows and needs to be patched as per attached file to be in any way functional in that context. Once patched accordingly and applied to very latest MKCL repo master head this test now passes.
#+(or mkcl) (list "cmd" (strcat "/c " command))
The list seems very wrong, unless MKCL doesn't quote its arguments to the win32 spawn function, which is probably wrong in its own right.
You lost me entirely here. It does look like something that works pretty well for being so wrong...
No "spawn" function involved here, just a very native and basic Win32 CreateProcessW() call.
Can you confirm how to execute a raw CMD command line with MKCL?
Are you looking for something like
(mkcl:run-program "cmd" '("/c echo ok 1") :output t) or (mkcl:run-program "cmd" '("/c" "echo" "ok" "1") :output t)
both produce the same output (sent to stdout here by the ":output t" pair, adjust to your need). Any slicing or concatenation of the arguments produce the same result.