summaryrefslogtreecommitdiff
path: root/sal
diff options
context:
space:
mode:
Diffstat (limited to 'sal')
-rw-r--r--sal/inc/rtl/strbuf.h11
-rw-r--r--sal/inc/rtl/strbuf.hxx18
-rw-r--r--sal/inc/rtl/ustrbuf.h11
-rw-r--r--sal/inc/rtl/ustrbuf.hxx20
-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, 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;
}