diff --git a/headers/private/package/hpkg/WriterImplBase.h b/headers/private/package/hpkg/WriterImplBase.h index 58c43d40e7..84a9a0e3b3 100644 --- a/headers/private/package/hpkg/WriterImplBase.h +++ b/headers/private/package/hpkg/WriterImplBase.h @@ -169,6 +169,9 @@ private: inline PackageAttribute* _AddStringAttributeIfNotEmpty( BHPKGAttributeID id, const BString& value, DoublyLinkedList& list); + void _AddStringAttributeList(BHPKGAttributeID id, + const BStringList& value, + DoublyLinkedList& list); void _WritePackageAttributes( const PackageAttributeList& attributes); diff --git a/src/kits/package/hpkg/WriterImplBase.cpp b/src/kits/package/hpkg/WriterImplBase.cpp index ef164aa9a1..d0ac820c35 100644 --- a/src/kits/package/hpkg/WriterImplBase.cpp +++ b/src/kits/package/hpkg/WriterImplBase.cpp @@ -321,32 +321,20 @@ WriterImplBase::RegisterPackageInfo(PackageAttributeList& attributeList, RegisterPackageVersion(attributeList, packageInfo.Version()); // copyright list - const BStringList& copyrightList = packageInfo.CopyrightList(); - for (int i = 0; i < copyrightList.CountStrings(); ++i) { - _AddStringAttribute(B_HPKG_ATTRIBUTE_ID_PACKAGE_COPYRIGHT, - copyrightList.StringAt(i), attributeList); - } + _AddStringAttributeList(B_HPKG_ATTRIBUTE_ID_PACKAGE_COPYRIGHT, + packageInfo.CopyrightList(), attributeList); // license list - const BStringList& licenseList = packageInfo.LicenseList(); - for (int i = 0; i < licenseList.CountStrings(); ++i) { - _AddStringAttribute(B_HPKG_ATTRIBUTE_ID_PACKAGE_LICENSE, - licenseList.StringAt(i), attributeList); - } + _AddStringAttributeList(B_HPKG_ATTRIBUTE_ID_PACKAGE_LICENSE, + packageInfo.LicenseList(), attributeList); // URL list - const BStringList& urlList = packageInfo.URLList(); - for (int i = 0; i < urlList.CountStrings(); ++i) { - _AddStringAttribute(B_HPKG_ATTRIBUTE_ID_PACKAGE_URL, - urlList.StringAt(i), attributeList); - } + _AddStringAttributeList(B_HPKG_ATTRIBUTE_ID_PACKAGE_URL, + packageInfo.URLList(), attributeList); // source URL list - const BStringList& sourceURLList = packageInfo.SourceURLList(); - for (int i = 0; i < sourceURLList.CountStrings(); ++i) { - _AddStringAttribute(B_HPKG_ATTRIBUTE_ID_PACKAGE_SOURCE_URL, - sourceURLList.StringAt(i), attributeList); - } + _AddStringAttributeList(B_HPKG_ATTRIBUTE_ID_PACKAGE_SOURCE_URL, + packageInfo.SourceURLList(), attributeList); // provides list const BObjectList& providesList @@ -388,11 +376,8 @@ WriterImplBase::RegisterPackageInfo(PackageAttributeList& attributeList, packageInfo.FreshensList(), B_HPKG_ATTRIBUTE_ID_PACKAGE_FRESHENS); // replaces list - const BStringList& replacesList = packageInfo.ReplacesList(); - for (int i = 0; i < replacesList.CountStrings(); ++i) { - _AddStringAttribute(B_HPKG_ATTRIBUTE_ID_PACKAGE_REPLACES, - replacesList.StringAt(i), attributeList); - } + _AddStringAttributeList(B_HPKG_ATTRIBUTE_ID_PACKAGE_REPLACES, + packageInfo.ReplacesList(), attributeList); // global settings file info list const BObjectList& globalSettingsFileInfos @@ -451,18 +436,12 @@ WriterImplBase::RegisterPackageInfo(PackageAttributeList& attributeList, } // group list - const BStringList& groups = packageInfo.Groups(); - for (int32 i = 0; i < groups.CountStrings(); i++) { - _AddStringAttribute(B_HPKG_ATTRIBUTE_ID_PACKAGE_GROUP, - groups.StringAt(i), attributeList); - } + _AddStringAttributeList(B_HPKG_ATTRIBUTE_ID_PACKAGE_GROUP, + packageInfo.Groups(), attributeList); // post install script list - const BStringList& postInstallScripts = packageInfo.PostInstallScripts(); - for (int32 i = 0; i < postInstallScripts.CountStrings(); i++) { - _AddStringAttribute(B_HPKG_ATTRIBUTE_ID_PACKAGE_POST_INSTALL_SCRIPT, - postInstallScripts.StringAt(i), attributeList); - } + _AddStringAttributeList(B_HPKG_ATTRIBUTE_ID_PACKAGE_POST_INSTALL_SCRIPT, + packageInfo.PostInstallScripts(), attributeList); // checksum (optional, only exists in repositories) _AddStringAttributeIfNotEmpty(B_HPKG_ATTRIBUTE_ID_PACKAGE_CHECKSUM, @@ -697,6 +676,15 @@ WriterImplBase::_AddStringAttribute(BHPKGAttributeID id, const BString& value, } +void +WriterImplBase::_AddStringAttributeList(BHPKGAttributeID id, + const BStringList& value, DoublyLinkedList& list) +{ + for (int32 i = 0; i < value.CountStrings(); i++) + _AddStringAttribute(id, value.StringAt(i), list); +} + + void WriterImplBase::_WritePackageAttributes( const PackageAttributeList& packageAttributes)