Home | History | Annotate | Download | only in i18n

Lines Matching defs:search

148 * @param strsrch string search data
290 * @param strsrch string search data
365 * @param strsrch string search data
547 * consideration. Forwards search will take the end accents into consideration
548 * for the default shift values and the backwards search will take the prefix
578 * @param strsrch string search data
587 UBreakIterator *breakiterator = strsrch->search->internalBreakIter;
609 * @param strsrch string search data
618 UBreakIterator *breakiterator = strsrch->search->breakIter;
639 const UChar *text = strsrch->search->text +
703 * Gets the next base character offset depending on the string search pattern
705 * @param strsrch string search data
707 * to search for.
715 int32_t textlength = strsrch->search->textLength;
719 const UChar *text = strsrch->search->text;
733 * @param text strsrch string search data
734 * @param textoffset start text position to do search
774 * @param strsrch string search data
780 strsrch->search->matchedIndex = USEARCH_DONE;
781 strsrch->search->matchedLength = 0;
782 if (strsrch->search->isForwardSearching) {
783 setColEIterOffset(strsrch->textIter, strsrch->search->textLength);
831 * @param strsrch string search data
848 const UChar *text = strsrch->search->text + start;
923 * @param strsrch string search data
962 // accent = (getFCD(strsrch->search->text, &temp,
963 // strsrch->search->textLength)
968 UBool accent = getFCD(strsrch->search->text, &temp,
969 strsrch->search->textLength) > 0xFF;
978 U16_BACK_1(strsrch->search->text, 0, temp);
979 if (getFCD(strsrch->search->text, &temp,
980 strsrch->search->textLength) & LAST_BYTE_MASK_) {
1004 * @param strsrch string search data
1015 const UChar *text = strsrch->search->text;
1017 int32_t textlength = strsrch->search->textLength;
1078 * @param strsrch string search data
1096 UnicodeString(FALSE, strsrch->search->text + start, end - start), t2, status);
1106 * @param strsrch string search data
1116 int32_t lastmatchindex = strsrch->search->matchedIndex;
1121 if (strsrch->search->isForwardSearching) {
1127 if (!result && !strsrch->search->isOverlap) {
1128 if (strsrch->search->isForwardSearching) {
1129 result = start < lastmatchindex + strsrch->search->matchedLength;
1164 * @param strsrch string search data
1177 int32_t textlength = strsrch->search->textLength;
1180 const UChar *text = strsrch->search->text;
1188 // excess prefix characters has been included in the potential search
1251 * @param strsrch string search data
1254 * search offset.
1281 //Add breakiterator boundary check for primary strength search.
1282 if (!strsrch->search->breakIter && strsrch->strength == UCOL_PRIMARY) {
1287 strsrch->search->matchedIndex = start;
1288 strsrch->search->matchedLength = *textoffset - start;
1409 * pattern in string search data
1410 * @param strsrch string search data
1447 * @param strsrch string search match
1460 const UChar *text = strsrch->search->text;
1461 int32_t textlength = strsrch->search->textLength;
1506 strsrch->search->text + offset,
1555 * @param strsrch string search data
1579 * @param strsrch string search data
1590 const UChar *text = strsrch->search->text;
1712 * @param strsrch string search data
1723 const UChar *text = strsrch->search->text;
1745 // offset to the last base character in substring to search
1785 * Gets the previous base character offset depending on the string search
1787 * @param strsrch string search data
1797 const UChar *text = strsrch->search->text;
1799 if (getFCD(text, &offset, strsrch->search->textLength) >>
1814 * @param strsrch string search data
1827 int32_t textlength = strsrch->search->textLength;
1830 const UChar *text = strsrch->search->text;
1861 int32_t textlength = strsrch->search->textLength;
1911 * @param strsrch string search data
1914 * search offset.
1930 strsrch->search->matchedIndex = getPreviousUStringSearchBaseOffset(
1933 strsrch->search->matchedLength = *textoffset -
1934 strsrch->search->matchedIndex;
1950 *textoffset = getNextBaseOffset(strsrch->search->text, *textoffset,
1951 strsrch->search->textLength);
1955 strsrch->search->matchedIndex = start;
1956 strsrch->search->matchedLength = *textoffset - start;
1966 * @param text strsrch string search data
1967 * @param textoffset start text position to do search
1979 if (strsrch->search->isOverlap) {
1980 if (textoffset != strsrch->search->textLength) {
2012 * @param strsrch string search data
2024 int32_t textlength = strsrch->search->textLength;
2027 const UChar *text = strsrch->search->text;
2094 * @param strsrch string search data
2100 * search offset.
2124 *textoffset = getPreviousBaseOffset(strsrch->search->text,
2129 //Add breakiterator boundary check for primary strength search.
2130 if (!strsrch->search->breakIter && strsrch->strength == UCOL_PRIMARY) {
2134 strsrch->search->matchedIndex = *textoffset;
2135 strsrch->search->matchedLength = end - *textoffset;
2151 * @param strsrch string search match
2164 const UChar *text = strsrch->search->text;
2168 if (!(getFCD(text, &tempend, strsrch->search->textLength) &
2173 end = getNextBaseOffset(text, end, strsrch->search->textLength);
2208 strsrch->search->text + start,
2239 * @param strsrch string search data
2250 const UChar *text = strsrch->search->text;
2263 strsrch->search->textLength);
2375 * @param strsrch string search data
2386 const UChar *text = strsrch->search->text;
2388 int32_t textlength = strsrch->search->textLength;
2408 // offset to the last base character in substring to search
2452 * @param strsrch string search data
2464 int32_t textlength = strsrch->search->textLength;
2467 const UChar *text = strsrch->search->text;
2549 * @param strsrch string search data
2552 * search offset.
2568 strsrch->search->matchedIndex = *textoffset;
2569 strsrch->search->matchedLength =
2589 *textoffset = getPreviousBaseOffset(strsrch->search->text,
2594 strsrch->search->matchedIndex = *textoffset;
2595 strsrch->search->matchedLength = end - *textoffset;
2665 // string search does not really work when numeric collation is turned on
2710 result->search = (USearch *)uprv_malloc(sizeof(USearch));
2711 if (result->search == NULL) {
2717 result->search->text = text;
2718 result->search->textLength = textlength;
2725 result->search->breakIter = breakiter;
2727 result->search->internalBreakIter = ubrk_open(UBRK_CHARACTER, ucol_getLocaleByType(result->collator, ULOC_VALID_LOCALE, status), text, textlength, status);
2734 result->search->matchedLength = 0;
2735 result->search->matchedIndex = USEARCH_DONE;
2744 result->search->isOverlap = FALSE;
2745 result->search->isCanonicalMatch = FALSE;
2746 result->search->elementComparisonType = 0;
2747 result->search->isForwardSearching = TRUE;
2748 result->search->reset = TRUE;
2783 if (strsrch->search->internalBreakIter) {
2784 ubrk_close(strsrch->search->internalBreakIter);
2788 uprv_free(strsrch->search);
2800 if (isOutOfBounds(strsrch->search->textLength, position)) {
2806 strsrch->search->matchedIndex = USEARCH_DONE;
2807 strsrch->search->matchedLength = 0;
2808 strsrch->search->reset = FALSE;
2816 if (isOutOfBounds(strsrch->search->textLength, result)) {
2833 strsrch->search->isOverlap = (value == USEARCH_ON ? TRUE : FALSE);
2836 strsrch->search->isCanonicalMatch = (value == USEARCH_ON ? TRUE :
2841 strsrch->search->elementComparisonType = (int16_t)value;
2843 strsrch->search->elementComparisonType = 0;
2863 return (strsrch->search->isOverlap == TRUE ? USEARCH_ON :
2866 return (strsrch->search->isCanonicalMatch == TRUE ? USEARCH_ON :
2870 int16_t value = strsrch->search->elementComparisonType;
2890 return strsrch->search->matchedIndex;
2908 int32_t copylength = strsrch->search->matchedLength;
2909 int32_t copyindex = strsrch->search->matchedIndex;
2919 uprv_memcpy(result, strsrch->search->text + copyindex,
2923 strsrch->search->matchedLength, status);
2930 return strsrch->search->matchedLength;
2942 strsrch->search->breakIter = breakiter;
2944 ubrk_setText(breakiter, strsrch->search->text,
2945 strsrch->search->textLength, status);
2954 return strsrch->search->breakIter;
2975 strsrch->search->text = text;
2976 strsrch->search->textLength = textlength;
2978 strsrch->search->matchedIndex = USEARCH_DONE;
2979 strsrch->search->matchedLength = 0;
2980 strsrch->search->reset = TRUE;
2982 if (strsrch->search->breakIter != NULL) {
2983 ubrk_setText(strsrch->search->breakIter, text,
2986 ubrk_setText(strsrch->search->internalBreakIter, text, textlength, status);
2996 *length = strsrch->search->textLength;
2997 return strsrch->search->text;
3021 ubrk_close(strsrch->search->internalBreakIter);
3022 strsrch->search->internalBreakIter = ubrk_open(UBRK_CHARACTER, ucol_getLocaleByType(collator, ULOC_VALID_LOCALE, status),
3023 strsrch->search->text, strsrch->search->textLength, status);
3036 uprv_init_collIterate(collator, strsrch->search->text,
3037 strsrch->search->textLength,
3104 strsrch->search->isForwardSearching = TRUE;
3118 strsrch->search->isForwardSearching = TRUE;
3132 strsrch->search->isForwardSearching = FALSE;
3133 usearch_setOffset(strsrch, strsrch->search->textLength, status);
3146 strsrch->search->isForwardSearching = FALSE;
3160 * string to continue the search in. Imagine when we are in the middle of the
3185 USearch *search = strsrch->search;
3186 search->reset = FALSE;
3187 int32_t textlength = search->textLength;
3188 if (search->isForwardSearching) {
3191 || (!search->isOverlap &&
3193 (search->matchedIndex != USEARCH_DONE &&
3194 offset + search->matchedLength >= textlength)))) {
3201 (! search->isOverlap &&
3202 (search->matchedIndex != USEARCH_DONE &&
3203 offset + search->matchedLength > textlength))) {
3216 search->isForwardSearching = TRUE;
3217 if (search->matchedIndex != USEARCH_DONE) {
3220 return search->matchedIndex;
3226 if (search->matchedIndex == USEARCH_DONE) {
3227 search->matchedIndex = offset;
3230 U16_FWD_1(search->text, search->matchedIndex, textlength);
3233 search->matchedLength = 0;
3234 setColEIterOffset(strsrch->textIter, search->matchedIndex);
3236 if (search->matchedIndex == textlength) {
3237 search->matchedIndex = USEARCH_DONE;
3241 if (search->matchedLength > 0) {
3243 if (search->isOverlap) {
3248 offset + search->matchedLength, status);
3254 // note search->matchedIndex will always be set to something
3256 search->matchedIndex = offset - 1;
3259 if (search->isCanonicalMatch) {
3273 if (search->matchedIndex == USEARCH_DONE) {
3274 ucol_setOffset(strsrch->textIter, search->textLength, status);
3276 ucol_setOffset(strsrch->textIter, search->matchedIndex, status);
3280 return search->matchedIndex;
3291 USearch *search = strsrch->search;
3292 if (search->reset) {
3293 offset = search->textLength;
3294 search->isForwardSearching = FALSE;
3295 search->reset = FALSE;
3302 int32_t matchedindex = search->matchedIndex;
3303 if (search->isForwardSearching == TRUE) {
3309 search->isForwardSearching = FALSE;
3317 (!search->isOverlap &&
3327 // linear search will do the right thing
3337 search->matchedIndex =
3339 if (search->matchedIndex == 0) {
3344 U16_BACK_1(search->text, 0, search->matchedIndex);
3345 setColEIterOffset(strsrch->textIter, search->matchedIndex);
3347 search->matchedLength = 0;
3351 if (strsrch->search->isCanonicalMatch) {
3366 return search->matchedIndex;
3378 string search, hence all attributes in the collator should
3421 uprv_init_collIterate(strsrch->collator, strsrch->search->text,
3422 strsrch->search->textLength,
3425 strsrch->search->matchedLength = 0;
3426 strsrch->search->matchedIndex = USEARCH_DONE;
3427 strsrch->search->isOverlap = FALSE;
3428 strsrch->search->isCanonicalMatch = FALSE;
3429 strsrch->search->elementComparisonType = 0;
3430 strsrch->search->isForwardSearching = TRUE;
3431 strsrch->search->reset = TRUE;
3453 // Some typical max values to make buffer size more reasonable for asymmetric search.
3480 if (ss->search->elementComparisonType != 0) {
3614 const UChar *text = strsrch->search->text;
3615 int32_t textLen = strsrch->search->textLength;
3651 UBreakIterator *breakiterator = strsrch->search->breakIter;
3654 breakiterator = strsrch->search->internalBreakIter;
3676 const UChar *text = strsrch->search->text;
3677 int32_t textLen = strsrch->search->textLength;
3702 UBreakIterator *breakiterator = strsrch->search->breakIter;
3705 breakiterator = strsrch->search->internalBreakIter;
3719 UBreakIterator *breakiterator = strsrch->search->breakIter;
3813 // TODO: reject search patterns beginning with a combining char.
3830 startIdx > strsrch->search->textLength ||
3893 UCompareCEsResult ceMatch = compareCE64s(targetCEI->ce, patCE, strsrch->search->elementComparisonType);
3940 if (strsrch->search->elementComparisonType == 0) {
3958 UCompareCEsResult ceMatch = compareCE64s(nextCEI->ce, patCE, strsrch->search->elementComparisonType);
4080 // TODO: reject search patterns beginning with a combining char.
4097 startIdx > strsrch->search->textLength ||
4119 if (startIdx < strsrch->search->textLength) {
4120 UBreakIterator *bi = strsrch->search->internalBreakIter;
4175 UCompareCEsResult ceMatch = compareCE64s(targetCEI->ce, patCE, strsrch->search->elementComparisonType);
4332 int32_t textlength = strsrch->search->textLength;
4353 // for example: search for pattern A in text \u00C0
4415 setColEIterOffset(coleiter, strsrch->search->matchedIndex);
4427 strsrch->search->matchedIndex = start;
4428 strsrch->search->matchedLength = end - start;
4446 int32_t textlength = strsrch->search->textLength;
4469 // for example: search for pattern A in text \u00C0
4530 setColEIterOffset(coleiter, strsrch->search->matchedIndex);
4542 strsrch->search->matchedIndex = start;
4543 strsrch->search->matchedLength = end - start;
4568 if (strsrch->search->matchedIndex != USEARCH_DONE) {
4569 textoffset = strsrch->search->matchedIndex;
4587 // characters. for example: search for pattern \u0300 in text
4656 if (strsrch->search->isOverlap) {
4657 if (strsrch->search->matchedIndex != USEARCH_DONE) {
4658 textOffset = strsrch->search->matchedIndex + strsrch->search->matchedLength - 1;
4683 strsrch->search->matchedIndex = start;
4684 strsrch->search->matchedLength = end - start;
4712 if (strsrch->search->matchedIndex != USEARCH_DONE) {
4713 textoffset = strsrch->search->matchedIndex;
4731 // characters. for example: search for pattern \u0300 in text
4805 if (strsrch->search->isOverlap) {
4806 if (strsrch->search->matchedIndex != USEARCH_DONE) {
4807 textOffset = strsrch->search->matchedIndex + strsrch->search->matchedLength - 1;
4832 strsrch->search->matchedIndex = start;
4833 strsrch->search->matchedLength = end - start;