[Libreoffice-commits] .: sal/inc sal/qa sal/rtl

Lubos Lunak llunak at kemper.freedesktop.org
Mon Jul 4 02:30:51 PDT 2011


 sal/inc/rtl/strbuf.h                       |   11 ++++-------
 sal/inc/rtl/strbuf.hxx                     |   18 +++++-------------
 sal/inc/rtl/ustrbuf.h                      |   11 ++++-------
 sal/inc/rtl/ustrbuf.hxx                    |   20 ++++++--------------
 sal/qa/OStringBuffer/rtl_OStringBuffer.cxx |    2 +-
 sal/rtl/source/strbuf.c                    |   17 +++++++----------
 sal/rtl/source/ustrbuf.c                   |   17 +++++++----------
 7 files changed, 34 insertions(+), 62 deletions(-)

New commits:
commit e5b48dbda5b75147adb1c79647fe836363e5a0e9
Author: Luboš Luňák <l.lunak at suse.cz>
Date:   Mon Jul 4 11:29:08 2011 +0200

    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.

diff --git a/sal/inc/rtl/strbuf.h b/sal/inc/rtl/strbuf.h
index 1c076cf..9543b9a 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 7e52b21..3a26c1b 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 d2d2ed4..260db4f 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 d48c5c7..7569597 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 2307dab..036a2c3 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 8d0f276..c0e9694 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 18ca27f..638b27e 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;
 }
 


More information about the Libreoffice-commits mailing list