/*
**********************************************************************
-* 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.
#if !UCONFIG_NO_COLLATION
+#include "unicode/normalizer2.h"
#include "unicode/ucol.h"
#include "unicode/ucoleitr.h"
#include "unicode/ubrk.h"
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;
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;
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;