IdeConfig: Fixes for checking the result of macro substitution

This commit is contained in:
n7800 2024-09-25 03:42:01 +05:00 committed by Juha Manninen
parent c9abc17db6
commit 30a7007a39
2 changed files with 6 additions and 1 deletions

View File

@ -365,7 +365,7 @@ begin
{$ENDIF} {$ENDIF}
s:=''; s:='';
//IDEMessageDialog('Unknown Macro','Macro not defined: "'+s+'".',mtError,[mbAbort],0); //IDEMessageDialog('Unknown Macro','Macro not defined: "'+s+'".',mtError,[mbAbort],0);
Handled:=true; Handled:=false;
exit; exit;
end; end;
end; end;

View File

@ -295,7 +295,10 @@ begin
//debugln(['TTransferMacroList.SubstituteStr FUNC ',MacroName]); //debugln(['TTransferMacroList.SubstituteStr FUNC ',MacroName]);
MacroEnd:=SearchBracketClose(MacroEnd)+1; MacroEnd:=SearchBracketClose(MacroEnd)+1;
if MacroEnd>sLen+1 then if MacroEnd>sLen+1 then
begin
result := false;
break; // missing closing bracket break; // missing closing bracket
end;
OldMacroLen:=MacroEnd-MacroStart; OldMacroLen:=MacroEnd-MacroStart;
MacroStr:=copy(s,MacroStart,OldMacroLen); MacroStr:=copy(s,MacroStart,OldMacroLen);
// Macro found // Macro found
@ -322,6 +325,8 @@ begin
ExecuteMacro(MacroName,MacroParam,Data,Handled,Abort,Depth+1); ExecuteMacro(MacroName,MacroParam,Data,Handled,Abort,Depth+1);
if Abort then if Abort then
exit(false); exit(false);
if not Handled then
result := false; // set error, but continue parsing
MacroStr:=MacroParam; MacroStr:=MacroParam;
// substitute result // substitute result