| Index: source/i18n/unicode/usearch.h
|
| diff --git a/source/i18n/unicode/usearch.h b/source/i18n/unicode/usearch.h
|
| index 9f305eb87204138b3dc51584e968ebb3f07719d1..75521f528a410fae192358b070f38590d6626a3d 100644
|
| --- a/source/i18n/unicode/usearch.h
|
| +++ b/source/i18n/unicode/usearch.h
|
| @@ -1,6 +1,6 @@
|
| /*
|
| **********************************************************************
|
| -* Copyright (C) 2001-2011 IBM and others. All rights reserved.
|
| +* Copyright (C) 2001-2011,2014 IBM and others. All rights reserved.
|
| **********************************************************************
|
| * Date Name Description
|
| * 06/28/2001 synwee Creation.
|
| @@ -30,11 +30,11 @@
|
| * See the <a href="http://source.icu-project.org/repos/icu/icuhtml/trunk/design/collation/ICU_collation_design.htm">
|
| * "ICU Collation Design Document"</a> for more information.
|
| * <p>
|
| - * The algorithm implemented is a modified form of the Boyer Moore's search.
|
| - * For more information see
|
| + * The implementation may use a linear search or a modified form of the Boyer-Moore
|
| + * search; for more information on the latter see
|
| * <a href="http://icu-project.org/docs/papers/efficient_text_searching_in_java.html">
|
| * "Efficient Text Searching in Java"</a>, published in <i>Java Report</i>
|
| - * in February, 1999, for further information on the algorithm.
|
| + * in February, 1999.
|
| * <p>
|
| * There are 2 match options for selection:<br>
|
| * Let S' be the sub-string of a text string S between the offsets start and
|
| @@ -91,6 +91,11 @@
|
| * for the pattern "abab" in the text "ababab", where else mutually
|
| * exclusive matches only produce the result of 0.
|
| * <p>
|
| + * Options are also provided to implement "asymmetric search" as described in
|
| + * <a href="http://www.unicode.org/reports/tr10/#Asymmetric_Search">
|
| + * UTS #10 Unicode Collation Algorithm</a>, specifically the USearchAttribute
|
| + * USEARCH_ELEMENT_COMPARISON and its values.
|
| + * <p>
|
| * Though collator attributes will be taken into consideration while
|
| * performing matches, there are no APIs here for setting and getting the
|
| * attributes. These attributes can be set by getting the collator
|
| @@ -154,32 +159,60 @@ typedef struct UStringSearch UStringSearch;
|
| * @stable ICU 2.4
|
| */
|
| typedef enum {
|
| - /** Option for overlapping matches */
|
| - USEARCH_OVERLAP,
|
| + /**
|
| + * Option for overlapping matches
|
| + * @stable ICU 2.4
|
| + */
|
| + USEARCH_OVERLAP = 0,
|
| +#ifndef U_HIDE_DEPRECATED_API
|
| /**
|
| - * Option for canonical matches. option 1 in header documentation.
|
| - * The default value will be USEARCH_OFF
|
| + * Option for canonical matches; option 1 in header documentation.
|
| + * The default value will be USEARCH_OFF.
|
| + * Note: Setting this option to USEARCH_ON currently has no effect on
|
| + * search behavior, and this option is deprecated. Instead, to control
|
| + * canonical match behavior, you must set UCOL_NORMALIZATION_MODE
|
| + * appropriately (to UCOL_OFF or UCOL_ON) in the UCollator used by
|
| + * the UStringSearch object.
|
| + * @see usearch_openFromCollator
|
| + * @see usearch_getCollator
|
| + * @see usearch_setCollator
|
| + * @see ucol_getAttribute
|
| + * @deprecated ICU 53
|
| */
|
| - USEARCH_CANONICAL_MATCH,
|
| + USEARCH_CANONICAL_MATCH = 1,
|
| +#endif /* U_HIDE_DEPRECATED_API */
|
| /**
|
| * Option to control how collation elements are compared.
|
| * The default value will be USEARCH_STANDARD_ELEMENT_COMPARISON.
|
| * @stable ICU 4.4
|
| */
|
| - USEARCH_ELEMENT_COMPARISON,
|
| + USEARCH_ELEMENT_COMPARISON = 2,
|
|
|
| - USEARCH_ATTRIBUTE_COUNT
|
| + /**
|
| + * Count of attribute types
|
| + * @stable ICU 2.4
|
| + */
|
| + USEARCH_ATTRIBUTE_COUNT = 3
|
| } USearchAttribute;
|
|
|
| /**
|
| * @stable ICU 2.4
|
| */
|
| typedef enum {
|
| - /** Default value for any USearchAttribute */
|
| + /**
|
| + * Default value for any USearchAttribute
|
| + * @stable ICU 2.4
|
| + */
|
| USEARCH_DEFAULT = -1,
|
| - /** Value for USEARCH_OVERLAP and USEARCH_CANONICAL_MATCH */
|
| + /**
|
| + * Value for USEARCH_OVERLAP and USEARCH_CANONICAL_MATCH
|
| + * @stable ICU 2.4
|
| + */
|
| USEARCH_OFF,
|
| - /** Value for USEARCH_OVERLAP and USEARCH_CANONICAL_MATCH */
|
| + /**
|
| + * Value for USEARCH_OVERLAP and USEARCH_CANONICAL_MATCH
|
| + * @stable ICU 2.4
|
| + */
|
| USEARCH_ON,
|
| /**
|
| * Value (default) for USEARCH_ELEMENT_COMPARISON;
|
| @@ -199,6 +232,11 @@ typedef enum {
|
| * the pattern will match a plain e or an e with any diacritic in the
|
| * searched text, but an e with diacritic in the pattern will only
|
| * match an e with the same diacritic in the searched text.
|
| + *
|
| + * This supports "asymmetric search" as described in
|
| + * <a href="http://www.unicode.org/reports/tr10/#Asymmetric_Search">
|
| + * UTS #10 Unicode Collation Algorithm</a>.
|
| + *
|
| * @stable ICU 4.4
|
| */
|
| USEARCH_PATTERN_BASE_WEIGHT_IS_WILDCARD,
|
| @@ -213,10 +251,21 @@ typedef enum {
|
| * in the pattern will match a plain e or an e with any diacritic in the
|
| * searched text, but an e with diacritic in the pattern will only
|
| * match an e with the same diacritic or a plain e in the searched text.
|
| + *
|
| + * This option is similar to "asymmetric search" as described in
|
| + * <a href="http://www.unicode.org/reports/tr10/#Asymmetric_Search">
|
| + * UTS #10 Unicode Collation Algorithm</a, but also allows unmarked
|
| + * characters in the searched text to match marked or unmarked versions of
|
| + * that character in the pattern.
|
| + *
|
| * @stable ICU 4.4
|
| */
|
| USEARCH_ANY_BASE_WEIGHT_IS_WILDCARD,
|
|
|
| + /**
|
| + * Count of attribute values
|
| + * @stable ICU 2.4
|
| + */
|
| USEARCH_ATTRIBUTE_VALUE_COUNT
|
| } USearchAttributeValue;
|
|
|
|
|