Moves from using dStrCmp to the new String::compare static functions. Keeps things cleaner, consistent, and works with intellisense.

This commit is contained in:
Lukas Aldershaab 2020-10-03 14:37:55 +02:00
parent 76c5e30869
commit c999baf7ed
68 changed files with 168 additions and 144 deletions

View file

@ -439,7 +439,7 @@ namespace KeyCmp
template<>
inline bool equals<>( String::StringData* const& d1, String::StringData* const& d2 )
{
return ( dStrcmp( d1->utf8(), d2->utf8() ) == 0 );
return ( String::compare( d1->utf8(), d2->utf8() ) == 0 );
}
}
@ -1029,6 +1029,28 @@ S32 String::compare(const String &str, SizeType len, U32 mode) const
return compare( str.c_str(), len, mode );
}
S32 String::compare(const char *str1, const char *str2)
{
return strcmp(str1, str2);
}
S32 String::compare(const UTF16 *str1, const UTF16 *str2)
{
#if defined(TORQUE_OS_WIN) || defined(TORQUE_OS_XBOX) || defined(TORQUE_OS_XENON)
return wcscmp(reinterpret_cast<const wchar_t *>(str1), reinterpret_cast<const wchar_t *>(str2));
#else
S32 ret;
const UTF16 *a, *b;
a = str1;
b = str2;
while (((ret = *a - *b) == 0) && *a && *b)
a++, b++;
return ret;
#endif
}
bool String::equal(const String &str, U32 mode) const
{
if( !mode )

View file

@ -103,6 +103,8 @@ public:
*/
S32 compare(const StringChar *str, SizeType len = 0, U32 mode = Case|Left) const;
S32 compare(const String &str, SizeType len = 0, U32 mode = Case|Left) const; ///< @see compare(const StringChar *, SizeType, U32) const
static S32 compare(const char *str1, const char *str2);
static S32 compare(const UTF16 *str1, const UTF16 *str2);
/**
Compare two strings for equality.

View file

@ -142,7 +142,7 @@ namespace KeyCmp
template<>
inline bool equals<>( const char * const &keya, const char * const &keyb )
{
return ( dStrcmp( keya, keyb ) == 0 );
return ( String::compare( keya, keyb ) == 0 );
}
};

View file

@ -103,8 +103,8 @@ TEST_FIX(Str, Test1)
EXPECT_TRUE( !data.mData || dMemcmp( str.utf16(), data.mUTF16, str.length() * sizeof( UTF16 ) ) == 0 );
EXPECT_TRUE( !data.mData || dMemcmp( str16.utf8(), data.mData, str.length() ) == 0 );
EXPECT_TRUE( !data.mData || dStrcmp( str.utf8(), data.mData ) == 0 );
EXPECT_TRUE( !data.mData || dStrcmp( str.utf16(), data.mUTF16 ) == 0 );
EXPECT_TRUE( !data.mData || String::compare( str.utf8(), data.mData ) == 0 );
EXPECT_TRUE( !data.mData || String::compare( str.utf16(), data.mUTF16 ) == 0 );
}
}