diff options
author | Luboš Luňák <l.lunak@suse.cz> | 2011-07-04 11:29:08 +0200 |
---|---|---|
committer | Luboš Luňák <l.lunak@suse.cz> | 2011-07-04 11:30:37 +0200 |
commit | e5b48dbda5b75147adb1c79647fe836363e5a0e9 (patch) | |
tree | e82c7efae9cd489836714c23e8697857d3943423 | |
parent | 194ad6992b6871d2dbc750e22155850461e61038 (diff) |
change O[U]StringBuffer::remove() to take start+len
In order to be consistent with other usage in LO and C++ libs,
instead of being consistent with Java.
-rw-r--r-- | sal/inc/rtl/strbuf.h | 11 | ||||
-rw-r--r-- | sal/inc/rtl/strbuf.hxx | 18 | ||||
-rw-r--r-- | sal/inc/rtl/ustrbuf.h | 11 | ||||
-rw-r--r-- | sal/inc/rtl/ustrbuf.hxx | 20 | ||||
-rw-r--r-- | sal/qa/OStringBuffer/rtl_OStringBuffer.cxx | 2 | ||||
-rw-r--r-- | sal/rtl/source/strbuf.c | 17 | ||||
-rw-r--r-- | sal/rtl/source/ustrbuf.c | 17 |
7 files changed, 34 insertions, 62 deletions
diff --git a/sal/inc/rtl/strbuf.h b/sal/inc/rtl/strbuf.h index 1c076cf46..9543b9a57 100644 --- a/sal/inc/rtl/strbuf.h +++ b/sal/inc/rtl/strbuf.h @@ -116,19 +116,16 @@ void SAL_CALL rtl_stringbuffer_insert( /*inout*/rtl_String ** This, Removes the characters in a substring of this sequence. The substring begins at the specified <code>start</code> and - extends to the character at index <code>end - 1</code> or to - the end of the sequence if no such character exists. If - <code>start</code> is equal to <code>end</code>, no changes - are made. + is <code>len</code> characters long. - start must be >= 0 && <= This->length && <= end + start must be >= 0 && <= This->length @param start The beginning index, inclusive - @param end The ending index, exclusive + @param len The substring length */ void SAL_CALL rtl_stringbuffer_remove( /*inout*/rtl_String ** This, sal_Int32 start, - sal_Int32 end ); + sal_Int32 len ); #ifdef __cplusplus } diff --git a/sal/inc/rtl/strbuf.hxx b/sal/inc/rtl/strbuf.hxx index 7e52b21ab..3a26c1b74 100644 --- a/sal/inc/rtl/strbuf.hxx +++ b/sal/inc/rtl/strbuf.hxx @@ -675,25 +675,17 @@ public: Removes the characters in a substring of this sequence. The substring begins at the specified <code>start</code> and - extends to the character at index <code>end - 1</code> or to - the end of the sequence if no such character exists. If - <code>start</code> is equal to <code>end</code>, no changes - are made. + is <code>len</code> characters long. start must be >= 0 && <= getLength() && <= end - As is usual for the rtl string classes, this is based - on an analogous Java StringBuffer member. In this - case <code>delete</code>, but because that's a reserved - keyword in C++, this is named <code>remove</code>. - - @param start The beginning index, inclusive - @param end The ending index, exclusive + @param start The beginning index, inclusive + @param len The substring length @return this string buffer. */ - OStringBuffer & remove( sal_Int32 start, sal_Int32 end ) + OStringBuffer & remove( sal_Int32 start, sal_Int32 len ) { - rtl_stringbuffer_remove( &pData, start, end ); + rtl_stringbuffer_remove( &pData, start, len ); return *this; } diff --git a/sal/inc/rtl/ustrbuf.h b/sal/inc/rtl/ustrbuf.h index d2d2ed460..260db4f30 100644 --- a/sal/inc/rtl/ustrbuf.h +++ b/sal/inc/rtl/ustrbuf.h @@ -163,19 +163,16 @@ void SAL_CALL rtl_uStringbuffer_insert_ascii( /*inout*/rtl_uString ** This, Removes the characters in a substring of this sequence. The substring begins at the specified <code>start</code> and - extends to the character at index <code>end - 1</code> or to - the end of the sequence if no such character exists. If - <code>start</code> is equal to <code>end</code>, no changes - are made. + is <code>len</code> characters long. - start must be >= 0 && <= This->length && <= end + start must be >= 0 && <= This->length @param start The beginning index, inclusive - @param end The ending index, exclusive + @param len The substring length */ void SAL_CALL rtl_uStringbuffer_remove( /*inout*/rtl_uString ** This, sal_Int32 start, - sal_Int32 end ); + sal_Int32 len ); #ifdef __cplusplus } diff --git a/sal/inc/rtl/ustrbuf.hxx b/sal/inc/rtl/ustrbuf.hxx index d48c5c762..756959748 100644 --- a/sal/inc/rtl/ustrbuf.hxx +++ b/sal/inc/rtl/ustrbuf.hxx @@ -742,25 +742,17 @@ public: Removes the characters in a substring of this sequence. The substring begins at the specified <code>start</code> and - extends to the character at index <code>end - 1</code> or to - the end of the sequence if no such character exists. If - <code>start</code> is equal to <code>end</code>, no changes - are made. + is <code>len</code> characters long. - start must be >= 0 && <= getLength() && <= end + start must be >= 0 && <= This->length - As is usual for the rtl string classes, this is based - on an analogous Java StringBuffer member. In this - case <code>delete</code>, but because that's a reserved - keyword in C++, this is named <code>remove</code>. - - @param start The beginning index, inclusive - @param end The ending index, exclusive + @param start The beginning index, inclusive + @param len The substring length @return this string buffer. */ - OUStringBuffer & remove( sal_Int32 start, sal_Int32 end ) + OUStringBuffer & remove( sal_Int32 start, sal_Int32 len ) { - rtl_uStringbuffer_remove( &pData, start, end ); + rtl_uStringbuffer_remove( &pData, start, len ); return *this; } diff --git a/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx b/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx index 2307dab8c..036a2c395 100644 --- a/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx +++ b/sal/qa/OStringBuffer/rtl_OStringBuffer.cxx @@ -340,7 +340,7 @@ namespace rtl_OStringBuffer CPPUNIT_ASSERT(sb.toString().equalsL( RTL_CONSTASCII_STRINGPARAM("Hat, Inc."))); - sb.remove(3, 9); + sb.remove(3, 6); CPPUNIT_ASSERT(sb.toString().equalsL( RTL_CONSTASCII_STRINGPARAM("Hat"))); diff --git a/sal/rtl/source/strbuf.c b/sal/rtl/source/strbuf.c index 8d0f27625..c0e9694dc 100644 --- a/sal/rtl/source/strbuf.c +++ b/sal/rtl/source/strbuf.c @@ -151,31 +151,28 @@ void SAL_CALL rtl_stringbuffer_insert( rtl_String ** This, */ void SAL_CALL rtl_stringbuffer_remove( rtl_String ** This, sal_Int32 start, - sal_Int32 end ) + sal_Int32 len ) { sal_Int32 nTailLen; sal_Char * pBuf; - sal_Int32 n; - - if (end > (*This)->length) - end = (*This)->length; - n = end - start; + if (len > (*This)->length - start) + len = (*This)->length - start; //remove nothing - if (!n) + if (!len) return; pBuf = (*This)->buffer; - nTailLen = (*This)->length - end; + nTailLen = (*This)->length - ( start + len ); if (nTailLen) { /* move the tail */ - rtl_moveMemory(pBuf + start, pBuf + end, nTailLen * sizeof(sal_Char)); + rtl_moveMemory(pBuf + start, pBuf + start + len, nTailLen * sizeof(sal_Char)); } - (*This)->length-=n; + (*This)->length-=len; pBuf[ (*This)->length ] = 0; } diff --git a/sal/rtl/source/ustrbuf.c b/sal/rtl/source/ustrbuf.c index 18ca27f22..638b27eeb 100644 --- a/sal/rtl/source/ustrbuf.c +++ b/sal/rtl/source/ustrbuf.c @@ -211,31 +211,28 @@ void SAL_CALL rtl_uStringbuffer_insert_ascii( /*inout*/rtl_uString ** This, */ void SAL_CALL rtl_uStringbuffer_remove( rtl_uString ** This, sal_Int32 start, - sal_Int32 end ) + sal_Int32 len ) { sal_Int32 nTailLen; sal_Unicode * pBuf; - sal_Int32 n; - - if (end > (*This)->length) - end = (*This)->length; - n = end - start; + if (len > (*This)->length - start) + len = (*This)->length - start; //remove nothing - if (!n) + if (!len) return; pBuf = (*This)->buffer; - nTailLen = (*This)->length - end; + nTailLen = (*This)->length - ( start + len ); if (nTailLen) { /* move the tail */ - rtl_moveMemory(pBuf + start, pBuf + end, nTailLen * sizeof(sal_Unicode)); + rtl_moveMemory(pBuf + start, pBuf + start + len, nTailLen * sizeof(sal_Unicode)); } - (*This)->length-=n; + (*This)->length-=len; pBuf[ (*This)->length ] = 0; } |