<div><div> - New function EXT:ENVIRON returns the list of strings that makes up the</div><div>   process environment. This is the equivalent of POSIX (char **environ)</div><div>   and Windows' GetEnvironmentStrings.</div>
<div><br></div><div> - EXT:RUN-PROGRAM now accepts a keyword argument, :ENVIRON, which is a</div><div>   list of strings configuring the environment of the child process.</div><div><br></div><div> - EXT:RUN-PROGRAM returns as second value an EXT:EXTERNAL-PROCESS structure,</div>
<div>   which supports the queries EXT:EXTERNAL-PROCESS-{PID,INPUT,OUTPUT,STATUS},</div><div>   following CCL's conventions.</div><div><br></div><div> - New function EXT:EXTERNAL-PROCESS-WAIT to wait indefinitely or simply query</div>
<div>   the status of a process.</div><div><br></div><div>This more or less seems to work in Unix. I am now testing the changes in Windows and will be probably uploading improvements tonight if I find problems.</div><div>
<br></div><div>Juanjo</div></div><div><br></div><div>$ ecl</div><div>ECL (Embeddable Common-Lisp) 10.1.1</div><div>Copyright (C) 1984 Taiichi Yuasa and Masami Hagiya</div><div>Copyright (C) 1993 Giuseppe Attardi</div><div>
Copyright (C) 2000 Juan J. Garcia-Ripoll</div><div>ECL is free software, and you are welcome to redistribute it</div><div>under certain conditions; see file 'Copyright' for details.</div><div>Type :h for Help.  </div>
<div>Top level.</div><div>> (multiple-value-setq (file status process) (ext:run-program "./foo.sh" nil :wait nil))</div><div>#<two-way stream 00109fa0></div><div>> file</div><div>#<two-way stream 00109fa0></div>
<div>> status</div><div>NIL</div><div>> process</div><div>#S(SI:EXTERNAL-PROCESS :SI::PID 19446 :SI::INPUT #<output stream "./foo.sh"> :SI::OUTPUT #<input stream "./foo.sh"> :SI::%STATUS :RUNNING :SI::%CODE NIL)</div>
<div>> (ext:external-process-status process)</div><div>:EXITED</div><div>0</div><div>> (ext:external-process-wait process)</div><div>:EXITED</div><div>0</div><div>> (multiple-value-setq (file status process) (ext:run-program "./foo.sh" nil :wait t))</div>
<div>#<two-way stream 00109cd0></div><div>> status</div><div>0</div><div>> process</div><div>#S(SI:EXTERNAL-PROCESS :SI::PID NIL :SI::INPUT #<output stream "./foo.sh"> :SI::OUTPUT #<input stream "./foo.sh"> :SI::%STATUS :EXITED :SI::%CODE 0)</div>
<div><br></div><br>-- <br>Instituto de Física Fundamental, CSIC<br>c/ Serrano, 113b, Madrid 28006 (Spain) <br><a href="http://juanjose.garciaripoll.googlepages.com">http://juanjose.garciaripoll.googlepages.com</a><br>