On 10/3/06, Michael Van Canneyt <[EMAIL PROTECTED]> wrote:
On Tue, 3 Oct 2006, Adrian Maier wrote: > On 10/3/06, Michael Van Canneyt <[EMAIL PROTECTED]> wrote: > > > Any idea how should i quote the arguments so that they would be properly > > > treated by TProcess? > > > > You can't. The following lines (line 107 of unix/process.inc) > > Result:=StringReplace(Result,'"','',[rfReplaceAll]); > > Result:=StringReplace(Result,'''','',[rfReplaceAll]); > > Will strip all quotes inside a quoted string. > > > > Obviously, this is a bug. > > It's a painful one. I was hoping to switch to TProcess instead of shell ( > which isn't cross-platform ) ... The bug won't occur on windows :)
I will see about fixing it. Could you please post a bug report so it won't be forgotten.
Ok.
> > > 3. The code returned by the called program can be got with > > > TProcess.ExitCode , right ? I have a situation in which a program 1 > > > , but TProcess.ExitCode is 0. Therefore it's impossible to detect > > > the failure. > > > > That can be if the program exited because of a signal. > > I'm not sure if this was the case - I'll have to investigate. > Anyway, is it possible to detect this situation ? Well, first of all you should do a 'IsRunning' (or running) before checking the exitcode.
I'm using the poWaitOnExit option, so my program doesn't waits until the external process ends. All I need is to know if the external process ended successfully or not .
Only after that you can check the exit code. About the signalling, we'd need to extend TProcess for that.
I understand. Cheers, Adrian Maier _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal