From 0a9478a70707cb326b41907ea099076772fc57c9 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Mon, 11 Jul 2011 14:24:50 +0200 Subject: [PATCH] Force package names and versions to lower case --- src/kits/package/PackageInfo.cpp | 30 ++++++++++++++----- src/kits/package/PackageResolvable.cpp | 3 ++ .../package/PackageResolvableExpression.cpp | 4 +++ src/kits/package/PackageVersion.cpp | 19 +++++------- 4 files changed, 36 insertions(+), 20 deletions(-) diff --git a/src/kits/package/PackageInfo.cpp b/src/kits/package/PackageInfo.cpp index 0f3e3b22f6..024a411fd8 100644 --- a/src/kits/package/PackageInfo.cpp +++ b/src/kits/package/PackageInfo.cpp @@ -82,7 +82,8 @@ private: void _ParseList(ListElementParser& elementParser, bool allowSingleNonListElement); void _ParseStringList(BObjectList* value, - bool allowQuotedStrings = true); + bool allowQuotedStrings = true, + bool convertToLowerCase = false); void _ParseResolvableList( BObjectList* value); void _ParseResolvableExprList( @@ -449,16 +450,19 @@ BPackageInfo::Parser::_ParseList(ListElementParser& elementParser, void BPackageInfo::Parser::_ParseStringList(BObjectList* value, - bool allowQuotedStrings) + bool allowQuotedStrings, bool convertToLowerCase) { struct StringParser : public ListElementParser { BObjectList* value; bool allowQuotedStrings; + bool convertToLowerCase; - StringParser(BObjectList* value, bool allowQuotedStrings) + StringParser(BObjectList* value, bool allowQuotedStrings, + bool convertToLowerCase) : value(value), - allowQuotedStrings(allowQuotedStrings) + allowQuotedStrings(allowQuotedStrings), + convertToLowerCase(convertToLowerCase) { } @@ -475,9 +479,13 @@ BPackageInfo::Parser::_ParseStringList(BObjectList* value, throw ParseError("expected word", token.pos); } - value->AddItem(new BString(token.text)); + BString* element = new BString(token.text); + if (convertToLowerCase) + element->ToLower(); + + value->AddItem(element); } - } stringParser(value, allowQuotedStrings); + } stringParser(value, allowQuotedStrings, convertToLowerCase); _ParseList(stringParser, true); } @@ -688,8 +696,12 @@ BPackageInfo::Parser::_Parse(BPackageInfo* packageInfo) switch (attribute) { case B_PACKAGE_INFO_NAME: - _ParseStringValue(&packageInfo->fName); + { + BString name; + _ParseStringValue(&name); + packageInfo->SetName(name); break; + } case B_PACKAGE_INFO_SUMMARY: { @@ -758,7 +770,7 @@ BPackageInfo::Parser::_Parse(BPackageInfo* packageInfo) break; case B_PACKAGE_INFO_REPLACES: - _ParseStringList(&packageInfo->fReplacesList, false); + _ParseStringList(&packageInfo->fReplacesList, false, true); break; case B_PACKAGE_INFO_FLAGS: @@ -1051,6 +1063,7 @@ void BPackageInfo::SetName(const BString& name) { fName = name; + fName.ToLower(); } @@ -1298,6 +1311,7 @@ BPackageInfo::AddReplaces(const BString& replaces) if (newReplaces == NULL) return B_NO_MEMORY; + newReplaces->ToLower(); return fReplacesList.AddItem(newReplaces) ? B_OK : B_ERROR; } diff --git a/src/kits/package/PackageResolvable.cpp b/src/kits/package/PackageResolvable.cpp index 3c1c632ffe..0c70c996ff 100644 --- a/src/kits/package/PackageResolvable.cpp +++ b/src/kits/package/PackageResolvable.cpp @@ -48,6 +48,7 @@ BPackageResolvable::BPackageResolvable(const BString& name, fVersion(version), fCompatibleVersion(compatibleVersion) { + fName.ToLower(); } @@ -110,6 +111,8 @@ BPackageResolvable::SetTo(const BString& name, BPackageResolvableType type, fType = type; fVersion = version; fCompatibleVersion = compatibleVersion; + + fName.ToLower(); } diff --git a/src/kits/package/PackageResolvableExpression.cpp b/src/kits/package/PackageResolvableExpression.cpp index 3e79ca015f..430dda56cf 100644 --- a/src/kits/package/PackageResolvableExpression.cpp +++ b/src/kits/package/PackageResolvableExpression.cpp @@ -38,6 +38,7 @@ BPackageResolvableExpression::BPackageResolvableExpression( fOperator(data.op), fVersion(data.version) { + fName.ToLower(); } @@ -48,6 +49,7 @@ BPackageResolvableExpression::BPackageResolvableExpression(const BString& name, fOperator(_operator), fVersion(version) { + fName.ToLower(); } @@ -106,6 +108,8 @@ BPackageResolvableExpression::SetTo(const BString& name, fName = name; fOperator = _operator; fVersion = version; + + fName.ToLower(); } diff --git a/src/kits/package/PackageVersion.cpp b/src/kits/package/PackageVersion.cpp index 2c1e53c2d6..a4d1dd23dd 100644 --- a/src/kits/package/PackageVersion.cpp +++ b/src/kits/package/PackageVersion.cpp @@ -25,25 +25,15 @@ BPackageVersion::BPackageVersion() BPackageVersion::BPackageVersion(const BPackageVersionData& data) - : - fMajor(data.major), - fMinor(data.minor), - fMicro(data.micro), - fPreRelease(data.preRelease), - fRelease(data.release) { + SetTo(data.major, data.minor, data.micro, data.preRelease, data.release); } BPackageVersion::BPackageVersion(const BString& major, const BString& minor, const BString& micro, const BString& preRelease, uint8 release) - : - fMajor(major), - fMinor(minor), - fMicro(micro), - fPreRelease(preRelease), - fRelease(release) { + SetTo(major, minor, micro, preRelease, release); } @@ -153,6 +143,11 @@ BPackageVersion::SetTo(const BString& major, const BString& minor, fMicro = micro; fPreRelease = preRelease; fRelease = release; + + fMajor.ToLower(); + fMinor.ToLower(); + fMicro.ToLower(); + fPreRelease.ToLower(); }