diff options
Diffstat (limited to 'mips/packages/fcl-process')
-rw-r--r-- | mips/packages/fcl-process/src/dummy/pipes.inc | 2 | ||||
-rw-r--r-- | mips/packages/fcl-process/src/os2/pipes.inc | 4 | ||||
-rw-r--r-- | mips/packages/fcl-process/src/pipes.pp | 2 | ||||
-rw-r--r-- | mips/packages/fcl-process/src/process.pp | 5 | ||||
-rw-r--r-- | mips/packages/fcl-process/src/unix/pipes.inc | 2 | ||||
-rw-r--r-- | mips/packages/fcl-process/src/unix/process.inc | 2 | ||||
-rw-r--r-- | mips/packages/fcl-process/src/win/pipes.inc | 4 | ||||
-rw-r--r-- | mips/packages/fcl-process/src/win/process.inc | 10 | ||||
-rw-r--r-- | mips/packages/fcl-process/src/wince/process.inc | 10 |
9 files changed, 22 insertions, 19 deletions
diff --git a/mips/packages/fcl-process/src/dummy/pipes.inc b/mips/packages/fcl-process/src/dummy/pipes.inc index d2fe3eeb0d..0ba622be88 100644 --- a/mips/packages/fcl-process/src/dummy/pipes.inc +++ b/mips/packages/fcl-process/src/dummy/pipes.inc @@ -15,7 +15,7 @@ // No pipes under dos, sorry... -Function CreatePipeHandles (Var Inhandle,OutHandle : THandle) : Boolean; +Function CreatePipeHandles (Var Inhandle,OutHandle : THandle; APipeBufferSize : Cardinal = 1024) : Boolean; begin InHandle := THandle (UnusedHandle); diff --git a/mips/packages/fcl-process/src/os2/pipes.inc b/mips/packages/fcl-process/src/os2/pipes.inc index ec92e1aa6a..352cf4c793 100644 --- a/mips/packages/fcl-process/src/os2/pipes.inc +++ b/mips/packages/fcl-process/src/os2/pipes.inc @@ -19,10 +19,10 @@ uses const PipeBufSize = 1024; -Function CreatePipeHandles (Var Inhandle,OutHandle : Longint) : Boolean; +Function CreatePipeHandles (Var Inhandle,OutHandle : Longint; APipeBufferSize : Cardinal = 1024) : Boolean; begin - CreatePipeHandles := DosCreatePipe (InHandle, OutHandle, PipeBufSize) = 0; + CreatePipeHandles := DosCreatePipe (InHandle, OutHandle, APipeBufferSize) = 0; end; Function TInputPipeStream.GetNumBytesAvailable: DWord; diff --git a/mips/packages/fcl-process/src/pipes.pp b/mips/packages/fcl-process/src/pipes.pp index a52123e696..555961d34b 100644 --- a/mips/packages/fcl-process/src/pipes.pp +++ b/mips/packages/fcl-process/src/pipes.pp @@ -50,7 +50,7 @@ Type Function Read (Var Buffer; Count : Longint) : longint; Override; end; -Function CreatePipeHandles (Var Inhandle,OutHandle : THandle) : Boolean; +Function CreatePipeHandles (Var Inhandle,OutHandle : THandle; APipeBufferSize : Cardinal = 1024) : Boolean; Procedure CreatePipeStreams (Var InPipe : TInputPipeStream; Var OutPipe : TOutputPipeStream); diff --git a/mips/packages/fcl-process/src/process.pp b/mips/packages/fcl-process/src/process.pp index 5ec6b1d4cf..bc30c05171 100644 --- a/mips/packages/fcl-process/src/process.pp +++ b/mips/packages/fcl-process/src/process.pp @@ -78,6 +78,7 @@ Type dwYcountChars, dwy : Cardinal; FXTermProgram: String; + FPipeBufferSize : cardinal; Procedure FreeStreams; Function GetExitStatus : Integer; Function GetRunning : Boolean; @@ -134,6 +135,7 @@ Type property OnForkEvent : TProcessForkEvent Read FForkEvent Write FForkEvent; {$endif UNIX} Published + property PipeBufferSize : cardinal read FPipeBufferSize write FPipeBufferSize default 1024; Property Active : Boolean Read GetRunning Write SetActive; Property ApplicationName : String Read FApplicationName Write SetApplicationName; deprecated; Property CommandLine : String Read FCommandLine Write SetCommandLine ; deprecated; @@ -247,6 +249,7 @@ begin {$ifdef UNIX} FForkEvent:=nil; {$endif UNIX} + FPipeBufferSize := 1024; FEnvironment:=TStringList.Create; FParameters:=TStringList.Create; end; @@ -465,8 +468,8 @@ begin try try p.Options := [poUsePipes]; - p.Execute; bytesread:=0; + p.Execute; while p.Running do begin Setlength(outputstring,BytesRead + READ_BYTES); diff --git a/mips/packages/fcl-process/src/unix/pipes.inc b/mips/packages/fcl-process/src/unix/pipes.inc index 8d2e691aa1..269ab12dbc 100644 --- a/mips/packages/fcl-process/src/unix/pipes.inc +++ b/mips/packages/fcl-process/src/unix/pipes.inc @@ -16,7 +16,7 @@ Uses BaseUnix, Unix, TermIO; -Function CreatePipeHandles (Var Inhandle,OutHandle : Longint) : Boolean; +Function CreatePipeHandles (Var Inhandle,OutHandle : Longint; APipeBufferSize : Cardinal = 1024) : Boolean; begin Result := (AssignPipe (Inhandle,OutHandle)<>-1); diff --git a/mips/packages/fcl-process/src/unix/process.inc b/mips/packages/fcl-process/src/unix/process.inc index 2d57d0053b..1339b6460c 100644 --- a/mips/packages/fcl-process/src/unix/process.inc +++ b/mips/packages/fcl-process/src/unix/process.inc @@ -52,7 +52,7 @@ begin // else pass errorvalue unmodified like shell does, bug #22055 end else - FexitCode:=-1; // was 0, better testable for abnormal exit. + FexitCode:=cardinal(-1); // was 0, better testable for abnormal exit. end; Type diff --git a/mips/packages/fcl-process/src/win/pipes.inc b/mips/packages/fcl-process/src/win/pipes.inc index 76f4154a98..899ec5a527 100644 --- a/mips/packages/fcl-process/src/win/pipes.inc +++ b/mips/packages/fcl-process/src/win/pipes.inc @@ -28,10 +28,10 @@ Const piInheritablePipe : TSecurityAttributes = ( PipeBufSize = 1024; -Function CreatePipeHandles (Var Inhandle,OutHandle : THandle) : Boolean; +Function CreatePipeHandles (Var Inhandle,OutHandle : THandle; APipeBufferSize : Cardinal = PipeBufSize) : Boolean; begin - Result := CreatePipe (@Inhandle,@OutHandle,@piNonInheritablePipe,PipeBufSize); + Result := CreatePipe (@Inhandle,@OutHandle,@piNonInheritablePipe,APipeBufferSize); end; diff --git a/mips/packages/fcl-process/src/win/process.inc b/mips/packages/fcl-process/src/win/process.inc index b0c532e10a..58b8eafda7 100644 --- a/mips/packages/fcl-process/src/win/process.inc +++ b/mips/packages/fcl-process/src/win/process.inc @@ -179,15 +179,15 @@ begin end; -Procedure CreatePipes(Var HI,HO,HE : Thandle; Var SI : TStartupInfo; CE : Boolean); +Procedure CreatePipes(Var HI,HO,HE : Thandle; Var SI : TStartupInfo; CE : Boolean; APipeBufferSize : Cardinal); begin - CreatePipeHandles(SI.hStdInput,HI); + CreatePipeHandles(SI.hStdInput,HI, APipeBufferSize); DuplicateHandleFP(SI.hStdInput); - CreatePipeHandles(HO,Si.hStdOutput); + CreatePipeHandles(HO,Si.hStdOutput, APipeBufferSize); DuplicateHandleFP( Si.hStdOutput); if CE then begin - CreatePipeHandles(HE,SI.hStdError); + CreatePipeHandles(HE,SI.hStdError, APipeBufferSize); DuplicateHandleFP( SI.hStdError); end else @@ -262,7 +262,7 @@ begin InitThreadAttributes(Self,FThreadAttributes); InitStartupInfo(Self,FStartUpInfo); If poUsePipes in FProcessOptions then - CreatePipes(HI,HO,HE,FStartupInfo,Not(poStdErrToOutPut in FProcessOptions)); + CreatePipes(HI,HO,HE,FStartupInfo,Not(poStdErrToOutPut in FProcessOptions), FPipeBufferSize); Try If Not CreateProcess (PName,PCommandLine,@FProcessAttributes,@FThreadAttributes, FInheritHandles,FCreationFlags,FEnv,PDir,FStartupInfo, diff --git a/mips/packages/fcl-process/src/wince/process.inc b/mips/packages/fcl-process/src/wince/process.inc index ed641c0b1f..116c78972e 100644 --- a/mips/packages/fcl-process/src/wince/process.inc +++ b/mips/packages/fcl-process/src/wince/process.inc @@ -152,13 +152,13 @@ begin end; end; -Procedure CreatePipes(Var HI,HO,HE : Thandle; Var SI : TStartupInfo; CE : Boolean); +Procedure CreatePipes(Var HI,HO,HE : Thandle; Var SI : TStartupInfo; CE : Boolean; APipeBufferSize : Cardinal); begin - CreatePipeHandles(SI.hStdInput,HI); - CreatePipeHandles(HO,Si.hStdOutput); + CreatePipeHandles(SI.hStdInput,HI,APipeBufferSize); + CreatePipeHandles(HO,Si.hStdOutput,APipeBufferSize); if CE then - CreatePipeHandles(HE,SI.hStdError) + CreatePipeHandles(HE,SI.hStdError,APipeBufferSize) else begin SI.hStdError:=SI.hStdOutput; @@ -213,7 +213,7 @@ begin InitThreadAttributes(Self,FThreadAttributes); InitStartupInfo(Self,FStartUpInfo); If poUsePipes in FProcessOptions then - CreatePipes(HI,HO,HE,FStartupInfo,Not(poStdErrToOutPut in FProcessOptions)); + CreatePipes(HI,HO,HE,FStartupInfo,Not(poStdErrToOutPut in FProcessOptions),FPipeBufferSize); Try If Not CreateProcess (PName,PCommandLine,@FProcessAttributes,@FThreadAttributes, FInheritHandles,FCreationFlags,FEnv,PDir,@FStartupInfo, |