]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/common/unistr_props.cpp
ICU-62107.0.1.tar.gz
[apple/icu.git] / icuSources / common / unistr_props.cpp
index ffd747d50836e52daeb7b7879085cd97c95a5671..40064757902ca8cac079153d8886293080694a9a 100644 (file)
@@ -1,12 +1,14 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
 /*
 *******************************************************************************
 *
-*   Copyright (C) 1999-2004, International Business Machines
+*   Copyright (C) 1999-2011, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 *
 *******************************************************************************
 *   file name:  unistr_props.cpp
-*   encoding:   US-ASCII
+*   encoding:   UTF-8
 *   tab size:   8 (not used)
 *   indentation:2
 *
@@ -19,6 +21,9 @@
 #include "unicode/utypes.h"
 #include "unicode/uchar.h"
 #include "unicode/unistr.h"
+#include "unicode/utf16.h"
+
+U_NAMESPACE_BEGIN
 
 UnicodeString& 
 UnicodeString::trim()
@@ -27,8 +32,10 @@ UnicodeString::trim()
     return *this;
   }
 
+  UChar *array = getArrayStart();
   UChar32 c;
-  int32_t i = fLength, length;
+  int32_t oldLength = this->length();
+  int32_t i = oldLength, length;
 
   // first cut off trailing white space
   for(;;) {
@@ -36,13 +43,13 @@ UnicodeString::trim()
     if(i <= 0) {
       break;
     }
-    UTF_PREV_CHAR(fArray, 0, i, c);
+    U16_PREV(array, 0, i, c);
     if(!(c == 0x20 || u_isWhitespace(c))) {
       break;
     }
   }
-  if(length < fLength) {
-    fLength = length;
+  if(length < oldLength) {
+    setLength(length);
   }
 
   // find leading white space
@@ -53,7 +60,7 @@ UnicodeString::trim()
     if(i >= length) {
       break;
     }
-    UTF_NEXT_CHAR(fArray, i, length, c);
+    U16_NEXT(array, i, length, c);
     if(!(c == 0x20 || u_isWhitespace(c))) {
       break;
     }
@@ -66,3 +73,5 @@ UnicodeString::trim()
 
   return *this;
 }
+
+U_NAMESPACE_END