mirror of https://gitlab.com/basile.b/dexed.git
diff, prevent zombie proc + leak
This commit is contained in:
parent
e7ca586d77
commit
40505e9a58
|
@ -35,30 +35,37 @@ begin
|
|||
inherited create(nil);
|
||||
|
||||
p := TProcess.Create(self);
|
||||
p.Executable:= 'diff' + exeExt;
|
||||
try
|
||||
p.Executable:= 'diff' + exeExt;
|
||||
|
||||
lbl.Caption:= 'The file: "' + fname2 + '" has been modified by another program.'
|
||||
+ LineEnding + 'Use the following diff to decide if the content should be '
|
||||
+ 'reloaded.';
|
||||
lbl.Caption:= 'The file: "' + fname2 + '" has been modified by another program.'
|
||||
+ LineEnding + 'Use the following diff to decide if the content should be '
|
||||
+ 'reloaded.';
|
||||
|
||||
if exeInSysPath(p.Executable) then
|
||||
begin
|
||||
p.Parameters.Add('-u');
|
||||
p.Parameters.Add(fname1);
|
||||
p.Parameters.Add(fname2);
|
||||
p.Options:= [poUsePipes];
|
||||
p.ShowWindow:= swoHIDE;
|
||||
p.Execute;
|
||||
if exeInSysPath(p.Executable) then
|
||||
begin
|
||||
p.Parameters.Add('-u');
|
||||
p.Parameters.Add(fname1);
|
||||
p.Parameters.Add(fname2);
|
||||
p.Options:= [poUsePipes];
|
||||
p.ShowWindow:= swoHIDE;
|
||||
p.Execute;
|
||||
|
||||
r := TStringList.Create;
|
||||
try
|
||||
processOutputToStrings(p,r);
|
||||
editor.Lines.Assign(r);
|
||||
finally
|
||||
r.Free;
|
||||
end;
|
||||
r := TStringList.Create;
|
||||
try
|
||||
processOutputToStrings(p,r);
|
||||
editor.Lines.Assign(r);
|
||||
finally
|
||||
r.Free;
|
||||
end;
|
||||
|
||||
while p.Running do
|
||||
sleep(1);
|
||||
end
|
||||
else editor.Lines.Add('(The "diff" tool cannot be found)');
|
||||
finally
|
||||
p.Free;
|
||||
end
|
||||
else editor.Lines.Add('(The "diff" tool cannot be found)');
|
||||
end;
|
||||
|
||||
end.
|
||||
|
|
Loading…
Reference in New Issue