[Libreoffice-commits] core.git: include/rtl sal/qa
Tor Lillqvist (via logerrit)
logerrit at kemper.freedesktop.org
Thu Jan 14 17:07:38 UTC 2021
include/rtl/ustring.hxx | 20 ++++++++++++++++++++
sal/qa/rtl/oustring/rtl_OUString2.cxx | 19 +++++++++++++++++++
2 files changed, 39 insertions(+)
New commits:
commit 06ecfbe3d236e06f597e5422bfc24a9a76c3f90c
Author: Tor Lillqvist <tml at collabora.com>
AuthorDate: Thu Jan 14 10:59:34 2021 +0200
Commit: Tor Lillqvist <tml at collabora.com>
CommitDate: Thu Jan 14 18:06:58 2021 +0100
Introduce startsWithAsciiL() to match endsWithAsciiL()
Will be used in an upcoming change. Unit test included.
Change-Id: I777a755cab543ea277b84fb5ad021d0b91725764
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109264
Tested-by: Jenkins
Reviewed-by: Tor Lillqvist <tml at collabora.com>
diff --git a/include/rtl/ustring.hxx b/include/rtl/ustring.hxx
index ee3cfe170555..3a7f8bd5654f 100644
--- a/include/rtl/ustring.hxx
+++ b/include/rtl/ustring.hxx
@@ -1419,6 +1419,26 @@ public:
return b;
}
+ /**
+ Check whether this string starts with a given ASCII string.
+
+ @param asciiStr a sequence of at least asciiStrLength ASCII characters
+ (bytes in the range 0x00--0x7F)
+ @param asciiStrLength the length of asciiStr; must be non-negative
+ @return true if this string starts with asciiStr; otherwise, false is
+ returned
+
+ @since LibreOffice 7.2
+ */
+ bool startsWithAsciiL(char const * asciiStr, sal_Int32 asciiStrLength)
+ const
+ {
+ return asciiStrLength <= pData->length
+ && rtl_ustr_asciil_reverseEquals_WithLength(
+ pData->buffer, asciiStr,
+ asciiStrLength);
+ }
+
/**
Check whether this string starts with a given string, ignoring the case of
ASCII letters.
diff --git a/sal/qa/rtl/oustring/rtl_OUString2.cxx b/sal/qa/rtl/oustring/rtl_OUString2.cxx
index 516378dc14a7..d2223511f92a 100644
--- a/sal/qa/rtl/oustring/rtl_OUString2.cxx
+++ b/sal/qa/rtl/oustring/rtl_OUString2.cxx
@@ -881,6 +881,24 @@ void indexOfAscii::test() {
sal_Int32(3), OUString("foofoobar").indexOf("foo", 1));
}
+class startsWithAsciiL: public CppUnit::TestFixture {
+public:
+ void test();
+
+ CPPUNIT_TEST_SUITE(startsWithAsciiL);
+ CPPUNIT_TEST(test);
+ CPPUNIT_TEST_SUITE_END();
+};
+
+void startsWithAsciiL::test() {
+ CPPUNIT_ASSERT_EQUAL(true, OUString().startsWithAsciiL("", 0));
+ CPPUNIT_ASSERT_EQUAL(false, OUString().startsWithAsciiL("x", 1));
+ CPPUNIT_ASSERT_EQUAL(true, OUString("bar").startsWithAsciiL("bar", 3));
+ CPPUNIT_ASSERT_EQUAL(false, OUString("bar").startsWithAsciiL("foobar", 6));
+ CPPUNIT_ASSERT_EQUAL(true, OUString("foobar").startsWithAsciiL("foo", 3));
+ CPPUNIT_ASSERT_EQUAL(false, OUString("FOOBAR").startsWithAsciiL("foo", 3));
+}
+
class endsWith: public CppUnit::TestFixture {
public:
void test();
@@ -1033,6 +1051,7 @@ CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OUString::getToken);
CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OUString::convertToString);
CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OUString::construction);
CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OUString::indexOfAscii);
+CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OUString::startsWithAsciiL);
CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OUString::endsWith);
CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OUString::isEmpty);
CPPUNIT_TEST_SUITE_REGISTRATION(rtl_OUString::createFromCodePoints);
More information about the Libreoffice-commits
mailing list