Move {Byte,Wide}String::Trim{,Left,Right}() into StringTemplate<>
Move the forms which take arguments, but leave the no-arg form in
the byte/wide string files to allow for potential differences in the
default characters to be stripped.
Rename the no-arg form to StripUsual*() to avoid having to use a
`using` statement to work around the C++ idiosyncrasies of name
hiding.
Change-Id: Ib5adba3b79e394e0ad7eaf0a528526bfc55aed3e
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/116677
Reviewed-by: Thomas Sepez <tsepez@google.com>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fxcrt/bytestring.cpp b/core/fxcrt/bytestring.cpp
index 716620f..c07218a 100644
--- a/core/fxcrt/bytestring.cpp
+++ b/core/fxcrt/bytestring.cpp
@@ -354,87 +354,18 @@
return this_len < that_len ? -1 : 1;
}
-void ByteString::Trim() {
- TrimRight(kTrimChars);
+void ByteString::TrimWhitespace() {
+ TrimWhitespaceRight();
+ TrimWhitespaceLeft();
+}
+
+void ByteString::TrimWhitespaceLeft() {
TrimLeft(kTrimChars);
}
-void ByteString::Trim(char target) {
- ByteStringView targets(target);
- TrimRight(targets);
- TrimLeft(targets);
-}
-
-void ByteString::Trim(ByteStringView targets) {
- TrimRight(targets);
- TrimLeft(targets);
-}
-
-void ByteString::TrimLeft() {
- TrimLeft(kTrimChars);
-}
-
-void ByteString::TrimLeft(char target) {
- TrimLeft(ByteStringView(target));
-}
-
-void ByteString::TrimLeft(ByteStringView targets) {
- if (!m_pData || targets.IsEmpty())
- return;
-
- size_t len = GetLength();
- if (len == 0)
- return;
-
- size_t pos = 0;
- while (pos < len) {
- size_t i = 0;
- while (i < targets.GetLength() && targets[i] != m_pData->m_String[pos])
- i++;
- if (i == targets.GetLength())
- break;
- pos++;
- }
- if (pos) {
- ReallocBeforeWrite(len);
- size_t nDataLength = len - pos;
- FXSYS_memmove(m_pData->m_String, m_pData->m_String + pos,
- (nDataLength + 1) * sizeof(char));
- m_pData->m_nDataLength = nDataLength;
- }
-}
-
-void ByteString::TrimRight() {
+void ByteString::TrimWhitespaceRight() {
TrimRight(kTrimChars);
}
-
-void ByteString::TrimRight(char target) {
- TrimRight(ByteStringView(target));
-}
-
-void ByteString::TrimRight(ByteStringView targets) {
- if (!m_pData || targets.IsEmpty())
- return;
-
- size_t pos = GetLength();
- if (pos == 0)
- return;
-
- while (pos) {
- size_t i = 0;
- while (i < targets.GetLength() && targets[i] != m_pData->m_String[pos - 1])
- i++;
- if (i == targets.GetLength())
- break;
- pos--;
- }
- if (pos < m_pData->m_nDataLength) {
- ReallocBeforeWrite(m_pData->m_nDataLength);
- m_pData->m_String[pos] = 0;
- m_pData->m_nDataLength = pos;
- }
-}
-
std::ostream& operator<<(std::ostream& os, const ByteString& str) {
return os.write(str.c_str(), str.GetLength());
}
diff --git a/core/fxcrt/bytestring.h b/core/fxcrt/bytestring.h
index d6867be..027d1d0 100644
--- a/core/fxcrt/bytestring.h
+++ b/core/fxcrt/bytestring.h
@@ -108,17 +108,10 @@
void MakeLower();
void MakeUpper();
- void Trim();
- void Trim(char target);
- void Trim(ByteStringView targets);
-
- void TrimLeft();
- void TrimLeft(char target);
- void TrimLeft(ByteStringView targets);
-
- void TrimRight();
- void TrimRight(char target);
- void TrimRight(ByteStringView targets);
+ // Remove a canonical set of characters from the string.
+ void TrimWhitespace();
+ void TrimWhitespaceRight();
+ void TrimWhitespaceLeft();
uint32_t GetID() const { return AsStringView().GetID(); }
diff --git a/core/fxcrt/bytestring_unittest.cpp b/core/fxcrt/bytestring_unittest.cpp
index 7b086f0..b7bfd4e 100644
--- a/core/fxcrt/bytestring_unittest.cpp
+++ b/core/fxcrt/bytestring_unittest.cpp
@@ -833,7 +833,7 @@
TEST(ByteString, Trim) {
ByteString fred(" FRED ");
- fred.Trim();
+ fred.TrimWhitespace();
EXPECT_EQ("FRED", fred);
fred.Trim('E');
EXPECT_EQ("FRED", fred);
@@ -847,7 +847,7 @@
EXPECT_EQ(" ", blank);
blank.Trim('E');
EXPECT_EQ(" ", blank);
- blank.Trim();
+ blank.TrimWhitespace();
EXPECT_EQ("", blank);
ByteString empty;
@@ -855,7 +855,7 @@
EXPECT_EQ("", empty);
empty.Trim('E');
EXPECT_EQ("", empty);
- empty.Trim();
+ empty.TrimWhitespace();
EXPECT_EQ("", empty);
ByteString abc(" ABCCBA ");
@@ -867,7 +867,7 @@
TEST(ByteString, TrimLeft) {
ByteString fred(" FRED ");
- fred.TrimLeft();
+ fred.TrimWhitespaceLeft();
EXPECT_EQ("FRED ", fred);
fred.TrimLeft('E');
EXPECT_EQ("FRED ", fred);
@@ -881,7 +881,7 @@
EXPECT_EQ(" ", blank);
blank.TrimLeft('E');
EXPECT_EQ(" ", blank);
- blank.TrimLeft();
+ blank.TrimWhitespaceLeft();
EXPECT_EQ("", blank);
ByteString empty;
@@ -889,7 +889,7 @@
EXPECT_EQ("", empty);
empty.TrimLeft('E');
EXPECT_EQ("", empty);
- empty.TrimLeft();
+ empty.TrimWhitespaceLeft();
EXPECT_EQ("", empty);
}
@@ -898,7 +898,7 @@
// With a single reference, no copy takes place.
ByteString fred(" FRED ");
const char* old_buffer = fred.c_str();
- fred.TrimLeft();
+ fred.TrimWhitespaceLeft();
EXPECT_EQ("FRED ", fred);
EXPECT_EQ(old_buffer, fred.c_str());
}
@@ -907,7 +907,7 @@
ByteString fred(" FRED ");
ByteString other_fred = fred;
const char* old_buffer = fred.c_str();
- fred.TrimLeft();
+ fred.TrimWhitespaceLeft();
EXPECT_EQ("FRED ", fred);
EXPECT_EQ(" FRED ", other_fred);
EXPECT_NE(old_buffer, fred.c_str());
@@ -917,7 +917,7 @@
ByteString fred("FRED");
ByteString other_fred = fred;
const char* old_buffer = fred.c_str();
- fred.TrimLeft();
+ fred.TrimWhitespaceLeft();
EXPECT_EQ("FRED", fred);
EXPECT_EQ("FRED", other_fred);
EXPECT_EQ(old_buffer, fred.c_str());
@@ -926,7 +926,7 @@
TEST(ByteString, TrimRight) {
ByteString fred(" FRED ");
- fred.TrimRight();
+ fred.TrimWhitespaceRight();
EXPECT_EQ(" FRED", fred);
fred.TrimRight('E');
EXPECT_EQ(" FRED", fred);
@@ -940,7 +940,7 @@
EXPECT_EQ(" ", blank);
blank.TrimRight('E');
EXPECT_EQ(" ", blank);
- blank.TrimRight();
+ blank.TrimWhitespaceRight();
EXPECT_EQ("", blank);
ByteString empty;
@@ -948,7 +948,7 @@
EXPECT_EQ("", empty);
empty.TrimRight('E');
EXPECT_EQ("", empty);
- empty.TrimRight();
+ empty.TrimWhitespaceRight();
EXPECT_EQ("", empty);
}
@@ -957,7 +957,7 @@
// With a single reference, no copy takes place.
ByteString fred(" FRED ");
const char* old_buffer = fred.c_str();
- fred.TrimRight();
+ fred.TrimWhitespaceRight();
EXPECT_EQ(" FRED", fred);
EXPECT_EQ(old_buffer, fred.c_str());
}
@@ -966,7 +966,7 @@
ByteString fred(" FRED ");
ByteString other_fred = fred;
const char* old_buffer = fred.c_str();
- fred.TrimRight();
+ fred.TrimWhitespaceRight();
EXPECT_EQ(" FRED", fred);
EXPECT_EQ(" FRED ", other_fred);
EXPECT_NE(old_buffer, fred.c_str());
@@ -976,7 +976,7 @@
ByteString fred("FRED");
ByteString other_fred = fred;
const char* old_buffer = fred.c_str();
- fred.TrimRight();
+ fred.TrimWhitespaceRight();
EXPECT_EQ("FRED", fred);
EXPECT_EQ("FRED", other_fred);
EXPECT_EQ(old_buffer, fred.c_str());
diff --git a/core/fxcrt/string_template.cpp b/core/fxcrt/string_template.cpp
index 7d22f46..5915315 100644
--- a/core/fxcrt/string_template.cpp
+++ b/core/fxcrt/string_template.cpp
@@ -227,6 +227,92 @@
}
template <typename T>
+void StringTemplate<T>::Trim(T ch) {
+ TrimLeft(ch);
+ TrimRight(ch);
+}
+
+template <typename T>
+void StringTemplate<T>::TrimLeft(T ch) {
+ TrimLeft(StringView(ch));
+}
+
+template <typename T>
+void StringTemplate<T>::TrimRight(T ch) {
+ TrimRight(StringView(ch));
+}
+
+template <typename T>
+void StringTemplate<T>::Trim(StringView targets) {
+ TrimLeft(targets);
+ TrimRight(targets);
+}
+
+template <typename T>
+void StringTemplate<T>::TrimLeft(StringView targets) {
+ if (!m_pData || targets.IsEmpty()) {
+ return;
+ }
+
+ size_t len = GetLength();
+ if (len == 0) {
+ return;
+ }
+
+ size_t pos = 0;
+ while (pos < len) {
+ size_t i = 0;
+ while (i < targets.GetLength() &&
+ targets.CharAt(i) != m_pData->m_String[pos]) {
+ i++;
+ }
+ if (i == targets.GetLength()) {
+ break;
+ }
+ pos++;
+ }
+ if (!pos) {
+ return;
+ }
+
+ ReallocBeforeWrite(len);
+ size_t nDataLength = len - pos;
+ // Move the terminating NUL as well.
+ fxcrt::spanmove(m_pData->capacity_span(),
+ m_pData->capacity_span().subspan(pos, nDataLength + 1));
+ m_pData->m_nDataLength = nDataLength;
+}
+
+template <typename T>
+void StringTemplate<T>::TrimRight(StringView targets) {
+ if (!m_pData || targets.IsEmpty()) {
+ return;
+ }
+
+ size_t pos = GetLength();
+ if (pos == 0) {
+ return;
+ }
+
+ while (pos) {
+ size_t i = 0;
+ while (i < targets.GetLength() &&
+ targets.CharAt(i) != m_pData->m_String[pos - 1]) {
+ i++;
+ }
+ if (i == targets.GetLength()) {
+ break;
+ }
+ pos--;
+ }
+ if (pos < m_pData->m_nDataLength) {
+ ReallocBeforeWrite(m_pData->m_nDataLength);
+ m_pData->m_String[pos] = 0;
+ m_pData->m_nDataLength = pos;
+ }
+}
+
+template <typename T>
void StringTemplate<T>::ReallocBeforeWrite(size_t nNewLength) {
if (m_pData && m_pData->CanOperateInPlace(nNewLength)) {
return;
diff --git a/core/fxcrt/string_template.h b/core/fxcrt/string_template.h
index 0e1af03..1923c87 100644
--- a/core/fxcrt/string_template.h
+++ b/core/fxcrt/string_template.h
@@ -134,6 +134,16 @@
void Reserve(size_t len) { GetBuffer(len); }
+ // Remove character `ch` from both/front/back of string.
+ void Trim(T ch);
+ void TrimLeft(T ch);
+ void TrimRight(T ch);
+
+ // Remove all characters in `targets` from both/front/back of string.
+ void Trim(StringView targets);
+ void TrimLeft(StringView targets);
+ void TrimRight(StringView targets);
+
protected:
using StringData = StringDataTemplate<T>;
diff --git a/core/fxcrt/widestring.cpp b/core/fxcrt/widestring.cpp
index dfbae22..8af383b 100644
--- a/core/fxcrt/widestring.cpp
+++ b/core/fxcrt/widestring.cpp
@@ -772,84 +772,18 @@
return (!str || str[0] == 0) ? 0 : -1;
}
-void WideString::Trim() {
- TrimRight(kWideTrimChars);
+void WideString::TrimWhitespace() {
+ TrimWhitespaceRight();
+ TrimWhitespaceLeft();
+}
+
+void WideString::TrimWhitespaceLeft() {
TrimLeft(kWideTrimChars);
}
-void WideString::Trim(wchar_t target) {
- wchar_t str[2] = {target, 0};
- TrimRight(str);
- TrimLeft(str);
-}
-
-void WideString::Trim(WideStringView targets) {
- TrimRight(targets);
- TrimLeft(targets);
-}
-
-void WideString::TrimLeft() {
- TrimLeft(kWideTrimChars);
-}
-
-void WideString::TrimLeft(wchar_t target) {
- wchar_t str[2] = {target, 0};
- TrimLeft(str);
-}
-
-void WideString::TrimLeft(WideStringView targets) {
- if (!m_pData || targets.IsEmpty())
- return;
-
- size_t len = GetLength();
- if (len == 0)
- return;
-
- size_t pos = 0;
- while (pos < len) {
- size_t i = 0;
- while (i < targets.GetLength() &&
- targets.CharAt(i) != m_pData->m_String[pos]) {
- i++;
- }
- if (i == targets.GetLength())
- break;
- pos++;
- }
- if (!pos)
- return;
-
- ReallocBeforeWrite(len);
- size_t nDataLength = len - pos;
- memmove(m_pData->m_String, m_pData->m_String + pos,
- (nDataLength + 1) * sizeof(wchar_t));
- m_pData->m_nDataLength = nDataLength;
-}
-
-void WideString::TrimRight() {
+void WideString::TrimWhitespaceRight() {
TrimRight(kWideTrimChars);
}
-
-void WideString::TrimRight(wchar_t target) {
- wchar_t str[2] = {target, 0};
- TrimRight(str);
-}
-
-void WideString::TrimRight(WideStringView targets) {
- if (IsEmpty() || targets.IsEmpty())
- return;
-
- size_t pos = GetLength();
- while (pos && targets.Contains(m_pData->m_String[pos - 1]))
- pos--;
-
- if (pos < m_pData->m_nDataLength) {
- ReallocBeforeWrite(m_pData->m_nDataLength);
- m_pData->m_String[pos] = 0;
- m_pData->m_nDataLength = pos;
- }
-}
-
int WideString::GetInteger() const {
return m_pData ? FXSYS_wtoi(m_pData->m_String) : 0;
}
diff --git a/core/fxcrt/widestring.h b/core/fxcrt/widestring.h
index 22a821f..9a2e231 100644
--- a/core/fxcrt/widestring.h
+++ b/core/fxcrt/widestring.h
@@ -117,17 +117,10 @@
void MakeLower();
void MakeUpper();
- void Trim();
- void Trim(wchar_t target);
- void Trim(WideStringView targets);
-
- void TrimLeft();
- void TrimLeft(wchar_t target);
- void TrimLeft(WideStringView targets);
-
- void TrimRight();
- void TrimRight(wchar_t target);
- void TrimRight(WideStringView targets);
+ // Trim a canonical set of characters from the widestring.
+ void TrimWhitespace();
+ void TrimWhitespaceLeft();
+ void TrimWhitespaceRight();
int GetInteger() const;
diff --git a/core/fxcrt/widestring_unittest.cpp b/core/fxcrt/widestring_unittest.cpp
index f077516..8749eae 100644
--- a/core/fxcrt/widestring_unittest.cpp
+++ b/core/fxcrt/widestring_unittest.cpp
@@ -824,7 +824,7 @@
TEST(WideString, Trim) {
WideString fred(L" FRED ");
- fred.Trim();
+ fred.TrimWhitespace();
EXPECT_EQ(L"FRED", fred);
fred.Trim(L'E');
EXPECT_EQ(L"FRED", fred);
@@ -838,7 +838,7 @@
EXPECT_EQ(L" ", blank);
blank.Trim(L'E');
EXPECT_EQ(L" ", blank);
- blank.Trim();
+ blank.TrimWhitespace();
EXPECT_EQ(L"", blank);
WideString empty;
@@ -846,7 +846,7 @@
EXPECT_EQ(L"", empty);
empty.Trim(L'E');
EXPECT_EQ(L"", empty);
- empty.Trim();
+ empty.TrimWhitespace();
EXPECT_EQ(L"", empty);
WideString abc(L" ABCCBA ");
@@ -858,7 +858,7 @@
TEST(WideString, TrimLeft) {
WideString fred(L" FRED ");
- fred.TrimLeft();
+ fred.TrimWhitespaceLeft();
EXPECT_EQ(L"FRED ", fred);
fred.TrimLeft(L'E');
EXPECT_EQ(L"FRED ", fred);
@@ -872,7 +872,7 @@
EXPECT_EQ(L" ", blank);
blank.TrimLeft(L'E');
EXPECT_EQ(L" ", blank);
- blank.TrimLeft();
+ blank.TrimWhitespaceLeft();
EXPECT_EQ(L"", blank);
WideString empty;
@@ -880,7 +880,7 @@
EXPECT_EQ(L"", empty);
empty.TrimLeft(L'E');
EXPECT_EQ(L"", empty);
- empty.TrimLeft();
+ empty.TrimWhitespaceLeft();
EXPECT_EQ(L"", empty);
}
@@ -889,7 +889,7 @@
// With a single reference, no copy takes place.
WideString fred(L" FRED ");
const wchar_t* old_buffer = fred.c_str();
- fred.TrimLeft();
+ fred.TrimWhitespaceLeft();
EXPECT_EQ(L"FRED ", fred);
EXPECT_EQ(old_buffer, fred.c_str());
}
@@ -898,7 +898,7 @@
WideString fred(L" FRED ");
WideString other_fred = fred;
const wchar_t* old_buffer = fred.c_str();
- fred.TrimLeft();
+ fred.TrimWhitespaceLeft();
EXPECT_EQ(L"FRED ", fred);
EXPECT_EQ(L" FRED ", other_fred);
EXPECT_NE(old_buffer, fred.c_str());
@@ -908,7 +908,7 @@
WideString fred(L"FRED");
WideString other_fred = fred;
const wchar_t* old_buffer = fred.c_str();
- fred.TrimLeft();
+ fred.TrimWhitespaceLeft();
EXPECT_EQ(L"FRED", fred);
EXPECT_EQ(L"FRED", other_fred);
EXPECT_EQ(old_buffer, fred.c_str());
@@ -917,7 +917,7 @@
TEST(WideString, TrimRight) {
WideString fred(L" FRED ");
- fred.TrimRight();
+ fred.TrimWhitespaceRight();
EXPECT_EQ(L" FRED", fred);
fred.TrimRight(L'E');
EXPECT_EQ(L" FRED", fred);
@@ -931,7 +931,7 @@
EXPECT_EQ(L" ", blank);
blank.TrimRight(L'E');
EXPECT_EQ(L" ", blank);
- blank.TrimRight();
+ blank.TrimWhitespaceRight();
EXPECT_EQ(L"", blank);
WideString empty;
@@ -939,7 +939,7 @@
EXPECT_EQ(L"", empty);
empty.TrimRight(L'E');
EXPECT_EQ(L"", empty);
- empty.TrimRight();
+ empty.TrimWhitespaceRight();
EXPECT_EQ(L"", empty);
}
@@ -948,7 +948,7 @@
// With a single reference, no copy takes place.
WideString fred(L" FRED ");
const wchar_t* old_buffer = fred.c_str();
- fred.TrimRight();
+ fred.TrimWhitespaceRight();
EXPECT_EQ(L" FRED", fred);
EXPECT_EQ(old_buffer, fred.c_str());
}
@@ -957,7 +957,7 @@
WideString fred(L" FRED ");
WideString other_fred = fred;
const wchar_t* old_buffer = fred.c_str();
- fred.TrimRight();
+ fred.TrimWhitespaceRight();
EXPECT_EQ(L" FRED", fred);
EXPECT_EQ(L" FRED ", other_fred);
EXPECT_NE(old_buffer, fred.c_str());
@@ -967,7 +967,7 @@
WideString fred(L"FRED");
WideString other_fred = fred;
const wchar_t* old_buffer = fred.c_str();
- fred.TrimRight();
+ fred.TrimWhitespaceRight();
EXPECT_EQ(L"FRED", fred);
EXPECT_EQ(L"FRED", other_fred);
EXPECT_EQ(old_buffer, fred.c_str());
diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp b/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp
index 8800a0c..f6c5cab 100644
--- a/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp
+++ b/fpdfsdk/fpdfxfa/cpdfxfa_docenvironment.cpp
@@ -659,7 +659,7 @@
WideString& csSubject,
WideString& csMsg) {
WideString srcURL = csURL;
- srcURL.TrimLeft();
+ srcURL.TrimWhitespaceLeft();
if (srcURL.Left(7).CompareNoCase(L"mailto:") != 0)
return false;
@@ -677,16 +677,16 @@
tmp = srcURL.Left(pos.value());
tmp = tmp.Right(tmp.GetLength() - 7);
}
- tmp.Trim();
+ tmp.TrimWhitespace();
csToAddress = std::move(tmp);
}
srcURL = srcURL.Right(srcURL.GetLength() - (pos.value() + 1));
while (!srcURL.IsEmpty()) {
- srcURL.Trim();
+ srcURL.TrimWhitespace();
pos = srcURL.Find(L'&');
WideString tmp = (!pos.has_value()) ? srcURL : srcURL.Left(pos.value());
- tmp.Trim();
+ tmp.TrimWhitespace();
if (tmp.GetLength() >= 3 && tmp.Left(3).CompareNoCase(L"cc=") == 0) {
tmp = tmp.Right(tmp.GetLength() - 3);
if (!csCCAddress.IsEmpty())
@@ -920,7 +920,7 @@
switch (submit->GetSubmitFormat()) {
case XFA_AttributeValue::Xdp: {
WideString csContent = submit->GetSubmitXDPContent();
- csContent.Trim();
+ csContent.TrimWhitespace();
WideString space = WideString::FromDefANSI(" ");
csContent = space + csContent + space;
diff --git a/fxjs/cfx_globaldata.cpp b/fxjs/cfx_globaldata.cpp
index b07974e..99bb689 100644
--- a/fxjs/cfx_globaldata.cpp
+++ b/fxjs/cfx_globaldata.cpp
@@ -34,7 +34,7 @@
// Returns true if non-empty, setting sPropName
bool TrimPropName(ByteString* sPropName) {
- sPropName->Trim();
+ sPropName->TrimWhitespace();
return sPropName->GetLength() != 0;
}
diff --git a/fxjs/cjs_document.cpp b/fxjs/cjs_document.cpp
index 93591b0..f5fab08 100644
--- a/fxjs/cjs_document.cpp
+++ b/fxjs/cjs_document.cpp
@@ -1246,7 +1246,7 @@
}
if (bStrip)
- swRet.Trim();
+ swRet.TrimWhitespace();
return CJS_Result::Success(pRuntime->NewString(swRet.AsStringView()));
}
diff --git a/fxjs/cjs_publicmethods.cpp b/fxjs/cjs_publicmethods.cpp
index fb8c8af..6576821 100644
--- a/fxjs/cjs_publicmethods.cpp
+++ b/fxjs/cjs_publicmethods.cpp
@@ -1316,8 +1316,8 @@
case FormFieldType::kTextField:
case FormFieldType::kComboBox: {
WideString trimmed = pFormField->GetValue();
- trimmed.TrimRight();
- trimmed.TrimLeft();
+ trimmed.TrimWhitespaceRight();
+ trimmed.TrimWhitespaceLeft();
dTemp = StringToDouble(trimmed.AsStringView());
break;
}
@@ -1331,8 +1331,8 @@
continue;
WideString trimmed = pFormCtrl->GetExportValue();
- trimmed.TrimRight();
- trimmed.TrimLeft();
+ trimmed.TrimWhitespaceRight();
+ trimmed.TrimWhitespaceLeft();
dTemp = StringToFloat(trimmed.AsStringView());
break;
}
@@ -1340,8 +1340,8 @@
case FormFieldType::kListBox:
if (pFormField->CountSelectedItems() <= 1) {
WideString trimmed = pFormField->GetValue();
- trimmed.TrimRight();
- trimmed.TrimLeft();
+ trimmed.TrimWhitespaceRight();
+ trimmed.TrimWhitespaceLeft();
dTemp = StringToFloat(trimmed.AsStringView());
}
break;
diff --git a/fxjs/xfa/cfxjse_formcalc_context.cpp b/fxjs/xfa/cfxjse_formcalc_context.cpp
index 6dc2975..39bd24a 100644
--- a/fxjs/xfa/cfxjse_formcalc_context.cpp
+++ b/fxjs/xfa/cfxjse_formcalc_context.cpp
@@ -2892,7 +2892,7 @@
ByteString bsValue =
fxv8::ReentrantToByteStringHelper(info.GetIsolate(), argOne);
- bsValue.TrimLeft();
+ bsValue.TrimWhitespaceLeft();
info.GetReturnValue().Set(static_cast<int>(!bsValue.IsEmpty()));
}
@@ -3617,7 +3617,7 @@
}
ByteString bsSource = ValueToUTF8String(info.GetIsolate(), argOne);
- bsSource.TrimLeft();
+ bsSource.TrimWhitespaceLeft();
info.GetReturnValue().Set(
fxv8::NewStringHelper(info.GetIsolate(), bsSource.AsStringView()));
}
@@ -3836,7 +3836,7 @@
}
ByteString bsSource = ValueToUTF8String(info.GetIsolate(), argOne);
- bsSource.TrimRight();
+ bsSource.TrimWhitespaceRight();
info.GetReturnValue().Set(
fxv8::NewStringHelper(info.GetIsolate(), bsSource.AsStringView()));
}
diff --git a/fxjs/xfa/cfxjse_resolveprocessor.cpp b/fxjs/xfa/cfxjse_resolveprocessor.cpp
index fad97d3..0535845 100644
--- a/fxjs/xfa/cfxjse_resolveprocessor.cpp
+++ b/fxjs/xfa/cfxjse_resolveprocessor.cpp
@@ -573,8 +573,8 @@
}
wsName.ReleaseBuffer(nNameCount);
wsCondition.ReleaseBuffer(nConditionCount);
- wsName.Trim();
- wsCondition.Trim();
+ wsName.TrimWhitespace();
+ wsCondition.TrimWhitespace();
rnd.m_uHashName =
static_cast<XFA_HashCode>(FX_HashCode_GetW(wsName.AsStringView()));
return nStart;
@@ -650,7 +650,7 @@
}
size_t iFoundCount = pRnd->m_Result.objects.size();
- wsCondition.Trim();
+ wsCondition.TrimWhitespace();
const size_t nLen = wsCondition.GetLength();
if (nLen == 0) {
diff --git a/fxjs/xfa/cjx_hostpseudomodel.cpp b/fxjs/xfa/cjx_hostpseudomodel.cpp
index 656e997..21843b7 100644
--- a/fxjs/xfa/cjx_hostpseudomodel.cpp
+++ b/fxjs/xfa/cjx_hostpseudomodel.cpp
@@ -42,7 +42,7 @@
}
}
wsFilter.ReleaseBuffer(nCount);
- wsFilter.Trim();
+ wsFilter.TrimWhitespace();
return nStart;
}
diff --git a/xfa/fxfa/layout/cxfa_viewlayoutprocessor.cpp b/xfa/fxfa/layout/cxfa_viewlayoutprocessor.cpp
index e3c30ed..f61924f 100644
--- a/xfa/fxfa/layout/cxfa_viewlayoutprocessor.cpp
+++ b/xfa/fxfa/layout/cxfa_viewlayoutprocessor.cpp
@@ -171,7 +171,7 @@
if (pTargetAll->IsEmpty())
return nullptr;
- pTargetAll->Trim();
+ pTargetAll->TrimWhitespace();
size_t iSplitIndex = 0;
bool bTargetAllFind = true;
while (true) {