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