summaryrefslogtreecommitdiff
path: root/sal
diff options
context:
space:
mode:
authorLuboš Luňák <l.lunak@suse.cz>2011-07-04 11:29:08 +0200
committerLuboš Luňák <l.lunak@suse.cz>2011-07-04 11:30:37 +0200
commit3563ee58528846e694b495723a247ff128994c8c (patch)
treec35d1a742bb10801c5d8613a32c4e6ec50a41d71 /sal
parentd8636d2f8e9c0398d3909f20f22d0e783d7061d5 (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.
Diffstat (limited to 'sal')
-rw-r--r--sal/inc/rtl/strbuf.h11
-rw-r--r--sal/inc/rtl/strbuf.hxx16
-rw-r--r--sal/inc/rtl/ustrbuf.h11
-rw-r--r--sal/inc/rtl/ustrbuf.hxx18
-rw-r--r--sal/qa/OStringBuffer/rtl_OStringBuffer.cxx2
-rw-r--r--sal/rtl/source/strbuf.c17
-rw-r--r--sal/rtl/source/ustrbuf.c17
7 files changed, 32 insertions, 60 deletions
diff --git a/sal/inc/rtl/strbuf.h b/sal/inc/rtl/strbuf.h
index 78f604009c11..c1d929c1298b 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 48a55683bd46..310b38e9a19a 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 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 36e5652000db..8ea5c316e80e 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 bde72fc0cde2..39e3562bd516 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
-
- 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>.
+ start must be >= 0 && <= This->length
@param start The beginning index, inclusive
- @param end The ending index, exclusive
+ @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 257a31b93e4a..2ebce4c74588 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 a620a3c0419d..c9a4f3140643 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 f5dbefdb75b8..374913ae78b8 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;
}