]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/common/unifilt.cpp
ICU-62108.0.1.tar.gz
[apple/icu.git] / icuSources / common / unifilt.cpp
index 69ac3070c79ac4676c0f44a2f04a4df0fc484717..4ab0d9b5f934ba613944bb81ef6b905cb60f5642 100644 (file)
@@ -1,6 +1,8 @@
+// © 2016 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
 /*
 **********************************************************************
-* Copyright (c) 2001-2004, International Business Machines
+* Copyright (c) 2001-2012, International Business Machines
 * Corporation and others.  All Rights Reserved.
 **********************************************************************
 *   Date        Name        Description
@@ -10,6 +12,7 @@
 
 #include "unicode/unifilt.h"
 #include "unicode/rep.h"
+#include "unicode/utf16.h"
 
 U_NAMESPACE_BEGIN
 UOBJECT_DEFINE_ABSTRACT_RTTI_IMPLEMENTATION(UnicodeFilter)
@@ -22,11 +25,11 @@ UnicodeMatcher::~UnicodeMatcher() {}
 UnicodeFilter::~UnicodeFilter() {}
 
 /**
- * UnicodeFunctor API.  Cast 'this' to a UnicodeMatcher* pointer
- * and return the pointer.
+ * UnicodeFunctor API.
+ *   Note that UnicodeMatcher is a base class of UnicodeFilter.
  */
 UnicodeMatcher* UnicodeFilter::toMatcher() const {
-    return (UnicodeMatcher*) this;
+  return const_cast<UnicodeFilter *>(this);
 }
 
 void UnicodeFilter::setData(const TransliterationRuleData*) {}
@@ -43,7 +46,7 @@ UMatchDegree UnicodeFilter::matches(const Replaceable& text,
     UChar32 c;
     if (offset < limit &&
         contains(c = text.char32At(offset))) {
-        offset += UTF_CHAR_LENGTH(c);
+        offset += U16_LENGTH(c);
         return U_MATCH;
     }
     if (offset > limit &&
@@ -53,7 +56,7 @@ UMatchDegree UnicodeFilter::matches(const Replaceable& text,
         // the lead surrogate).
         --offset;
         if (offset >= 0) {
-            offset -= UTF_CHAR_LENGTH(text.char32At(offset)) - 1;
+            offset -= U16_LENGTH(text.char32At(offset)) - 1;
         }
         return U_MATCH;
     }