mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-15 20:59:06 +02:00
lazbuild: EnableDefaultMacroEnvVar use uppercase env var
This commit is contained in:
parent
835a3a7f52
commit
fa5b6be1c0
@ -310,41 +310,33 @@ procedure TBuildManager.OnMacroSubstitution(TheMacro: TTransferMacro;
|
|||||||
Abort: boolean; Depth: integer);
|
Abort: boolean; Depth: integer);
|
||||||
{$IFDEF EnableDefaultMacroEnvVar}
|
{$IFDEF EnableDefaultMacroEnvVar}
|
||||||
var
|
var
|
||||||
VarCnt, i, BestIndex: Integer;
|
VarCnt, i: Integer;
|
||||||
EnvStr: String;
|
EnvStr, UpperMacroName: String;
|
||||||
p: SizeInt;
|
p: SizeInt;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
begin
|
begin
|
||||||
if TheMacro=nil then begin
|
if TheMacro=nil then begin
|
||||||
{$IFDEF EnableDefaultMacroEnvVar}
|
{$IFDEF EnableDefaultMacroEnvVar}
|
||||||
if s='' then begin
|
if s='' then begin
|
||||||
// default: use environment variable
|
// default: use uppercase environment variable
|
||||||
VarCnt:=GetEnvironmentVariableCountUTF8;
|
VarCnt:=GetEnvironmentVariableCountUTF8;
|
||||||
if length(fEnv)<>VarCnt then begin
|
if length(fEnv)<>VarCnt then begin
|
||||||
SetLength(fEnv,VarCnt);
|
SetLength(fEnv,VarCnt);
|
||||||
for i:=0 to VarCnt-1 do
|
for i:=0 to VarCnt-1 do
|
||||||
fEnv[i]:=GetEnvironmentStringUTF8(i);
|
fEnv[i]:=GetEnvironmentStringUTF8(i+1);
|
||||||
end;
|
end;
|
||||||
BestIndex:=-1;
|
UpperMacroName:=UTF8UpperCase(MacroName);
|
||||||
for i:=0 to VarCnt-1 do begin
|
for i:=0 to VarCnt-1 do begin
|
||||||
EnvStr:=fEnv[i];
|
EnvStr:=fEnv[i];
|
||||||
p:=Pos('=',EnvStr);
|
p:=Pos('=',EnvStr);
|
||||||
if p<2 then continue;
|
if p<2 then continue;
|
||||||
if (p-1=length(MacroName)) and CompareMem(@MacroName[1],@EnvStr[1],p-1) then
|
if (p-1=length(UpperMacroName)) and CompareMem(@UpperMacroName[1],@EnvStr[1],p-1) then
|
||||||
begin
|
begin
|
||||||
// perfect match
|
|
||||||
Handled:=true;
|
Handled:=true;
|
||||||
s:=copy(EnvStr,p+1,length(EnvStr));
|
s:=copy(EnvStr,p+1,length(EnvStr));
|
||||||
exit;
|
exit;
|
||||||
end else if (BestIndex<0) and (UTF8CompareText(MacroName,LeftStr(EnvStr,p-1))=0) then
|
|
||||||
begin
|
|
||||||
// case insensitive match -> use and search further
|
|
||||||
Handled:=true;
|
|
||||||
BestIndex:=i;
|
|
||||||
s:=copy(EnvStr,p+1,length(EnvStr));
|
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
if Handled then exit;
|
|
||||||
end;
|
end;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user