Go to the documentation of this file.
15 #if !UCONFIG_NO_COLLATION
101 UCOL_CE_STRENGTH_LIMIT,
128 #ifndef U_HIDE_DEPRECATED_API
201 #ifndef U_HIDE_DEPRECATED_API
311 #ifndef U_HIDE_DEPRECATED_API
435 #ifndef U_HIDE_DEPRECATED_API
476 #ifndef U_HIDE_DEPRECATED_API
509 USet *contractions,
USet *expansions,
525 #if U_SHOW_CPLUSPLUS_API
562 int32_t sourceLength,
564 int32_t targetLength);
588 int32_t sourceLength,
590 int32_t targetLength,
609 const UChar *source, int32_t sourceLength,
610 const UChar *target, int32_t targetLength);
628 const UChar *source, int32_t sourceLength,
629 const UChar *target, int32_t targetLength);
647 const UChar *source, int32_t sourceLength,
648 const UChar *target, int32_t targetLength);
712 int32_t destCapacity,
756 const int32_t* reorderCodes,
757 int32_t reorderCodesLength,
782 int32_t destCapacity,
801 int32_t resultLength,
827 #if !UCONFIG_NO_SERVICE
921 const char* keyword,
const char* locale,
936 #ifndef U_HIDE_DEPRECATED_API
1017 const UChar *source,
1018 int32_t sourceLength,
1020 int32_t resultLength);
1047 uint8_t *dest, int32_t count,
1064 #ifndef U_HIDE_DEPRECATED_API
1112 int32_t sourceLength,
1114 uint32_t noOfLevels,
1116 int32_t resultLength,
1189 const uint8_t *src2, int32_t src2Length,
1190 uint8_t *dest, int32_t destCapacity);
1249 #ifndef U_HIDE_DEPRECATED_API
1272 const UChar *varTop, int32_t len,
1289 #ifndef U_HIDE_DEPRECATED_API
1334 int32_t *pBufferSize,
1337 #ifndef U_HIDE_DEPRECATED_API
1342 #define U_COL_SAFECLONE_BUFFERSIZE 1
1364 #ifndef U_HIDE_DEPRECATED_API
1413 #ifndef U_HIDE_INTERNAL_API
1452 UBool forceDefaults,
1470 uint8_t *buffer, int32_t capacity,
Identical collation strength.
Quaternary collation strength.
int32_t ucol_getUnsafeSet(const UCollator *coll, USet *unsafe, UErrorCode *status)
Calculates the set of unsafe code points, given a collator.
C API: Parse Error Information.
UCollationResult ucol_strcollUTF8(const UCollator *coll, const char *source, int32_t sourceLength, const char *target, int32_t targetLength, UErrorCode *status)
Compare two strings in UTF-8.
Characters with the space property.
UColAttribute
Attributes that collation service understands.
void ucol_restoreVariableTop(UCollator *coll, const uint32_t varTop, UErrorCode *status)
Sets the variable top to the specified primary weight.
Basic definitions for ICU, for both C and C++ APIs.
int32_t ucol_normalizeShortDefinitionString(const char *source, char *destination, int32_t capacity, UParseError *parseError, UErrorCode *status)
Verifies and normalizes short definition string.
C API: Unicode Script Information.
UCollator * ucol_openRules(const UChar *rules, int32_t rulesLength, UColAttributeValue normalizationMode, UCollationStrength strength, UParseError *parseError, UErrorCode *status)
Produce a UCollator instance according to the rules supplied.
accepted by most attributes
UBool ucol_greater(const UCollator *coll, const UChar *source, int32_t sourceLength, const UChar *target, int32_t targetLength)
Determine if one string is greater than another.
int8_t UBool
The ICU boolean type.
An alias for UCOL_NORMALIZATION_MODE attribute.
Characters with the digit property.
ULocDataLocaleType
Constants for *_getLocale() Allow user to select whether she wants information on requested,...
UEnumeration * ucol_getKeywords(UErrorCode *status)
Create a string enumerator of all possible keywords that are relevant to collation.
One more than the highest normal UColAttribute value.
UColRuleOption
Options for retrieving the rule string.
Primary collation strength.
int32_t ucol_getDisplayName(const char *objLoc, const char *dispLoc, UChar *result, int32_t resultLength, UErrorCode *status)
Get the display name for a UCollator.
UCollationStrength ucol_getStrength(const UCollator *coll)
Get the collation strength used in a UCollator.
#define U_DEPRECATED
This is used to declare a function as a deprecated public ICU C API
UCollationResult ucol_strcoll(const UCollator *coll, const UChar *source, int32_t sourceLength, const UChar *target, int32_t targetLength)
Compare two strings.
const char * ucol_getLocale(const UCollator *coll, ULocDataLocaleType type, UErrorCode *status)
gets the locale name of the collator.
UEnumeration * ucol_openAvailableLocales(UErrorCode *status)
Create a string enumerator of all locales for which a valid collator may be opened.
One more than the highest normal UColAttributeValue value.
int32_t ucol_nextSortKeyPart(const UCollator *coll, UCharIterator *iter, uint32_t state[2], uint8_t *dest, int32_t count, UErrorCode *status)
Gets the next count bytes of a sort key.
Characters with the currency property.
Characters with the symbol property.
UColAttributeValue
Enum containing attribute values for controling collation behavior.
const char * ucol_getAvailable(int32_t localeIndex)
Get a locale for which collation rules are available.
UCollationResult
UCOL_LESS is returned if source string is compared to be less than target string in the ucol_strcoll(...
A UParseError struct is used to returned detailed information about parsing errors.
Secondary collation strength.
A special reordering code that is used to specify all other codes used for reordering except for the ...
void ucol_close(UCollator *coll)
Close a UCollator.
UCollationResult ucol_strcollIter(const UCollator *coll, UCharIterator *sIter, UCharIterator *tIter, UErrorCode *status)
Compare two UTF-8 encoded trings.
void ucol_setAttribute(UCollator *coll, UColAttribute attr, UColAttributeValue value, UErrorCode *status)
Universal attribute setter.
int32_t ucol_getContractions(const UCollator *coll, USet *conts, UErrorCode *status)
Get a set containing the contractions defined by the collator.
Controls the ordering of upper and lower case letters.
void ucol_getVersion(const UCollator *coll, UVersionInfo info)
Gets the version information for a Collator.
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers,...
UCollator * ucol_openBinary(const uint8_t *bin, int32_t length, const UCollator *base, UErrorCode *status)
Opens a collator from a collator binary image created using ucol_cloneBinary.
uint32_t ucol_setVariableTop(UCollator *coll, const UChar *varTop, int32_t len, UErrorCode *status)
Sets the variable top to the primary weight of the specified string.
UEnumeration * ucol_getKeywordValuesForLocale(const char *key, const char *locale, UBool commonlyUsed, UErrorCode *status)
Given a key and a locale, returns an array of string values in a preferred order that would make a di...
Valid for UCOL_ALTERNATE_HANDLING.
A special reordering code that is used to specify the default reordering codes for a locale.
Default collation strength.
#define U_INTERNAL
This is used to declare a function as an internal ICU C API
Valid for UCOL_CASE_FIRST - lower case sorts before upper case.
One more than the highest normal UColBoundMode value.
UColBoundMode
enum that is taken by ucol_getBound API See below for explanation do not change the values assigned...
UEnumeration * ucol_getKeywordValues(const char *keyword, UErrorCode *status)
Given a keyword, create a string enumeration of all values for that keyword that are currently in use...
UCollator * ucol_open(const char *loc, UErrorCode *status)
Open a UCollator for comparing strings.
int32_t ucol_getReorderCodes(const UCollator *coll, int32_t *dest, int32_t destCapacity, UErrorCode *pErrorCode)
Retrieves the reordering codes for this collator.
struct UCollator UCollator
structure representing a collator object instance
UColReorderCode ucol_getMaxVariable(const UCollator *coll)
Returns the maximum reordering group whose characters are affected by UCOL_ALTERNATE_HANDLING.
Characters with the punctuation property.
int32_t ucol_getBound(const uint8_t *source, int32_t sourceLength, UColBoundMode boundType, uint32_t noOfLevels, uint8_t *result, int32_t resultLength, UErrorCode *status)
Produce a bound for a given sortkey and a number of levels.
UCollator * ucol_openFromShortString(const char *definition, UBool forceDefaults, UParseError *parseError, UErrorCode *status)
Open a collator defined by a short form string.
int32_t ucol_getRulesEx(const UCollator *coll, UColRuleOption delta, UChar *buffer, int32_t bufferLen)
Returns current rules.
A special reordering code that is used to specify no reordering codes.
int32_t ucol_getShortDefinitionString(const UCollator *coll, const char *locale, char *buffer, int32_t capacity, UErrorCode *status)
Get the short definition string for a collator.
const UChar * ucol_getRules(const UCollator *coll, int32_t *length)
Get the collation tailoring rules from a UCollator.
Attribute for handling variable elements.
int32_t ucol_cloneBinary(const UCollator *coll, uint8_t *buffer, int32_t capacity, UErrorCode *status)
Creates a binary image of a collator.
#define U_DEFINE_LOCAL_OPEN_POINTER(LocalPointerClassName, Type, closeFunction)
int32_t ucol_getFunctionalEquivalent(char *result, int32_t resultCapacity, const char *keyword, const char *locale, UBool *isAvailable, UErrorCode *status)
Return the functionally equivalent locale for the specified input locale, with respect to given keywo...
int32_t ucol_countAvailable(void)
Determine how many locales have collation rules available.
When turned on, this attribute positions Hiragana before all non-ignorables on quaternary level Thi...
void ucol_setStrength(UCollator *coll, UCollationStrength strength)
Set the collation strength used in a UCollator.
Turn the feature off - works for UCOL_FRENCH_COLLATION, UCOL_CASE_LEVEL, UCOL_HIRAGANA_QUATERNARY_MOD...
int32_t ucol_mergeSortkeys(const uint8_t *src1, int32_t src1Length, const uint8_t *src2, int32_t src2Length, uint8_t *dest, int32_t destCapacity)
Merges two sort keys.
C API: Unicode Normalization.
UCollator * ucol_safeClone(const UCollator *coll, void *stackBuffer, int32_t *pBufferSize, UErrorCode *status)
Thread safe cloning operation.
C API for code unit iteration.
upper bound that will match strings of exact size
Attribute for direction of secondary weights - used in Canadian French.
When turned on, this attribute makes substrings of digits sort according to their numeric values.
C++ API: "Smart pointers" for use with and in ICU4C C++ code.
One more than the highest normal UColReorderCode value.
void ucol_setMaxVariable(UCollator *coll, UColReorderCode group, UErrorCode *pErrorCode)
Sets the variable top to the top of the specified reordering group.
Controls whether an extra case level (positioned before the third level) is generated or not.
Tertiary collation strength.
#define U_STABLE
This is used to declare a function as a stable public ICU C API.
Retrieves the "UCA rules" concatenated with the tailoring rules.
uint32_t ucol_getVariableTop(const UCollator *coll, UErrorCode *status)
Gets the variable top value of a Collator.
upper case sorts before lower case
The first entry in the enumeration of reordering groups.
UColAttributeValue ucol_getAttribute(const UCollator *coll, UColAttribute attr, UErrorCode *status)
Universal attribute getter.
void ucol_getUCAVersion(const UCollator *coll, UVersionInfo info)
Gets the UCA version information for a Collator.
uint8_t UVersionInfo[U_MAX_VERSION_LENGTH]
The binary form of a version on ICU APIs is an array of 4 uint8_t.
int32_t ucol_getSortKey(const UCollator *coll, const UChar *source, int32_t sourceLength, uint8_t *result, int32_t resultLength)
Get a sort key for a string from a UCollator.
UBool ucol_greaterOrEqual(const UCollator *coll, const UChar *source, int32_t sourceLength, const UChar *target, int32_t targetLength)
Determine if one string is greater than or equal to another.
struct UEnumeration UEnumeration
structure representing an enumeration object instance
Turn the feature on - works for UCOL_FRENCH_COLLATION, UCOL_CASE_LEVEL, UCOL_HIRAGANA_QUATERNARY_MODE...
void ucol_prepareShortStringOpen(const char *definition, UBool forceDefaults, UParseError *parseError, UErrorCode *status)
Touches all resources needed for instantiating a collator from a short string definition,...
UBool ucol_equal(const UCollator *coll, const UChar *source, int32_t sourceLength, const UChar *target, int32_t targetLength)
Compare two strings for equality.
#define U_NAMESPACE_BEGIN
Retrieves the tailoring rules only.
int32_t ucol_getEquivalentReorderCodes(int32_t reorderCode, int32_t *dest, int32_t destCapacity, UErrorCode *pErrorCode)
Retrieves the reorder codes that are grouped with the given reorder code.
struct USet USet
USet is the C API type corresponding to C++ class UnicodeSet.
const char * ucol_getLocaleByType(const UCollator *coll, ULocDataLocaleType type, UErrorCode *status)
gets the locale name of the collator.
upper bound that will match all the strings that have the same initial substring as the given string
Controls whether the normalization check and necessary normalizations are performed.
void ucol_getContractionsAndExpansions(const UCollator *coll, USet *contractions, USet *expansions, UBool addPrefixes, UErrorCode *status)
Get a set containing the expansions defined by the collator.
UColReorderCode
Enum containing the codes for reordering segments of the collation table that are not script codes.
USet * ucol_getTailoredSet(const UCollator *coll, UErrorCode *status)
Get a Unicode set that contains all the characters and sequences tailored in this collator.
void ucol_setReorderCodes(UCollator *coll, const int32_t *reorderCodes, int32_t reorderCodesLength, UErrorCode *pErrorCode)
Sets the reordering codes for this collator.
Valid for UCOL_ALTERNATE_HANDLING.
UColAttributeValue UCollationStrength
Base letter represents a primary difference.