• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10/ICU-531.30/icuSources/i18n/

Lines Matching defs:search

140 * @param strsrch string search data
282 * @param strsrch string search data
354 * @param strsrch string search data
534 * consideration. Forwards search will take the end accents into consideration
535 * for the default shift values and the backwards search will take the prefix
565 * @param strsrch string search data
574 UBreakIterator *breakiterator = strsrch->search->internalBreakIter;
596 * @param strsrch string search data
605 UBreakIterator *breakiterator = strsrch->search->breakIter;
626 const UChar *text = strsrch->search->text +
690 * Gets the next base character offset depending on the string search pattern
692 * @param strsrch string search data
694 * to search for.
702 int32_t textlength = strsrch->search->textLength;
706 const UChar *text = strsrch->search->text;
720 * @param text strsrch string search data
721 * @param textoffset start text position to do search
761 * @param strsrch string search data
767 strsrch->search->matchedIndex = USEARCH_DONE;
768 strsrch->search->matchedLength = 0;
769 if (strsrch->search->isForwardSearching) {
770 setColEIterOffset(strsrch->textIter, strsrch->search->textLength);
818 * @param strsrch string search data
835 const UChar *text = strsrch->search->text + start;
910 * @param strsrch string search data
949 // accent = (getFCD(strsrch->search->text, &temp,
950 // strsrch->search->textLength)
955 UBool accent = getFCD(strsrch->search->text, &temp,
956 strsrch->search->textLength) > 0xFF;
965 U16_BACK_1(strsrch->search->text, 0, temp);
966 if (getFCD(strsrch->search->text, &temp,
967 strsrch->search->textLength) & LAST_BYTE_MASK_) {
991 * @param strsrch string search data
1002 const UChar *text = strsrch->search->text;
1004 int32_t textlength = strsrch->search->textLength;
1065 * @param strsrch string search data
1083 UnicodeString(FALSE, strsrch->search->text + start, end - start), t2, status);
1093 * @param strsrch string search data
1103 int32_t lastmatchindex = strsrch->search->matchedIndex;
1108 if (strsrch->search->isForwardSearching) {
1114 if (!result && !strsrch->search->isOverlap) {
1115 if (strsrch->search->isForwardSearching) {
1116 result = start < lastmatchindex + strsrch->search->matchedLength;
1151 * @param strsrch string search data
1164 int32_t textlength = strsrch->search->textLength;
1167 const UChar *text = strsrch->search->text;
1175 // excess prefix characters has been included in the potential search
1238 * @param strsrch string search data
1241 * search offset.
1268 //Add breakiterator boundary check for primary strength search.
1269 if (!strsrch->search->breakIter && strsrch->strength == UCOL_PRIMARY) {
1274 strsrch->search->matchedIndex = start;
1275 strsrch->search->matchedLength = *textoffset - start;
1396 * pattern in string search data
1397 * @param strsrch string search data
1434 * @param strsrch string search match
1447 const UChar *text = strsrch->search->text;
1448 int32_t textlength = strsrch->search->textLength;
1493 strsrch->search->text + offset,
1542 * @param strsrch string search data
1566 * @param strsrch string search data
1577 const UChar *text = strsrch->search->text;
1699 * @param strsrch string search data
1710 const UChar *text = strsrch->search->text;
1732 // offset to the last base character in substring to search
1772 * Gets the previous base character offset depending on the string search
1774 * @param strsrch string search data
1784 const UChar *text = strsrch->search->text;
1786 if (getFCD(text, &offset, strsrch->search->textLength) >>
1801 * @param strsrch string search data
1814 int32_t textlength = strsrch->search->textLength;
1817 const UChar *text = strsrch->search->text;
1848 int32_t textlength = strsrch->search->textLength;
1898 * @param strsrch string search data
1901 * search offset.
1917 strsrch->search->matchedIndex = getPreviousUStringSearchBaseOffset(
1920 strsrch->search->matchedLength = *textoffset -
1921 strsrch->search->matchedIndex;
1937 *textoffset = getNextBaseOffset(strsrch->search->text, *textoffset,
1938 strsrch->search->textLength);
1942 strsrch->search->matchedIndex = start;
1943 strsrch->search->matchedLength = *textoffset - start;
1953 * @param text strsrch string search data
1954 * @param textoffset start text position to do search
1966 if (strsrch->search->isOverlap) {
1967 if (textoffset != strsrch->search->textLength) {
1999 * @param strsrch string search data
2011 int32_t textlength = strsrch->search->textLength;
2014 const UChar *text = strsrch->search->text;
2081 * @param strsrch string search data
2087 * search offset.
2111 *textoffset = getPreviousBaseOffset(strsrch->search->text,
2116 //Add breakiterator boundary check for primary strength search.
2117 if (!strsrch->search->breakIter && strsrch->strength == UCOL_PRIMARY) {
2121 strsrch->search->matchedIndex = *textoffset;
2122 strsrch->search->matchedLength = end - *textoffset;
2138 * @param strsrch string search match
2151 const UChar *text = strsrch->search->text;
2155 if (!(getFCD(text, &tempend, strsrch->search->textLength) &
2160 end = getNextBaseOffset(text, end, strsrch->search->textLength);
2195 strsrch->search->text + start,
2226 * @param strsrch string search data
2237 const UChar *text = strsrch->search->text;
2250 strsrch->search->textLength);
2362 * @param strsrch string search data
2373 const UChar *text = strsrch->search->text;
2375 int32_t textlength = strsrch->search->textLength;
2395 // offset to the last base character in substring to search
2439 * @param strsrch string search data
2451 int32_t textlength = strsrch->search->textLength;
2454 const UChar *text = strsrch->search->text;
2536 * @param strsrch string search data
2539 * search offset.
2555 strsrch->search->matchedIndex = *textoffset;
2556 strsrch->search->matchedLength =
2576 *textoffset = getPreviousBaseOffset(strsrch->search->text,
2581 strsrch->search->matchedIndex = *textoffset;
2582 strsrch->search->matchedLength = end - *textoffset;
2652 // string search does not really work when numeric collation is turned on
2697 result->search = (USearch *)uprv_malloc(sizeof(USearch));
2698 if (result->search == NULL) {
2704 result->search->text = text;
2705 result->search->textLength = textlength;
2712 result->search->breakIter = breakiter;
2714 result->search->internalBreakIter = ubrk_open(UBRK_CHARACTER, ucol_getLocaleByType(result->collator, ULOC_VALID_LOCALE, status), text, textlength, status);
2721 result->search->matchedLength = 0;
2722 result->search->matchedIndex = USEARCH_DONE;
2732 result->search->isOverlap = FALSE;
2733 result->search->isCanonicalMatch = FALSE;
2734 result->search->elementComparisonType = 0;
2735 result->search->isForwardSearching = TRUE;
2736 result->search->reset = TRUE;
2772 if (strsrch->search->internalBreakIter) {
2773 ubrk_close(strsrch->search->internalBreakIter);
2777 uprv_free(strsrch->search);
2807 if (isOutOfBounds(strsrch->search->textLength, position)) {
2813 strsrch->search->matchedIndex = USEARCH_DONE;
2814 strsrch->search->matchedLength = 0;
2815 strsrch->search->reset = FALSE;
2823 if (isOutOfBounds(strsrch->search->textLength, result)) {
2840 strsrch->search->isOverlap = (value == USEARCH_ON ? TRUE : FALSE);
2843 strsrch->search->isCanonicalMatch = (value == USEARCH_ON ? TRUE :
2848 strsrch->search->elementComparisonType = (int16_t)value;
2850 strsrch->search->elementComparisonType = 0;
2870 return (strsrch->search->isOverlap == TRUE ? USEARCH_ON :
2873 return (strsrch->search->isCanonicalMatch == TRUE ? USEARCH_ON :
2877 int16_t value = strsrch->search->elementComparisonType;
2897 return strsrch->search->matchedIndex;
2915 int32_t copylength = strsrch->search->matchedLength;
2916 int32_t copyindex = strsrch->search->matchedIndex;
2926 uprv_memcpy(result, strsrch->search->text + copyindex,
2930 strsrch->search->matchedLength, status);
2937 return strsrch->search->matchedLength;
2949 strsrch->search->breakIter = breakiter;
2951 ubrk_setText(breakiter, strsrch->search->text,
2952 strsrch->search->textLength, status);
2961 return strsrch->search->breakIter;
2982 strsrch->search->text = text;
2983 strsrch->search->textLength = textlength;
2985 strsrch->search->matchedIndex = USEARCH_DONE;
2986 strsrch->search->matchedLength = 0;
2987 strsrch->search->reset = TRUE;
2989 if (strsrch->search->breakIter != NULL) {
2990 ubrk_setText(strsrch->search->breakIter, text,
2993 ubrk_setText(strsrch->search->internalBreakIter, text, textlength, status);
3003 *length = strsrch->search->textLength;
3004 return strsrch->search->text;
3033 ubrk_close(strsrch->search->internalBreakIter);
3034 strsrch->search->internalBreakIter = ubrk_open(UBRK_CHARACTER, ucol_getLocaleByType(collator, ULOC_VALID_LOCALE, status),
3035 strsrch->search->text, strsrch->search->textLength, status);
3044 strsrch->search->text,
3045 strsrch->search->textLength,
3112 strsrch->search->isForwardSearching = TRUE;
3126 strsrch->search->isForwardSearching = TRUE;
3140 strsrch->search->isForwardSearching = FALSE;
3141 usearch_setOffset(strsrch, strsrch->search->textLength, status);
3154 strsrch->search->isForwardSearching = FALSE;
3168 * string to continue the search in. Imagine when we are in the middle of the
3193 USearch *search = strsrch->search;
3194 search->reset = FALSE;
3195 int32_t textlength = search->textLength;
3196 if (search->isForwardSearching) {
3199 || (!search->isOverlap &&
3201 (search->matchedIndex != USEARCH_DONE &&
3202 offset + search->matchedLength >= textlength)))) {
3209 (! search->isOverlap &&
3210 (search->matchedIndex != USEARCH_DONE &&
3211 offset + search->matchedLength > textlength))) {
3224 search->isForwardSearching = TRUE;
3225 if (search->matchedIndex != USEARCH_DONE) {
3228 return search->matchedIndex;
3234 if (search->matchedIndex == USEARCH_DONE) {
3235 search->matchedIndex = offset;
3238 U16_FWD_1(search->text, search->matchedIndex, textlength);
3241 search->matchedLength = 0;
3242 setColEIterOffset(strsrch->textIter, search->matchedIndex);
3244 if (search->matchedIndex == textlength) {
3245 search->matchedIndex = USEARCH_DONE;
3249 if (search->matchedLength > 0) {
3251 if (search->isOverlap) {
3256 offset + search->matchedLength, status);
3262 // note search->matchedIndex will always be set to something
3264 search->matchedIndex = offset - 1;
3267 if (search->isCanonicalMatch) {
3281 if (search->matchedIndex == USEARCH_DONE) {
3282 ucol_setOffset(strsrch->textIter, search->textLength, status);
3284 ucol_setOffset(strsrch->textIter, search->matchedIndex, status);
3288 return search->matchedIndex;
3299 USearch *search = strsrch->search;
3300 if (search->reset) {
3301 offset = search->textLength;
3302 search->isForwardSearching = FALSE;
3303 search->reset = FALSE;
3310 int32_t matchedindex = search->matchedIndex;
3311 if (search->isForwardSearching == TRUE) {
3317 search->isForwardSearching = FALSE;
3325 (!search->isOverlap &&
3335 // linear search will do the right thing
3345 search->matchedIndex =
3347 if (search->matchedIndex == 0) {
3352 U16_BACK_1(search->text, 0, search->matchedIndex);
3353 setColEIterOffset(strsrch->textIter, search->matchedIndex);
3355 search->matchedLength = 0;
3359 if (strsrch->search->isCanonicalMatch) {
3374 return search->matchedIndex;
3386 string search, hence all attributes in the collator should
3427 ucol_setText(strsrch->textIter, strsrch->search->text,
3428 strsrch->search->textLength,
3430 strsrch->search->matchedLength = 0;
3431 strsrch->search->matchedIndex = USEARCH_DONE;
3432 strsrch->search->isOverlap = FALSE;
3433 strsrch->search->isCanonicalMatch = FALSE;
3434 strsrch->search->elementComparisonType = 0;
3435 strsrch->search->isForwardSearching = TRUE;
3436 strsrch->search->reset = TRUE;
3458 // Some typical max values to make buffer size more reasonable for asymmetric search.
3485 if (ss->search->elementComparisonType != 0) {
3621 const UChar *text = strsrch->search->text;
3622 int32_t textLen = strsrch->search->textLength;
3658 UBreakIterator *breakiterator = strsrch->search->breakIter;
3661 breakiterator = strsrch->search->internalBreakIter;
3683 const UChar *text = strsrch->search->text;
3684 int32_t textLen = strsrch->search->textLength;
3709 UBreakIterator *breakiterator = strsrch->search->breakIter;
3712 breakiterator = strsrch->search->internalBreakIter;
3726 UBreakIterator *breakiterator = strsrch->search->breakIter;
3820 // TODO: reject search patterns beginning with a combining char.
3837 startIdx > strsrch->search->textLength ||
3900 UCompareCEsResult ceMatch = compareCE64s(targetCEI->ce, patCE, strsrch->search->elementComparisonType);
3947 if (strsrch->search->elementComparisonType == 0) {
3965 UCompareCEsResult ceMatch = compareCE64s(nextCEI->ce, patCE, strsrch->search->elementComparisonType);
4087 // TODO: reject search patterns beginning with a combining char.
4104 startIdx > strsrch->search->textLength ||
4126 if (startIdx < strsrch->search->textLength) {
4127 UBreakIterator *bi = strsrch->search->internalBreakIter;
4182 UCompareCEsResult ceMatch = compareCE64s(targetCEI->ce, patCE, strsrch->search->elementComparisonType);
4339 int32_t textlength = strsrch->search->textLength;
4360 // for example: search for pattern A in text \u00C0
4422 setColEIterOffset(coleiter, strsrch->search->matchedIndex);
4434 strsrch->search->matchedIndex = start;
4435 strsrch->search->matchedLength = end - start;
4453 int32_t textlength = strsrch->search->textLength;
4476 // for example: search for pattern A in text \u00C0
4537 setColEIterOffset(coleiter, strsrch->search->matchedIndex);
4549 strsrch->search->matchedIndex = start;
4550 strsrch->search->matchedLength = end - start;
4575 if (strsrch->search->matchedIndex != USEARCH_DONE) {
4576 textoffset = strsrch->search->matchedIndex;
4594 // characters. for example: search for pattern \u0300 in text
4663 if (strsrch->search->isOverlap) {
4664 if (strsrch->search->matchedIndex != USEARCH_DONE) {
4665 textOffset = strsrch->search->matchedIndex + strsrch->search->matchedLength - 1;
4694 strsrch->search->matchedIndex = start;
4695 strsrch->search->matchedLength = end - start;
4723 if (strsrch->search->matchedIndex != USEARCH_DONE) {
4724 textoffset = strsrch->search->matchedIndex;
4742 // characters. for example: search for pattern \u0300 in text
4816 if (strsrch->search->isOverlap) {
4817 if (strsrch->search->matchedIndex != USEARCH_DONE) {
4818 textOffset = strsrch->search->matchedIndex + strsrch->search->matchedLength - 1;
4847 strsrch->search->matchedIndex = start;
4848 strsrch->search->matchedLength = end - start;