sal/inc/rtl/string.hxx | 16 +++++++------- sal/inc/rtl/ustrbuf.hxx | 13 +++-------- sal/inc/rtl/ustring.hxx | 30 ++++++++++++--------------- sal/qa/rtl/strings/test_oustring_compare.cxx | 15 +++++++++++++ 4 files changed, 41 insertions(+), 33 deletions(-)
New commits: commit 20481510003524af3e4b50c073a4f9bae87acb1f Author: Norbert Thiebaud <[email protected]> Date: Wed Nov 28 04:01:17 2012 -0600 add SAL_WARN_UNUSED_RESULT in OString and OUString where appropriate String used to do some operation by modifying itself whereas OUString never does that and when a modificaiton is needed it create a new copy. so it is very easy when one convert String code to OUString code to miss stuff like sString.ToUpperCase() which need to be converted into sString = sString.toAsciiUpperCase() and not sString.toAsciiUpperCase() This patch make the compiler generate a warning in that later _wrong_ case Change-Id: I4a9c0b4c7d0b75ad8850ac23b86e8508a334f5fe Signed-off-by: Stephan Bergmann <[email protected]> diff --git a/sal/inc/rtl/string.hxx b/sal/inc/rtl/string.hxx index 51d21cb..4e55020 100644 --- a/sal/inc/rtl/string.hxx +++ b/sal/inc/rtl/string.hxx @@ -1056,7 +1056,7 @@ public: @return a string that represents the concatenation of this string followed by the string argument. */ - OString concat( const OString & str ) const SAL_THROW(()) + SAL_WARN_UNUSED_RESULT OString concat( const OString & str ) const SAL_THROW(()) { rtl_String* pNew = 0; rtl_string_newConcat( &pNew, pData, str.pData ); @@ -1081,7 +1081,7 @@ public: @param newStr the new substring. @return the new string. */ - OString replaceAt( sal_Int32 index, sal_Int32 count, const OString& newStr ) const SAL_THROW(()) + SAL_WARN_UNUSED_RESULT OString replaceAt( sal_Int32 index, sal_Int32 count, const OString& newStr ) const SAL_THROW(()) { rtl_String* pNew = 0; rtl_string_newReplaceStrAt( &pNew, pData, index, count, newStr.pData ); @@ -1101,7 +1101,7 @@ public: @return a string derived from this string by replacing every occurrence of oldChar with newChar. */ - OString replace( sal_Char oldChar, sal_Char newChar ) const SAL_THROW(()) + SAL_WARN_UNUSED_RESULT OString replace( sal_Char oldChar, sal_Char newChar ) const SAL_THROW(()) { rtl_String* pNew = 0; rtl_string_newReplace( &pNew, pData, oldChar, newChar ); @@ -1126,7 +1126,7 @@ public: @since LibreOffice 3.6 */ - OString replaceFirst( + SAL_WARN_UNUSED_RESULT OString replaceFirst( OString const & from, OString const & to, sal_Int32 * index = 0) const { rtl_String * s = 0; @@ -1150,7 +1150,7 @@ public: @since LibreOffice 3.6 */ - OString replaceAll(OString const & from, OString const & to) const { + SAL_WARN_UNUSED_RESULT OString replaceAll(OString const & from, OString const & to) const { rtl_String * s = 0; rtl_string_newReplaceAll( &s, pData, from.pData->buffer, from.pData->length, @@ -1168,7 +1168,7 @@ public: @return the string, converted to ASCII lowercase. */ - OString toAsciiLowerCase() const SAL_THROW(()) + SAL_WARN_UNUSED_RESULT OString toAsciiLowerCase() const SAL_THROW(()) { rtl_String* pNew = 0; rtl_string_newToAsciiLowerCase( &pNew, pData ); @@ -1185,7 +1185,7 @@ public: @return the string, converted to ASCII uppercase. */ - OString toAsciiUpperCase() const SAL_THROW(()) + SAL_WARN_UNUSED_RESULT OString toAsciiUpperCase() const SAL_THROW(()) { rtl_String* pNew = 0; rtl_string_newToAsciiUpperCase( &pNew, pData ); @@ -1203,7 +1203,7 @@ public: @return the string, with white space removed from the front and end. */ - OString trim() const SAL_THROW(()) + SAL_WARN_UNUSED_RESULT OString trim() const SAL_THROW(()) { rtl_String* pNew = 0; rtl_string_newTrim( &pNew, pData ); diff --git a/sal/inc/rtl/ustring.hxx b/sal/inc/rtl/ustring.hxx index 4fc1360..ebf548b 100644 --- a/sal/inc/rtl/ustring.hxx +++ b/sal/inc/rtl/ustring.hxx @@ -1394,7 +1394,7 @@ public: @return a string that represents the concatenation of this string followed by the string argument. */ - OUString concat( const OUString & str ) const SAL_THROW(()) + SAL_WARN_UNUSED_RESULT OUString concat( const OUString & str ) const SAL_THROW(()) { rtl_uString* pNew = 0; rtl_uString_newConcat( &pNew, pData, str.pData ); @@ -1419,7 +1419,7 @@ public: @param newStr the new substring. @return the new string. */ - OUString replaceAt( sal_Int32 index, sal_Int32 count, const OUString& newStr ) const SAL_THROW(()) + SAL_WARN_UNUSED_RESULT OUString replaceAt( sal_Int32 index, sal_Int32 count, const OUString& newStr ) const SAL_THROW(()) { rtl_uString* pNew = 0; rtl_uString_newReplaceStrAt( &pNew, pData, index, count, newStr.pData ); @@ -1439,7 +1439,7 @@ public: @return a string derived from this string by replacing every occurrence of oldChar with newChar. */ - OUString replace( sal_Unicode oldChar, sal_Unicode newChar ) const SAL_THROW(()) + SAL_WARN_UNUSED_RESULT OUString replace( sal_Unicode oldChar, sal_Unicode newChar ) const SAL_THROW(()) { rtl_uString* pNew = 0; rtl_uString_newReplace( &pNew, pData, oldChar, newChar ); @@ -1464,7 +1464,7 @@ public: @since LibreOffice 3.6 */ - OUString replaceFirst( + SAL_WARN_UNUSED_RESULT OUString replaceFirst( OUString const & from, OUString const & to, sal_Int32 * index = 0) const { rtl_uString * s = 0; @@ -1493,8 +1493,8 @@ public: @since LibreOffice 3.6 */ template< typename T > - typename internal::ConstCharArrayDetector< T, OUString >::Type replaceFirst( T& from, OUString const & to, - sal_Int32 * index = 0) const + SAL_WARN_UNUSED_RESULT typename internal::ConstCharArrayDetector< T, OUString >::Type replaceFirst( T& from, OUString const & to, + sal_Int32 * index = 0) const { rtl_uString * s = 0; sal_Int32 i = 0; @@ -1522,7 +1522,7 @@ public: @since LibreOffice 3.6 */ template< typename T1, typename T2 > - typename internal::ConstCharArrayDetector< T1, typename internal::ConstCharArrayDetector< T2, OUString >::Type >::Type + SAL_WARN_UNUSED_RESULT typename internal::ConstCharArrayDetector< T1, typename internal::ConstCharArrayDetector< T2, OUString >::Type >::Type replaceFirst( T1& from, T2& to, sal_Int32 * index = 0) const { rtl_uString * s = 0; @@ -1609,7 +1609,7 @@ public: @return the string, converted to ASCII lowercase. */ - OUString toAsciiLowerCase() const SAL_THROW(()) + SAL_WARN_UNUSED_RESULT OUString toAsciiLowerCase() const SAL_THROW(()) { rtl_uString* pNew = 0; rtl_uString_newToAsciiLowerCase( &pNew, pData ); @@ -1626,7 +1626,7 @@ public: @return the string, converted to ASCII uppercase. */ - OUString toAsciiUpperCase() const SAL_THROW(()) + SAL_WARN_UNUSED_RESULT OUString toAsciiUpperCase() const SAL_THROW(()) { rtl_uString* pNew = 0; rtl_uString_newToAsciiUpperCase( &pNew, pData ); @@ -1644,7 +1644,7 @@ public: @return the string, with white space removed from the front and end. */ - OUString trim() const SAL_THROW(()) + SAL_WARN_UNUSED_RESULT OUString trim() const SAL_THROW(()) { rtl_uString* pNew = 0; rtl_uString_newTrim( &pNew, pData ); commit 04c79bcbbc3e646d7c9ae4f9388eb0134ec9a8b8 Author: Stephan Bergmann <[email protected]> Date: Wed Nov 28 13:39:49 2012 +0100 Clean up previous rtl::OUStringBuffer changes The OUString assignment operator is less transactional than it could be, but is also not necessasry, as OUStringBuffer has a non-explicit conversion constructor from OUString. Added some missing @since tags. Change-Id: I830be93fde78422c5a7eff9437b53e2d2d70933a diff --git a/sal/inc/rtl/ustrbuf.hxx b/sal/inc/rtl/ustrbuf.hxx index ecea715..d8db905 100644 --- a/sal/inc/rtl/ustrbuf.hxx +++ b/sal/inc/rtl/ustrbuf.hxx @@ -223,15 +223,6 @@ public: return *this; } - /** Assign to this a copy of value. - */ - OUStringBuffer& operator = ( const OUString& value ) - { - remove(); - append(value); - return *this; - } - /** Release the string data. */ @@ -415,6 +406,8 @@ public: @param str a string. @return this string buffer. + + @since LibreOffice 4.0 */ OUStringBuffer & append(OUStringBuffer &str) { @@ -945,6 +938,8 @@ public: @param start The beginning index, inclusive. default to 0 @return this string buffer. + + @since LibreOffice 4.0 */ OUStringBuffer & remove( sal_Int32 start = 0) { commit 6676c4ebbd264448e1d7871c91c1b3ba72c0dda0 Author: Stephan Bergmann <[email protected]> Date: Wed Nov 28 13:32:31 2012 +0100 Fix rtl::OUString::compareToIgnoreAsciiCase Change-Id: I40005ef4fad4d44314ec2fb2881fec82e926970e diff --git a/sal/inc/rtl/ustring.hxx b/sal/inc/rtl/ustring.hxx index aeb2b79..4fc1360 100644 --- a/sal/inc/rtl/ustring.hxx +++ b/sal/inc/rtl/ustring.hxx @@ -527,8 +527,8 @@ public: /** Perform a ASCII lowercase comparison of two strings. - Compare teh two string with uppercase ASCII - character values between 65 and 90 (ASCII A-Z) are interpreted as + Compare the two strings with uppercase ASCII + character values between 65 and 90 (ASCII A-Z) interpreted as values between 97 and 122 (ASCII a-z). This function can't be used for language specific comparison. @@ -536,13 +536,11 @@ public: @return 0 - if both strings are equal < 0 - if this string is less than the string argument > 0 - if this string is greater than the string argument + + @since LibreOffice 4.0 */ sal_Int32 compareToIgnoreAsciiCase( const OUString & str ) const SAL_THROW(()) { - if ( pData->length != str.pData->length ) - return sal_False; - if ( pData == str.pData ) - return sal_True; return rtl_ustr_compareIgnoreAsciiCase_WithLength( pData->buffer, pData->length, str.pData->buffer, str.pData->length ); } diff --git a/sal/qa/rtl/strings/test_oustring_compare.cxx b/sal/qa/rtl/strings/test_oustring_compare.cxx index c41c223..8b506b7 100644 --- a/sal/qa/rtl/strings/test_oustring_compare.cxx +++ b/sal/qa/rtl/strings/test_oustring_compare.cxx @@ -32,9 +32,12 @@ private: void compareToAscii(); + void compareToIgnoreAsciiCase(); + CPPUNIT_TEST_SUITE(Compare); CPPUNIT_TEST(equalsIgnoreAsciiCaseAscii); CPPUNIT_TEST(compareToAscii); +CPPUNIT_TEST(compareToIgnoreAsciiCase); CPPUNIT_TEST_SUITE_END(); }; @@ -70,4 +73,16 @@ void test::oustring::Compare::compareToAscii() sal_Int32(0), abc.compareToAscii(RTL_CONSTASCII_STRINGPARAM("a"))); } +void test::oustring::Compare::compareToIgnoreAsciiCase() +{ + CPPUNIT_ASSERT_EQUAL( + sal_Int32(0), + rtl::OUString("abc").compareToIgnoreAsciiCase(rtl::OUString("ABC"))); + CPPUNIT_ASSERT( + rtl::OUString("ABC").compareToIgnoreAsciiCase(rtl::OUString("abcdef")) + < 0); + CPPUNIT_ASSERT( + rtl::OUString("A").compareToIgnoreAsciiCase(rtl::OUString("_")) > 0); +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
