X-Git-Url: https://git.saurik.com/apple/icu.git/blobdiff_plain/b75a7d8f3b4adbae880cab104ce2c6a50eee4db2..4388f060552cc537e71e957d32f35e9d75a61233:/icuSources/i18n/usrchimp.h?ds=sidebyside diff --git a/icuSources/i18n/usrchimp.h b/icuSources/i18n/usrchimp.h index 30683e5b..2f597e90 100644 --- a/icuSources/i18n/usrchimp.h +++ b/icuSources/i18n/usrchimp.h @@ -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;