|
@@ -46,9 +46,13 @@ begin
|
|
|
until (res<>-1) or (fpgeterrno<>ESysEINTR);
|
|
|
result:=res=Handle;
|
|
|
If Result then
|
|
|
- FExitCode:=wexitstatus(FExitCode)
|
|
|
- else
|
|
|
- FexitCode:=0;
|
|
|
+ begin
|
|
|
+ if wifexited(FExitCode) then
|
|
|
+ FExitCode:=wexitstatus(FExitCode);
|
|
|
+ // else pass errorvalue unmodified like shell does, bug #22055
|
|
|
+ end
|
|
|
+ else
|
|
|
+ FexitCode:=-1; // was 0, better testable for abnormal exit.
|
|
|
end;
|
|
|
|
|
|
Type
|