IDE: Custom IDE title, skip interactive macros

(cherry picked from commit 01d301d685)
This commit is contained in:
Martin 2024-10-28 13:42:21 +01:00
parent 31faf1e79e
commit 3ab65737f6
2 changed files with 10 additions and 9 deletions

View File

@ -9029,7 +9029,7 @@ begin
if CustomnCaption <> '' then begin if CustomnCaption <> '' then begin
OldMarkUnhandledMacros := GlobalMacroList.MarkUnhandledMacros; OldMarkUnhandledMacros := GlobalMacroList.MarkUnhandledMacros;
GlobalMacroList.MarkUnhandledMacros := false; GlobalMacroList.MarkUnhandledMacros := false;
GlobalMacroList.SubstituteStr(CustomnCaption); GlobalMacroList.SubstituteStr(CustomnCaption, 0, 0, True);
if CustomnCaption <> '' then begin if CustomnCaption <> '' then begin
NewCaption := AddToCaption(NewCaption, CustomnCaption); NewCaption := AddToCaption(NewCaption, CustomnCaption);
end; end;

View File

@ -85,10 +85,10 @@ type
procedure Add(NewMacro: TTransferMacro); procedure Add(NewMacro: TTransferMacro);
function FindByName(const MacroName: string): TTransferMacro; function FindByName(const MacroName: string): TTransferMacro;
function SubstituteStr(var s: string; const Data: PtrInt = 0; function SubstituteStr(var s: string; const Data: PtrInt = 0;
Depth: integer = 0): boolean; Depth: integer = 0; SkipInteractive: Boolean = False): boolean;
procedure ExecuteMacro(const MacroName: string; procedure ExecuteMacro(const MacroName: string;
var MacroParam: string; const Data: PtrInt; out Handled, Abort: boolean; var MacroParam: string; const Data: PtrInt; out Handled, Abort: boolean;
Depth: integer); Depth: integer; SkipInteractive: boolean = False);
class function StrHasMacros(const s: string): boolean; class function StrHasMacros(const s: string): boolean;
property OnSubstitution: TOnSubstitution read fOnSubstitution write fOnSubstitution; property OnSubstitution: TOnSubstitution read fOnSubstitution write fOnSubstitution;
// error handling and loop detection // error handling and loop detection
@ -247,8 +247,8 @@ begin
// debugln('TTransferMacroList.Add A ',NewMacro.Name); // debugln('TTransferMacroList.Add A ',NewMacro.Name);
end; end;
function TTransferMacroList.SubstituteStr(var s:string; const Data: PtrInt; function TTransferMacroList.SubstituteStr(var s: string; const Data: PtrInt; Depth: integer;
Depth: integer): boolean; SkipInteractive: Boolean): boolean;
function SearchBracketClose(Position: integer): integer; function SearchBracketClose(Position: integer): integer;
var BracketClose: char; var BracketClose: char;
@ -324,7 +324,7 @@ begin
// find macro and get value // find macro and get value
Handled:=false; Handled:=false;
Abort:=false; Abort:=false;
ExecuteMacro(MacroName,MacroParam,Data,Handled,Abort,Depth+1); ExecuteMacro(MacroName,MacroParam,Data,Handled,Abort,Depth+1, SkipInteractive);
if Abort then if Abort then
exit(false); exit(false);
if not Handled then if not Handled then
@ -362,15 +362,16 @@ begin
end; end;
end; end;
procedure TTransferMacroList.ExecuteMacro(const MacroName: string; procedure TTransferMacroList.ExecuteMacro(const MacroName: string; var MacroParam: string;
var MacroParam: string; const Data: PtrInt; out Handled, Abort: boolean; const Data: PtrInt; out Handled, Abort: boolean; Depth: integer; SkipInteractive: boolean);
Depth: integer);
var var
Macro: TTransferMacro; Macro: TTransferMacro;
begin begin
Handled:=false; Handled:=false;
Abort:=false; Abort:=false;
Macro:=FindByName(MacroName); Macro:=FindByName(MacroName);
if SkipInteractive and (Macro <> nil) and (tmfInteractive in Macro.Flags) then
exit;
DoSubstitution(Macro,MacroName,MacroParam,Data,Handled,Abort,Depth); DoSubstitution(Macro,MacroName,MacroParam,Data,Handled,Abort,Depth);
if Abort or Handled then exit; if Abort or Handled then exit;
if Macro=nil then exit; if Macro=nil then exit;