]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/i18n/usrchimp.h
ICU-491.11.1.tar.gz
[apple/icu.git] / icuSources / i18n / usrchimp.h
index 30683e5bd0940e67281b1d02d7b6f29cffdf2923..2f597e90334000b493f1762410f5239404825107 100644 (file)
@@ -1,6 +1,6 @@
 /*
 **********************************************************************
-*   Copyright (C) 2001 IBM and others. All rights reserved.
+*   Copyright (C) 2001-2011 IBM and others. All rights reserved.
 **********************************************************************
 *   Date        Name        Description
 *  08/13/2001   synwee      Creation.
@@ -13,6 +13,7 @@
 
 #if !UCONFIG_NO_COLLATION
 
+#include "unicode/normalizer2.h"
 #include "unicode/ucol.h"
 #include "unicode/ucoleitr.h"
 #include "unicode/ubrk.h"
@@ -26,12 +27,14 @@ struct USearch {
           int32_t             textLength; // exact length
           UBool               isOverlap;
           UBool               isCanonicalMatch;
+          int16_t             elementComparisonType;
+          UBreakIterator     *internalBreakIter;  //internal character breakiterator
           UBreakIterator     *breakIter;
     // value USEARCH_DONE is the default value
     // if we are not at the start of the text or the end of the text, 
     // depending on the iteration direction and matchedIndex is USEARCH_DONE 
-    // it means that we can find any more matches in that particular direction
-          int32_t         matchedIndex; 
+    // it means that we can't find any more matches in that particular direction
+          int32_t             matchedIndex; 
           int32_t             matchedLength;
           UBool               isForwardSearching;
           UBool               reset;
@@ -42,8 +45,11 @@ struct UPattern {
           int32_t             textLength; // exact length
           // length required for backwards ce comparison
           int32_t             CELength; 
-          uint32_t           *CE;
-          uint32_t            CEBuffer[INITIAL_ARRAY_SIZE_];
+          int32_t            *CE;
+          int32_t             CEBuffer[INITIAL_ARRAY_SIZE_];
+          int32_t             PCELength;
+          int64_t            *PCE;
+          int64_t             PCEBuffer[INITIAL_ARRAY_SIZE_];
           UBool               hasPrefixAccents;
           UBool               hasSuffixAccents;
           int16_t             defaultShiftSize;
@@ -55,6 +61,7 @@ struct UStringSearch {
     struct USearch            *search;
     struct UPattern            pattern;
     const  UCollator          *collator;
+    const  icu::Normalizer2   *nfd;
     // positions within the collation element iterator is used to determine
     // if we are at the start of the text.
            UCollationElements *textIter;