diff options
author | Caolán McNamara <caolanm@redhat.com> | 2012-06-17 20:59:10 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2012-06-18 15:13:51 +0100 |
commit | 8e01e881451333eadb8e23f619e2b4014de1442a (patch) | |
tree | ce6ce6e0214684302186749e299be513f0ca04e9 /comphelper | |
parent | 40445a57c6256407bf2381ab456cb5ff58b2f6a8 (diff) |
add a route to compare a O[U]String to one code unit
Seems very awkward to create an entire temporary O[U]String just to compare it
to another when we want to know if that other contains just one char of a given
value
Change-Id: Iacd4e0d87dc5c5211fa06c61c55e1ed85b1e91f3
Diffstat (limited to 'comphelper')
-rw-r--r-- | comphelper/inc/comphelper/string.hxx | 20 | ||||
-rw-r--r-- | comphelper/qa/string/test_string.cxx | 13 |
2 files changed, 33 insertions, 0 deletions
diff --git a/comphelper/inc/comphelper/string.hxx b/comphelper/inc/comphelper/string.hxx index 908832789688..f5ec4a338720 100644 --- a/comphelper/inc/comphelper/string.hxx +++ b/comphelper/inc/comphelper/string.hxx @@ -91,6 +91,26 @@ COMPHELPER_DLLPUBLIC rtl_uString * SAL_CALL rtl_uString_alloc(sal_Int32 nLen); */ COMPHELPER_DLLPUBLIC rtl_String * SAL_CALL rtl_string_alloc(sal_Int32 nLen); +/** Compare an OString to a single char + + @param rIn The input OString + @param c The character to compare againsg + + @return true if rIn has one char and its equal to c + */ +inline bool equals(const rtl::OString& rIn, sal_Char c) +{ return rIn.getLength() == 1 && rIn[0] == c; } + +/** Compare an OUString to a single char + + @param rIn The input OUString + @param c The character to compare againsg + + @return true if rIn has one char and its equal to c + */ +inline bool equals(const rtl::OUString& rIn, sal_Unicode c) +{ return rIn.getLength() == 1 && rIn[0] == c; } + /** Removes all occurrences of a character from within the source string @deprecated Use rtl::OString::replaceAll(rtl::OString(c), rtl::OString()) diff --git a/comphelper/qa/string/test_string.cxx b/comphelper/qa/string/test_string.cxx index 96706ace353d..96dcebd3c98f 100644 --- a/comphelper/qa/string/test_string.cxx +++ b/comphelper/qa/string/test_string.cxx @@ -54,6 +54,7 @@ public: void testDecimalStringToNumber(); void testIsdigitAsciiString(); void testReverseString(); + void testEqualsString(); CPPUNIT_TEST_SUITE(TestString); CPPUNIT_TEST(testNatural); @@ -66,6 +67,7 @@ public: CPPUNIT_TEST(testDecimalStringToNumber); CPPUNIT_TEST(testIsdigitAsciiString); CPPUNIT_TEST(testReverseString); + CPPUNIT_TEST(testEqualsString); CPPUNIT_TEST_SUITE_END(); }; @@ -405,6 +407,17 @@ void TestString::testReverseString() CPPUNIT_ASSERT(aOut == "CBA"); } +void TestString::testEqualsString() +{ + ::rtl::OString aIn("A"); + CPPUNIT_ASSERT(::comphelper::string::equals(aIn, 'A')); + CPPUNIT_ASSERT(!::comphelper::string::equals(aIn, 'B')); + aIn = ::rtl::OString("AA"); + CPPUNIT_ASSERT(!::comphelper::string::equals(aIn, 'A')); + aIn = ::rtl::OString(); + CPPUNIT_ASSERT(!::comphelper::string::equals(aIn, 'A')); +} + CPPUNIT_TEST_SUITE_REGISTRATION(TestString); } |