summaryrefslogtreecommitdiff
path: root/mips/packages/fcl-process/src
diff options
context:
space:
mode:
Diffstat (limited to 'mips/packages/fcl-process/src')
-rw-r--r--mips/packages/fcl-process/src/dummy/pipes.inc2
-rw-r--r--mips/packages/fcl-process/src/os2/pipes.inc4
-rw-r--r--mips/packages/fcl-process/src/pipes.pp2
-rw-r--r--mips/packages/fcl-process/src/process.pp5
-rw-r--r--mips/packages/fcl-process/src/unix/pipes.inc2
-rw-r--r--mips/packages/fcl-process/src/unix/process.inc2
-rw-r--r--mips/packages/fcl-process/src/win/pipes.inc4
-rw-r--r--mips/packages/fcl-process/src/win/process.inc10
-rw-r--r--mips/packages/fcl-process/src/wince/process.inc10
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,