From efe266598640d720a8073b4b3940cc7cd121a8fd Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Sun, 3 Nov 2013 15:39:02 +0100 Subject: [PATCH] packagefs: Add automatic SYS:PACKAGE_FILE attribute * Rename SYS:PACKAGE attribute to SYS:PACKAGE_FILE. * Re-add SYS:PACKAGE attribute. It contains the versioned name of the package. --- .../packagefs/nodes/AutoPackageAttributes.cpp | 8 ++++++++ .../file_systems/packagefs/nodes/AutoPackageAttributes.h | 1 + .../file_systems/packagefs/util/StringConstantsPrivate.h | 2 +- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/add-ons/kernel/file_systems/packagefs/nodes/AutoPackageAttributes.cpp b/src/add-ons/kernel/file_systems/packagefs/nodes/AutoPackageAttributes.cpp index 37fdad00bf..432e261869 100644 --- a/src/add-ons/kernel/file_systems/packagefs/nodes/AutoPackageAttributes.cpp +++ b/src/add-ons/kernel/file_systems/packagefs/nodes/AutoPackageAttributes.cpp @@ -105,6 +105,14 @@ AutoPackageAttributes::GetAttributeValue(const Package* package, { switch (attribute) { case AUTO_PACKAGE_ATTRIBUTE_PACKAGE: + { + const char* value = package->VersionedName(); + _size = strlen(value) + 1; + _type = B_STRING_TYPE; + return value; + } + + case AUTO_PACKAGE_ATTRIBUTE_PACKAGE_FILE: { const char* value = package->FileName(); _size = strlen(value) + 1; diff --git a/src/add-ons/kernel/file_systems/packagefs/nodes/AutoPackageAttributes.h b/src/add-ons/kernel/file_systems/packagefs/nodes/AutoPackageAttributes.h index b1a75bf8b4..583c674a3a 100644 --- a/src/add-ons/kernel/file_systems/packagefs/nodes/AutoPackageAttributes.h +++ b/src/add-ons/kernel/file_systems/packagefs/nodes/AutoPackageAttributes.h @@ -18,6 +18,7 @@ class Package; enum AutoPackageAttribute { AUTO_PACKAGE_ATTRIBUTE_ENUM_FIRST, AUTO_PACKAGE_ATTRIBUTE_PACKAGE = AUTO_PACKAGE_ATTRIBUTE_ENUM_FIRST, + AUTO_PACKAGE_ATTRIBUTE_PACKAGE_FILE, AUTO_PACKAGE_ATTRIBUTE_ENUM_COUNT }; diff --git a/src/add-ons/kernel/file_systems/packagefs/util/StringConstantsPrivate.h b/src/add-ons/kernel/file_systems/packagefs/util/StringConstantsPrivate.h index a50b21c682..89195db080 100644 --- a/src/add-ons/kernel/file_systems/packagefs/util/StringConstantsPrivate.h +++ b/src/add-ons/kernel/file_systems/packagefs/util/StringConstantsPrivate.h @@ -15,4 +15,4 @@ DEFINE_STRING_CONSTANT(kSettingsLinkName, ".settings") DEFINE_STRING_ARRAY_CONSTANT(kAutoPackageAttributeNames, AUTO_PACKAGE_ATTRIBUTE_ENUM_COUNT, - "SYS:PACKAGE") + "SYS:PACKAGE", "SYS:PACKAGE_FILE")