mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-10 14:56:00 +02:00
packager: support unit names with dots
git-svn-id: trunk@33385 -
This commit is contained in:
parent
dc6652bb81
commit
31f2ff282e
@ -324,7 +324,7 @@ begin
|
|||||||
// check unitname
|
// check unitname
|
||||||
if AddFileType in [d2ptUnit,d2ptNewComponent,d2ptVirtualUnit] then begin
|
if AddFileType in [d2ptUnit,d2ptNewComponent,d2ptVirtualUnit] then begin
|
||||||
AnUnitName:=ExtractFileNameOnly(AFilename);
|
AnUnitName:=ExtractFileNameOnly(AFilename);
|
||||||
if not IsValidIdent(AnUnitName) then begin
|
if not IsValidUnitName(AnUnitName) then begin
|
||||||
MessageDlg(lisA2PFileNotUnit,
|
MessageDlg(lisA2PFileNotUnit,
|
||||||
Format(lisA2PisNotAValidUnitName, ['"', AnUnitName, '"']),
|
Format(lisA2PisNotAValidUnitName, ['"', AnUnitName, '"']),
|
||||||
mtWarning,[mbCancel],0);
|
mtWarning,[mbCancel],0);
|
||||||
@ -385,7 +385,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
// check packagename
|
// check packagename
|
||||||
if (NewPkgName='') or (not IsValidIdent(NewPkgName)) then begin
|
if (NewPkgName='') or (not IsValidUnitName(NewPkgName)) then begin
|
||||||
MessageDlg(lisProjAddInvalidPackagename,
|
MessageDlg(lisProjAddInvalidPackagename,
|
||||||
Format(lisA2PThePackageNameIsInvalidPleaseChooseAnExisting, ['"', NewPkgName, '"', #13]),
|
Format(lisA2PThePackageNameIsInvalidPleaseChooseAnExisting, ['"', NewPkgName, '"', #13]),
|
||||||
mtError,[mbCancel],0);
|
mtError,[mbCancel],0);
|
||||||
|
@ -926,6 +926,8 @@ procedure PkgVersionSaveToXMLConfig(Version: TPkgVersion; XMLConfig: TXMLConfig;
|
|||||||
procedure PkgVersionLoadFromXMLConfig(Version: TPkgVersion;
|
procedure PkgVersionLoadFromXMLConfig(Version: TPkgVersion;
|
||||||
XMLConfig: TXMLConfig);
|
XMLConfig: TXMLConfig);
|
||||||
|
|
||||||
|
function IsValidUnitName(AUnitName: String): Boolean;
|
||||||
|
|
||||||
var
|
var
|
||||||
Package1: TLazPackage; // don't use it - only for options dialog
|
Package1: TLazPackage; // don't use it - only for options dialog
|
||||||
|
|
||||||
@ -934,6 +936,27 @@ function dbgs(p: TPackageUpdatePolicy): string; overload;
|
|||||||
implementation
|
implementation
|
||||||
|
|
||||||
|
|
||||||
|
function IsValidUnitName(AUnitName: String): Boolean;
|
||||||
|
var
|
||||||
|
P: Integer;
|
||||||
|
UnitPart: String;
|
||||||
|
begin
|
||||||
|
Result := True;
|
||||||
|
repeat
|
||||||
|
P := Pos('.', AUnitName);
|
||||||
|
if P > 0 then
|
||||||
|
begin
|
||||||
|
UnitPart := Copy(AUnitName, 1, P - 1);
|
||||||
|
Delete(AUnitName, 1, P);
|
||||||
|
Result := Result and IsValidIdent(UnitPart);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
Result := IsValidIdent(AUnitName);
|
||||||
|
if not Result then
|
||||||
|
Break;
|
||||||
|
until P = 0;
|
||||||
|
end;
|
||||||
|
|
||||||
function PkgFileTypeIdentToType(const s: string): TPkgFileType;
|
function PkgFileTypeIdentToType(const s: string): TPkgFileType;
|
||||||
begin
|
begin
|
||||||
for Result:=Low(TPkgFileType) to High(TPkgFileType) do
|
for Result:=Low(TPkgFileType) to High(TPkgFileType) do
|
||||||
@ -1358,7 +1381,7 @@ begin
|
|||||||
Result:=false;
|
Result:=false;
|
||||||
if CompareFileExt(AFilename,'.lpk',false)<>0 then exit;
|
if CompareFileExt(AFilename,'.lpk',false)<>0 then exit;
|
||||||
PkgName:=ExtractFileNameOnly(AFilename);
|
PkgName:=ExtractFileNameOnly(AFilename);
|
||||||
if (PkgName='') or (not IsValidIdent(PkgName)) then exit;
|
if (PkgName='') or (not IsValidUnitName(PkgName)) then exit;
|
||||||
Result:=true;
|
Result:=true;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -1880,7 +1903,7 @@ end;
|
|||||||
|
|
||||||
function TPkgDependency.MakeSense: boolean;
|
function TPkgDependency.MakeSense: boolean;
|
||||||
begin
|
begin
|
||||||
Result:=IsValidIdent(PackageName);
|
Result:=IsValidUnitName(PackageName);
|
||||||
if Result
|
if Result
|
||||||
and (pdfMinVersion in FFlags) and (pdfMaxVersion in FFlags)
|
and (pdfMinVersion in FFlags) and (pdfMaxVersion in FFlags)
|
||||||
and (MinVersion.Compare(MaxVersion)>0) then
|
and (MinVersion.Compare(MaxVersion)>0) then
|
||||||
@ -2913,7 +2936,7 @@ end;
|
|||||||
function TLazPackage.MakeSense: boolean;
|
function TLazPackage.MakeSense: boolean;
|
||||||
begin
|
begin
|
||||||
Result:=false;
|
Result:=false;
|
||||||
if (Name='') or (not IsValidIdent(Name)) then exit;
|
if (Name='') or (not IsValidUnitName(Name)) then exit;
|
||||||
Result:=true;
|
Result:=true;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -283,7 +283,7 @@ end;
|
|||||||
|
|
||||||
function TPackageLink.MakeSense: boolean;
|
function TPackageLink.MakeSense: boolean;
|
||||||
begin
|
begin
|
||||||
Result:=(Name<>'') and IsValidIdent(Name)
|
Result:=(Name<>'') and IsValidUnitName(Name)
|
||||||
and PackageFileNameIsValid(Filename)
|
and PackageFileNameIsValid(Filename)
|
||||||
and (CompareText(Name,ExtractFileNameOnly(Filename))=0);
|
and (CompareText(Name,ExtractFileNameOnly(Filename))=0);
|
||||||
end;
|
end;
|
||||||
|
@ -1309,7 +1309,7 @@ begin
|
|||||||
try
|
try
|
||||||
// check unitname
|
// check unitname
|
||||||
FRegistrationUnitName:=TheUnitName;
|
FRegistrationUnitName:=TheUnitName;
|
||||||
if not IsValidIdent(FRegistrationUnitName) then begin
|
if not IsValidUnitName(FRegistrationUnitName) then begin
|
||||||
RegistrationError(Format(lisPkgSysInvalidUnitname, [FRegistrationUnitName]
|
RegistrationError(Format(lisPkgSysInvalidUnitname, [FRegistrationUnitName]
|
||||||
));
|
));
|
||||||
exit;
|
exit;
|
||||||
@ -2228,7 +2228,7 @@ var
|
|||||||
begin
|
begin
|
||||||
for i:=0 to PkgList.Count-1 do begin
|
for i:=0 to PkgList.Count-1 do begin
|
||||||
PackageName:=PkgList[i];
|
PackageName:=PkgList[i];
|
||||||
if (PackageName='') or (not IsValidIdent(PackageName)) then continue;
|
if (PackageName='') or (not IsValidUnitName(PackageName)) then continue;
|
||||||
Dependency:=FindDependencyByNameInList(FirstAutoInstallDependency,
|
Dependency:=FindDependencyByNameInList(FirstAutoInstallDependency,
|
||||||
pdlRequires,PackageName);
|
pdlRequires,PackageName);
|
||||||
//DebugLn('TLazPackageGraph.LoadAutoInstallPackages ',dbgs(Dependency),' ',PackageName);
|
//DebugLn('TLazPackageGraph.LoadAutoInstallPackages ',dbgs(Dependency),' ',PackageName);
|
||||||
@ -4507,7 +4507,7 @@ begin
|
|||||||
CurFile.Unit_Name:=CurUnitName;
|
CurFile.Unit_Name:=CurUnitName;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
if (CurUnitName='') or (not IsValidIdent(CurUnitName)) then begin
|
if (CurUnitName='') or (not IsValidUnitName(CurUnitName)) then begin
|
||||||
AddMessage(Format(lisIDEInfoWARNINGUnitNameInvalidPackage, [CurFile.
|
AddMessage(Format(lisIDEInfoWARNINGUnitNameInvalidPackage, [CurFile.
|
||||||
Filename, APackage.IDAsString]),
|
Filename, APackage.IDAsString]),
|
||||||
APackage.Directory);
|
APackage.Directory);
|
||||||
|
@ -536,7 +536,7 @@ begin
|
|||||||
copy(aFormName,1,length(PackageEditorWindowPrefix)))=0
|
copy(aFormName,1,length(PackageEditorWindowPrefix)))=0
|
||||||
then begin
|
then begin
|
||||||
APackageName:=copy(aFormName,length(PackageEditorWindowPrefix)+1,length(aFormName));
|
APackageName:=copy(aFormName,length(PackageEditorWindowPrefix)+1,length(aFormName));
|
||||||
if (APackageName='') or not IsValidIdent(APackageName) then exit;
|
if (APackageName='') or not IsValidUnitName(APackageName) then exit;
|
||||||
NewDependency:=TPkgDependency.Create;
|
NewDependency:=TPkgDependency.Create;
|
||||||
try
|
try
|
||||||
NewDependency.PackageName:=APackageName;
|
NewDependency.PackageName:=APackageName;
|
||||||
@ -1034,7 +1034,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
// check filename
|
// check filename
|
||||||
if (NewPkgName='') or (not IsValidIdent(NewPkgName)) then begin
|
if (NewPkgName='') or (not IsValidUnitName(NewPkgName)) then begin
|
||||||
Result:=IDEMessageDialog(lisPkgMangInvalidPackageName,
|
Result:=IDEMessageDialog(lisPkgMangInvalidPackageName,
|
||||||
Format(lisPkgMangThePackageNameIsNotAValidPackageNamePleaseChooseAn, [
|
Format(lisPkgMangThePackageNameIsNotAValidPackageNamePleaseChooseAn, [
|
||||||
'"', NewPkgName, '"', #13]),
|
'"', NewPkgName, '"', #13]),
|
||||||
@ -1401,7 +1401,7 @@ begin
|
|||||||
StaticPackage:=PRegisteredPackage(StaticPackages[i]);
|
StaticPackage:=PRegisteredPackage(StaticPackages[i]);
|
||||||
|
|
||||||
// check package name
|
// check package name
|
||||||
if (StaticPackage^.Name='') or (not IsValidIdent(StaticPackage^.Name))
|
if (StaticPackage^.Name='') or (not IsValidUnitName(StaticPackage^.Name))
|
||||||
then begin
|
then begin
|
||||||
DebugLn('TPkgManager.LoadStaticCustomPackages Invalid Package Name: "',
|
DebugLn('TPkgManager.LoadStaticCustomPackages Invalid Package Name: "',
|
||||||
BinaryStrToText(StaticPackage^.Name),'"');
|
BinaryStrToText(StaticPackage^.Name),'"');
|
||||||
@ -1757,7 +1757,7 @@ var
|
|||||||
if LangEnd<>length(Filename)-2 then exit;
|
if LangEnd<>length(Filename)-2 then exit;
|
||||||
AUnitName:=copy(Filename,1,UnitNameEnd-1);
|
AUnitName:=copy(Filename,1,UnitNameEnd-1);
|
||||||
Language:=copy(Filename,UnitNameEnd+1,LangEnd-UnitNameEnd-1);
|
Language:=copy(Filename,UnitNameEnd+1,LangEnd-UnitNameEnd-1);
|
||||||
Result:=IsValidIdent(AUnitName) and (Language<>'');
|
Result:=IsValidUnitName(AUnitName) and (Language<>'');
|
||||||
//DebugLn(['GetPOFilenameParts AUnitName=',AUnitName,' Language=',Language,' Result=',Result]);
|
//DebugLn(['GetPOFilenameParts AUnitName=',AUnitName,' Language=',Language,' Result=',Result]);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -1827,7 +1827,7 @@ var
|
|||||||
ConflictPkg: TLazPackage;
|
ConflictPkg: TLazPackage;
|
||||||
begin
|
begin
|
||||||
// check Package Name
|
// check Package Name
|
||||||
if (APackage.Name='') or (not IsValidIdent(APackage.Name)) then begin
|
if (APackage.Name='') or (not IsValidUnitName(APackage.Name)) then begin
|
||||||
Result:=IDEMessageDialog(lisPkgMangInvalidPackageName2,
|
Result:=IDEMessageDialog(lisPkgMangInvalidPackageName2,
|
||||||
Format(lisPkgMangThePackageNameOfTheFileIsInvalid, ['"', APackage.Name,
|
Format(lisPkgMangThePackageNameOfTheFileIsInvalid, ['"', APackage.Name,
|
||||||
'"', #13, '"', APackage.Filename, '"']),
|
'"', #13, '"', APackage.Filename, '"']),
|
||||||
@ -1985,7 +1985,7 @@ begin
|
|||||||
RequiredPackages:=SplitString(Packages,';');
|
RequiredPackages:=SplitString(Packages,';');
|
||||||
for i:=0 to RequiredPackages.Count-1 do begin
|
for i:=0 to RequiredPackages.Count-1 do begin
|
||||||
PkgName:=Trim(RequiredPackages[i]);
|
PkgName:=Trim(RequiredPackages[i]);
|
||||||
if (PkgName='') or (not IsValidIdent(PkgName)) then continue;
|
if (PkgName='') or (not IsValidUnitName(PkgName)) then continue;
|
||||||
APackage:=PackageGraph.FindPackageWithName(PkgName,nil);
|
APackage:=PackageGraph.FindPackageWithName(PkgName,nil);
|
||||||
if APackage=nil then begin
|
if APackage=nil then begin
|
||||||
DebugLn(['TPkgManager.AddProjectDependencies package not found: ',PkgName]);
|
DebugLn(['TPkgManager.AddProjectDependencies package not found: ',PkgName]);
|
||||||
@ -2117,7 +2117,7 @@ var
|
|||||||
LoadResult: TLoadPackageResult;
|
LoadResult: TLoadPackageResult;
|
||||||
begin
|
begin
|
||||||
Result:=mrCancel;
|
Result:=mrCancel;
|
||||||
if (APackageName='') or not IsValidIdent(APackageName) then exit;
|
if (APackageName='') or not IsValidUnitName(APackageName) then exit;
|
||||||
NewDependency:=TPkgDependency.Create;
|
NewDependency:=TPkgDependency.Create;
|
||||||
try
|
try
|
||||||
NewDependency.PackageName:=APackageName;
|
NewDependency.PackageName:=APackageName;
|
||||||
@ -2170,7 +2170,7 @@ begin
|
|||||||
// check filename
|
// check filename
|
||||||
AlternativePkgName:=ExtractFileNameOnly(AFilename);
|
AlternativePkgName:=ExtractFileNameOnly(AFilename);
|
||||||
if (not (pofRevert in Flags))
|
if (not (pofRevert in Flags))
|
||||||
and ((AlternativePkgName='') or (not IsValidIdent(AlternativePkgName)))
|
and ((AlternativePkgName='') or (not IsValidUnitName(AlternativePkgName)))
|
||||||
then begin
|
then begin
|
||||||
DoQuestionDlg(lisPkgMangInvalidPackageFilename,
|
DoQuestionDlg(lisPkgMangInvalidPackageFilename,
|
||||||
Format(lisPkgMangThePackageFileNameInIsNotAValidLazarusPackageName, ['"',
|
Format(lisPkgMangThePackageFileNameInIsNotAValidLazarusPackageName, ['"',
|
||||||
|
@ -114,7 +114,7 @@ begin
|
|||||||
mtError,[mbCancel],0);
|
mtError,[mbCancel],0);
|
||||||
exit;
|
exit;
|
||||||
end;
|
end;
|
||||||
if (NewUnitName='') or (not IsValidIdent(NewUnitName)) then begin
|
if (NewUnitName='') or (not IsValidUnitName(NewUnitName)) then begin
|
||||||
MessageDlg(lisPEInvalidUnitname,
|
MessageDlg(lisPEInvalidUnitname,
|
||||||
lisPVUTheUnitnameIsNotAValidPascalIdentifier,
|
lisPVUTheUnitnameIsNotAValidPascalIdentifier,
|
||||||
mtError,[mbCancel],0);
|
mtError,[mbCancel],0);
|
||||||
|
Loading…
Reference in New Issue
Block a user