summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/fxcrt/widestring.cpp2
-rw-r--r--core/fxcrt/widestring_unittest.cpp11
2 files changed, 12 insertions, 1 deletions
diff --git a/core/fxcrt/widestring.cpp b/core/fxcrt/widestring.cpp
index 8d47564e13..7b5bf66fd3 100644
--- a/core/fxcrt/widestring.cpp
+++ b/core/fxcrt/widestring.cpp
@@ -924,7 +924,7 @@ int WideString::Compare(const WideString& str) const {
return result;
if (this_len == that_len)
return 0;
- return this_len < that_len;
+ return this_len < that_len ? -1 : 1;
}
int WideString::CompareNoCase(const wchar_t* lpsz) const {
diff --git a/core/fxcrt/widestring_unittest.cpp b/core/fxcrt/widestring_unittest.cpp
index 2fb9e8c8b4..473d59c491 100644
--- a/core/fxcrt/widestring_unittest.cpp
+++ b/core/fxcrt/widestring_unittest.cpp
@@ -52,15 +52,18 @@ TEST(WideString, ElementAccess) {
TEST(WideString, OperatorLT) {
WideString empty;
WideString a(L"a");
+ WideString ab(L"ab");
WideString abc(L"\x0110qq"); // Comes before despite endianness.
WideString def(L"\x1001qq"); // Comes after despite endianness.
WideStringView v_empty;
WideStringView v_a(L"a");
+ WideStringView v_ab(L"ab");
WideStringView v_abc(L"\x0110qq");
WideStringView v_def(L"\x1001qq");
const wchar_t* const c_null = nullptr;
const wchar_t* const c_empty = L"";
const wchar_t* const c_a = L"a";
+ const wchar_t* const c_ab = L"ab";
const wchar_t* const c_abc = L"\x0110qq";
const wchar_t* const c_def = L"\x1001qq";
@@ -142,6 +145,14 @@ TEST(WideString, OperatorLT) {
EXPECT_FALSE(def < c_abc);
EXPECT_TRUE(abc < v_def);
EXPECT_FALSE(def < v_abc);
+
+ EXPECT_TRUE(a < ab);
+ EXPECT_TRUE(a < c_ab);
+ EXPECT_TRUE(a < v_ab);
+ EXPECT_TRUE(c_a < ab);
+ EXPECT_TRUE(c_a < v_ab);
+ EXPECT_TRUE(v_a < c_ab);
+ EXPECT_TRUE(v_a < v_ab);
}
TEST(WideString, OperatorEQ) {