diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2021-04-19 12:06:34 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2021-04-19 15:04:33 +0200 |
commit | 6a0a0a4d78bb8850bf4a304b83784d3822895efe (patch) | |
tree | 2800dce4daa42965a010336456117733830e2694 /comphelper | |
parent | 832b23d9376019619929764606276aacde1e329a (diff) |
use more string_view in comphelper::string
Change-Id: I5d27824694e38de540e5f1fcd8704f8777f65140
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114261
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'comphelper')
-rw-r--r-- | comphelper/qa/string/test_string.cxx | 10 | ||||
-rw-r--r-- | comphelper/source/misc/string.cxx | 92 |
2 files changed, 52 insertions, 50 deletions
diff --git a/comphelper/qa/string/test_string.cxx b/comphelper/qa/string/test_string.cxx index 10b69fbf8243..0619b873e0fb 100644 --- a/comphelper/qa/string/test_string.cxx +++ b/comphelper/qa/string/test_string.cxx @@ -75,11 +75,11 @@ void TestString::testDecimalStringToNumber() void TestString::testIsdigitAsciiString() { - CPPUNIT_ASSERT_EQUAL(true, comphelper::string::isdigitAsciiString(OString("1234"))); + CPPUNIT_ASSERT_EQUAL(true, comphelper::string::isdigitAsciiString("1234")); - CPPUNIT_ASSERT_EQUAL(false, comphelper::string::isdigitAsciiString(OString("1A34"))); + CPPUNIT_ASSERT_EQUAL(false, comphelper::string::isdigitAsciiString("1A34")); - CPPUNIT_ASSERT_EQUAL(true, comphelper::string::isdigitAsciiString(OString())); + CPPUNIT_ASSERT_EQUAL(true, comphelper::string::isdigitAsciiString("")); } using namespace ::com::sun::star; @@ -360,13 +360,13 @@ void TestString::testTokenCount() nOut = ::comphelper::string::getTokenCount(aIn, 'X'); CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1), nOut); - nOut = ::comphelper::string::getTokenCount(OString(), 'X'); + nOut = ::comphelper::string::getTokenCount("", 'X'); CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0), nOut); } void TestString::testReverseString() { - OString aOut = ::comphelper::string::reverseString(OString("ABC")); + OString aOut = ::comphelper::string::reverseString("ABC"); CPPUNIT_ASSERT_EQUAL(OString("CBA"), aOut); } diff --git a/comphelper/source/misc/string.cxx b/comphelper/source/misc/string.cxx index 32b365c09022..1867728381b6 100644 --- a/comphelper/source/misc/string.cxx +++ b/comphelper/source/misc/string.cxx @@ -47,30 +47,30 @@ namespace template <typename T, typename C> T tmpl_stripStart(const T &rIn, const C cRemove) { - if (rIn.isEmpty()) + if (rIn.empty()) return rIn; - sal_Int32 i = 0; + std::string_view::size_type i = 0; - while (i < rIn.getLength()) + while (i < rIn.size()) { if (rIn[i] != cRemove) break; ++i; } - return rIn.copy(i); + return rIn.substr(i); } } -OString stripStart(const OString &rIn, char c) +OString stripStart(std::string_view rIn, char c) { - return tmpl_stripStart<OString, char>(rIn, c); + return OString(tmpl_stripStart<std::string_view, char>(rIn, c)); } -OUString stripStart(const OUString &rIn, sal_Unicode c) +OUString stripStart(std::u16string_view rIn, sal_Unicode c) { - return tmpl_stripStart<OUString, sal_Unicode>(rIn, c); + return OUString(tmpl_stripStart<std::u16string_view, sal_Unicode>(rIn, c)); } namespace @@ -78,10 +78,10 @@ namespace template <typename T, typename C> T tmpl_stripEnd(const T &rIn, const C cRemove) { - if (rIn.isEmpty()) + if (rIn.empty()) return rIn; - sal_Int32 i = rIn.getLength(); + std::u16string_view::size_type i = rIn.size(); while (i > 0) { @@ -90,41 +90,43 @@ namespace --i; } - return rIn.copy(0, i); + return rIn.substr(0, i); } } -OString stripEnd(const OString &rIn, char c) +OString stripEnd(std::string_view rIn, char c) { - return tmpl_stripEnd<OString, char>(rIn, c); + return OString(tmpl_stripEnd<std::string_view, char>(rIn, c)); } -OUString stripEnd(const OUString &rIn, sal_Unicode c) +OUString stripEnd(std::u16string_view rIn, sal_Unicode c) { - return tmpl_stripEnd<OUString, sal_Unicode>(rIn, c); + return OUString(tmpl_stripEnd<std::u16string_view, sal_Unicode>(rIn, c)); } -OString strip(const OString &rIn, char c) +OString strip(std::string_view rIn, char c) { - return stripEnd(stripStart(rIn, c), c); + auto x = tmpl_stripStart<std::string_view, char>(rIn, c); + return stripEnd(x, c); } -OUString strip(const OUString &rIn, sal_Unicode c) +OUString strip(std::u16string_view rIn, sal_Unicode c) { - return stripEnd(stripStart(rIn, c), c); + auto x = tmpl_stripStart<std::u16string_view, sal_Unicode>(rIn, c); + return stripEnd(x, c); } namespace { - template <typename T, typename C> sal_Int32 tmpl_getTokenCount(const T &rIn, + template <typename T, typename C> sal_Int32 tmpl_getTokenCount( T rIn, C cTok) { // Empty String: TokenCount by Definition is 0 - if (rIn.isEmpty()) + if (rIn.empty()) return 0; sal_Int32 nTokCount = 1; - for (sal_Int32 i = 0; i < rIn.getLength(); ++i) + for (std::u16string_view::size_type i = 0; i < rIn.size(); ++i) { if (rIn[i] == cTok) ++nTokCount; @@ -133,14 +135,14 @@ namespace } } -sal_Int32 getTokenCount(const OString &rIn, char cTok) +sal_Int32 getTokenCount(std::string_view rIn, char cTok) { - return tmpl_getTokenCount<OString, char>(rIn, cTok); + return tmpl_getTokenCount<std::string_view, char>(rIn, cTok); } -sal_Int32 getTokenCount(const OUString &rIn, sal_Unicode cTok) +sal_Int32 getTokenCount(std::u16string_view rIn, sal_Unicode cTok) { - return tmpl_getTokenCount<OUString, sal_Unicode>(rIn, cTok); + return tmpl_getTokenCount<std::u16string_view, sal_Unicode>(rIn, cTok); } static sal_uInt32 decimalStringToNumber( @@ -370,49 +372,49 @@ NaturalStringSorter::NaturalStringSorter( m_xBI = i18n::BreakIterator::create( rContext ); } -bool isdigitAsciiString(const OString &rString) +bool isdigitAsciiString(std::string_view rString) { return std::all_of( - rString.getStr(), rString.getStr() + rString.getLength(), + rString.data(), rString.data() + rString.size(), [](unsigned char c){ return rtl::isAsciiDigit(c); }); } -bool isdigitAsciiString(const OUString &rString) +bool isdigitAsciiString(std::u16string_view rString) { return std::all_of( - rString.getStr(), rString.getStr() + rString.getLength(), + rString.data(), rString.data() + rString.size(), [](sal_Unicode c){ return rtl::isAsciiDigit(c); }); } namespace { - template <typename T, typename O> T tmpl_reverseString(const T &rIn) + template <typename T, typename I, typename O> T tmpl_reverseString(I rIn) { - if (rIn.isEmpty()) - return rIn; + if (rIn.empty()) + return T(); - sal_Int32 i = rIn.getLength(); - O sBuf(i); + std::u16string_view::size_type i = rIn.size(); + O sBuf(static_cast<sal_Int32>(i)); while (i) sBuf.append(rIn[--i]); return sBuf.makeStringAndClear(); } } -OUString reverseString(const OUString &rStr) +OUString reverseString(std::u16string_view rStr) { - return tmpl_reverseString<OUString, OUStringBuffer>(rStr); + return tmpl_reverseString<OUString, std::u16string_view, OUStringBuffer>(rStr); } -OString reverseString(const OString &rStr) +OString reverseString(std::string_view rStr) { - return tmpl_reverseString<OString, OStringBuffer>(rStr); + return tmpl_reverseString<OString, std::string_view, OStringBuffer>(rStr); } -sal_Int32 indexOfAny(OUString const& rIn, +sal_Int32 indexOfAny(std::u16string_view rIn, sal_Unicode const*const pChars, sal_Int32 const nPos) { - for (sal_Int32 i = nPos; i < rIn.getLength(); ++i) + for (std::u16string_view::size_type i = nPos; i < rIn.size(); ++i) { sal_Unicode const c = rIn[i]; for (sal_Unicode const* pChar = pChars; *pChar; ++pChar) @@ -426,12 +428,12 @@ sal_Int32 indexOfAny(OUString const& rIn, return -1; } -OUString removeAny(OUString const& rIn, +OUString removeAny(std::u16string_view rIn, sal_Unicode const*const pChars) { OUStringBuffer buf; bool isFound(false); - for (sal_Int32 i = 0; i < rIn.getLength(); ++i) + for (std::u16string_view::size_type i = 0; i < rIn.size(); ++i) { sal_Unicode const c = rIn[i]; bool removeC(false); @@ -449,7 +451,7 @@ OUString removeAny(OUString const& rIn, { if (i > 0) { - buf.append(rIn.subView(0, i)); + buf.append(rIn.substr(0, i)); } isFound = true; } @@ -459,7 +461,7 @@ OUString removeAny(OUString const& rIn, buf.append(c); } } - return isFound ? buf.makeStringAndClear() : rIn; + return isFound ? buf.makeStringAndClear() : OUString(rIn); } OUString setToken(const OUString& rIn, sal_Int32 nToken, sal_Unicode cTok, |