IDE: Support uppercase '.LPI' and '.LPR' files better. Issue #40708.

This commit is contained in:
Juha 2024-02-29 13:55:02 +02:00
parent a8610762e1
commit d04340fa7e
5 changed files with 17 additions and 17 deletions

View File

@ -1982,7 +1982,7 @@ begin
begin
MsgLine.Urgency:=mluVerbose;
end else if HideHintsUnitNotUsedInMainSource then begin
if FilenameExtIs(MsgLine.Filename, 'lpr', true) then
if FilenameExtIs(MsgLine.Filename, 'lpr', false) then
// a lpr does not use a unit => not important
MsgLine.Urgency:=mluVerbose
else if FilenameIsAbsolute(MsgLine.Filename)

View File

@ -389,10 +389,10 @@ begin
Package:=TLazPackageLink(LazPackageLinks.FindLinkWithPkgName(OriginalFileName));
if Package=nil then begin
// Not found after everything we tried
if FilenameExtIs(Filename,'lpi', true) then
Error(ErrorFileNotFound,'file not found: '+OriginalFilename)
if FilenameExtIs(Filename,'lpi', false) then
Error(ErrorFileNotFound, 'File not found: "' + OriginalFilename + '"')
else
Error(ErrorFileNotFound,'package not found: '+OriginalFilename);
Error(ErrorFileNotFound,'package not found: "' + OriginalFilename + '"');
end
else begin
// We found a package link
@ -424,9 +424,9 @@ begin
lpaInstall: Result:=true; // this is handled in AddPackagesToInstallList
lpaAddPkgLinks: Result:=true;
end;
end else if FilenameExtIs(Filename,'lpi',true) then
end else if FilenameExtIs(Filename,'lpi',false) then
Result:=BuildProject(Filename)
else if FilenameExtIs(Filename,'lpr',true) then begin
else if FilenameExtIs(Filename,'lpr',false) then begin
Filename:=ChangeFileExt(Filename,'.lpi');
if FileExists(Filename) then
Result:=BuildProject(Filename)

View File

@ -5825,14 +5825,14 @@ begin
FileList := TStringList.Create;
FileList.AddStrings(FileNames);
try
if FilenameExtIs(FileList[0],'lpr') then
if FilenameExtIs(FileList[0],'lpr',false) then
begin
SourceEditorManager.IncUpdateLock;
OpenEditorFile(FileList[0],-1,WindowIndex,Nil,[ofAddToRecent]);
SourceEditorManager.DecUpdateLock;
FileList.Delete(0);
end
else if FilenameExtIs(FileList[0],'lpi',true) then
else if FilenameExtIs(FileList[0],'lpi',false) then
begin
DoOpenProjectFile(FileList[0],[ofAddToRecent]);
FileList.Delete(0);
@ -7698,9 +7698,9 @@ procedure TMainIDE.DoExecuteRemoteControl;
AProjectFilename:='';
for i:=Files.Count-1 downto 0 do begin
AProjectFilename:=Files[0];
if FilenameExtIs(AProjectFilename,'lpr',true) then
if FilenameExtIs(AProjectFilename,'lpr',false) then
AProjectFilename:=ChangeFileExt(AProjectFilename,'.lpi');
if FilenameExtIs(AProjectFilename,'lpi',true) then begin
if FilenameExtIs(AProjectFilename,'lpi',false) then begin
// open a project
Files.Delete(i); // remove from the list
AProjectFilename:=CleanAndExpandFilename(AProjectFilename);

View File

@ -7273,7 +7273,7 @@ begin
MaybeAddPopup('.pp');
MaybeAddPopup('.p');
end;
if FilenameExtIn(ShortFileName, ['lpi','lpk'], true) then begin
if FilenameExtIn(ShortFileName, ['lpi','lpk'], false) then begin
AddContextPopupMenuItem(Format(lisOpenLfm,[ShortFileName]),true,@OnPopupMenuOpenFile);
end;
FPDocSrc:=LazarusHelp.GetFPDocFilenameForSource(CurFilename,false,AnOwner);
@ -8403,7 +8403,7 @@ begin
aFilename:=copy(aFilename,p,length(aFilename)-(length(ResStr)-2));
if not FilenameIsAbsolute(aFilename) then
aFilename:=TrimFilename(ExtractFilePath(GetActiveSE.Filename)+aFilename);
if FilenameExtIs(aFilename,'lpi',true) then
if FilenameExtIs(aFilename,'lpi',false) then
MainIDEInterface.DoOpenProjectFile(aFilename,[ofOnlyIfExists,ofAddToRecent,ofUseCache])
else if FilenameExtIs(aFilename,'lpk',true) then
PackageEditingInterface.DoOpenPackageFile(aFilename,[pofAddToRecent],false)

View File

@ -1039,7 +1039,7 @@ var
SourceType: String;
begin
if ([ofProjectLoading,ofRegularFile]*FFlags=[]) and (MainIDE.ToolStatus=itNone)
and FilenameExtIs(FFilename,'lpi',true) then begin
and FilenameExtIs(FFilename,'lpi',false) then begin
// this is a project info file -> load whole project
Result:=MainIDE.DoOpenProjectFile(FFilename,[ofAddToRecent]);
if Result = mrOK then
@ -1265,7 +1265,7 @@ begin
if ([ofRegularFile,ofRevert,ofProjectLoading]*FFlags=[])
and FilenameIsAbsolute(FFilename) and FileExistsCached(FFilename) then begin
// check if file is a lazarus project (.lpi)
if FilenameExtIs(FFilename,'lpi',true) then
if FilenameExtIs(FFilename,'lpi',false) then
begin
case
IDEQuestionDialog(lisOpenProject, Format(lisOpenTheProject, [FFilename]),
@ -1986,10 +1986,10 @@ begin
if (AFiles=nil) or (AFiles.Count=0) then Exit;
//DebugLn(['MaybeOpenProject: AFiles=', AFiles.Count]);
AProjectFN:=AFiles[0];
if FilenameExtIs(AProjectFN,'lpr',true) then
if FilenameExtIs(AProjectFN,'lpr',false) then
AProjectFN:=ChangeFileExt(AProjectFN,'.lpi');
// only try to load .lpi files here, other files are loaded later
if FilenameExtIs(AProjectFN,'lpi',true) then begin
if FilenameExtIs(AProjectFN,'lpi',false) then begin
AProjectFN:=CleanAndExpandFilename(AProjectFN);
if FileExistsUTF8(AProjectFN) then begin
AFiles.Delete(0);
@ -4225,7 +4225,7 @@ begin
+dlgFilterAll+'|'+GetAllFilesMask;
if OpenDialog.Execute then begin
AFilename:=GetPhysicalFilenameCached(ExpandFileNameUTF8(OpenDialog.Filename),false);
if not FilenameExtIs(AFilename,'lpi',true) then begin
if not FilenameExtIs(AFilename,'lpi',false) then begin
// not a lpi file
// check if it is a program source