fix, prevented infinite tool execution

This commit is contained in:
Basile Burg 2015-01-05 09:34:56 +01:00
parent ebb34743b8
commit 49cc7c0828
1 changed files with 14 additions and 2 deletions

View File

@ -103,13 +103,23 @@ begin
end; end;
procedure TCEToolItem.setChainBefore(aValue: TStringList); procedure TCEToolItem.setChainBefore(aValue: TStringList);
var
i: Integer;
begin begin
fChainBefore.Assign(aValue); fChainBefore.Assign(aValue);
i := fChainBefore.IndexOf(fToolAlias);
if i <> -1 then
fChainBefore.Delete(i);
end; end;
procedure TCEToolItem.setChainAfter(aValue: TStringList); procedure TCEToolItem.setChainAfter(aValue: TStringList);
var
i: Integer;
begin begin
fChainAfter.Assign(aValue); fChainAfter.Assign(aValue);
i := fChainAfter.IndexOf(fToolAlias);
if i <> -1 then
fChainAfter.Delete(i);
end; end;
procedure TCEToolItem.execute; procedure TCEToolItem.execute;
@ -245,12 +255,14 @@ begin
for nme in aTool.chainBefore do for nme in aTool.chainBefore do
for chained in fTools do for chained in fTools do
if TCEToolItem(chained).toolAlias = nme then if TCEToolItem(chained).toolAlias = nme then
if TCEToolItem(chained).toolAlias <> aTool.toolAlias then
TCEToolItem(chained).execute; TCEToolItem(chained).execute;
if exeInSysPath(aTool.executable) then if exeInSysPath(aTool.executable) then
aTool.execute; aTool.execute;
for nme in aTool.chainAfter do for nme in aTool.chainAfter do
for chained in fTools do for chained in fTools do
if TCEToolItem(chained).toolAlias = nme then if TCEToolItem(chained).toolAlias = nme then
if TCEToolItem(chained).toolAlias <> aTool.toolAlias then
TCEToolItem(chained).execute; TCEToolItem(chained).execute;
end; end;