summaryrefslogtreecommitdiff
path: root/comphelper
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2012-06-17 20:59:10 +0100
committerCaolán McNamara <caolanm@redhat.com>2012-06-18 15:13:51 +0100
commit8e01e881451333eadb8e23f619e2b4014de1442a (patch)
treece6ce6e0214684302186749e299be513f0ca04e9 /comphelper
parent40445a57c6256407bf2381ab456cb5ff58b2f6a8 (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.hxx20
-rw-r--r--comphelper/qa/string/test_string.cxx13
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);
}