1*0e209d39SAndroid Build Coastguard Worker // © 2016 and later: Unicode, Inc. and others. 2*0e209d39SAndroid Build Coastguard Worker // License & terms of use: http://www.unicode.org/copyright.html 3*0e209d39SAndroid Build Coastguard Worker /* 4*0e209d39SAndroid Build Coastguard Worker ********************************************************************** 5*0e209d39SAndroid Build Coastguard Worker * Copyright (C) 1997-2016, International Business Machines 6*0e209d39SAndroid Build Coastguard Worker * Corporation and others. All Rights Reserved. 7*0e209d39SAndroid Build Coastguard Worker ********************************************************************** 8*0e209d39SAndroid Build Coastguard Worker * 9*0e209d39SAndroid Build Coastguard Worker * File UCHAR.H 10*0e209d39SAndroid Build Coastguard Worker * 11*0e209d39SAndroid Build Coastguard Worker * Modification History: 12*0e209d39SAndroid Build Coastguard Worker * 13*0e209d39SAndroid Build Coastguard Worker * Date Name Description 14*0e209d39SAndroid Build Coastguard Worker * 04/02/97 aliu Creation. 15*0e209d39SAndroid Build Coastguard Worker * 03/29/99 helena Updated for C APIs. 16*0e209d39SAndroid Build Coastguard Worker * 4/15/99 Madhu Updated for C Implementation and Javadoc 17*0e209d39SAndroid Build Coastguard Worker * 5/20/99 Madhu Added the function u_getVersion() 18*0e209d39SAndroid Build Coastguard Worker * 8/19/1999 srl Upgraded scripts to Unicode 3.0 19*0e209d39SAndroid Build Coastguard Worker * 8/27/1999 schererm UCharDirection constants: U_... 20*0e209d39SAndroid Build Coastguard Worker * 11/11/1999 weiv added u_isalnum(), cleaned comments 21*0e209d39SAndroid Build Coastguard Worker * 01/11/2000 helena Renamed u_getVersion to u_getUnicodeVersion(). 22*0e209d39SAndroid Build Coastguard Worker ****************************************************************************** 23*0e209d39SAndroid Build Coastguard Worker */ 24*0e209d39SAndroid Build Coastguard Worker 25*0e209d39SAndroid Build Coastguard Worker #ifndef UCHAR_H 26*0e209d39SAndroid Build Coastguard Worker #define UCHAR_H 27*0e209d39SAndroid Build Coastguard Worker 28*0e209d39SAndroid Build Coastguard Worker #include <stdbool.h> 29*0e209d39SAndroid Build Coastguard Worker #include "unicode/utypes.h" 30*0e209d39SAndroid Build Coastguard Worker #include "unicode/stringoptions.h" 31*0e209d39SAndroid Build Coastguard Worker #include "unicode/ucpmap.h" 32*0e209d39SAndroid Build Coastguard Worker 33*0e209d39SAndroid Build Coastguard Worker #if !defined(USET_DEFINED) && !defined(U_IN_DOXYGEN) 34*0e209d39SAndroid Build Coastguard Worker 35*0e209d39SAndroid Build Coastguard Worker #define USET_DEFINED 36*0e209d39SAndroid Build Coastguard Worker 37*0e209d39SAndroid Build Coastguard Worker /** 38*0e209d39SAndroid Build Coastguard Worker * USet is the C API type corresponding to C++ class UnicodeSet. 39*0e209d39SAndroid Build Coastguard Worker * It is forward-declared here to avoid including unicode/uset.h file if related 40*0e209d39SAndroid Build Coastguard Worker * APIs are not used. 41*0e209d39SAndroid Build Coastguard Worker * 42*0e209d39SAndroid Build Coastguard Worker * @see ucnv_getUnicodeSet 43*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.4 44*0e209d39SAndroid Build Coastguard Worker */ 45*0e209d39SAndroid Build Coastguard Worker typedef struct USet USet; 46*0e209d39SAndroid Build Coastguard Worker 47*0e209d39SAndroid Build Coastguard Worker #endif 48*0e209d39SAndroid Build Coastguard Worker 49*0e209d39SAndroid Build Coastguard Worker 50*0e209d39SAndroid Build Coastguard Worker U_CDECL_BEGIN 51*0e209d39SAndroid Build Coastguard Worker 52*0e209d39SAndroid Build Coastguard Worker /*==========================================================================*/ 53*0e209d39SAndroid Build Coastguard Worker /* Unicode version number */ 54*0e209d39SAndroid Build Coastguard Worker /*==========================================================================*/ 55*0e209d39SAndroid Build Coastguard Worker /** 56*0e209d39SAndroid Build Coastguard Worker * Unicode version number, default for the current ICU version. 57*0e209d39SAndroid Build Coastguard Worker * The actual Unicode Character Database (UCD) data is stored in uprops.dat 58*0e209d39SAndroid Build Coastguard Worker * and may be generated from UCD files from a different Unicode version. 59*0e209d39SAndroid Build Coastguard Worker * Call u_getUnicodeVersion to get the actual Unicode version of the data. 60*0e209d39SAndroid Build Coastguard Worker * 61*0e209d39SAndroid Build Coastguard Worker * @see u_getUnicodeVersion 62*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 63*0e209d39SAndroid Build Coastguard Worker */ 64*0e209d39SAndroid Build Coastguard Worker #define U_UNICODE_VERSION "15.1" 65*0e209d39SAndroid Build Coastguard Worker 66*0e209d39SAndroid Build Coastguard Worker /** 67*0e209d39SAndroid Build Coastguard Worker * \file 68*0e209d39SAndroid Build Coastguard Worker * \brief C API: Unicode Properties 69*0e209d39SAndroid Build Coastguard Worker * 70*0e209d39SAndroid Build Coastguard Worker * This C API provides low-level access to the Unicode Character Database. 71*0e209d39SAndroid Build Coastguard Worker * In addition to raw property values, some convenience functions calculate 72*0e209d39SAndroid Build Coastguard Worker * derived properties, for example for Java-style programming. 73*0e209d39SAndroid Build Coastguard Worker * 74*0e209d39SAndroid Build Coastguard Worker * Unicode assigns each code point (not just assigned character) values for 75*0e209d39SAndroid Build Coastguard Worker * many properties. 76*0e209d39SAndroid Build Coastguard Worker * Most of them are simple boolean flags, or constants from a small enumerated list. 77*0e209d39SAndroid Build Coastguard Worker * For some properties, values are strings or other relatively more complex types. 78*0e209d39SAndroid Build Coastguard Worker * 79*0e209d39SAndroid Build Coastguard Worker * For more information see 80*0e209d39SAndroid Build Coastguard Worker * "About the Unicode Character Database" (http://www.unicode.org/ucd/) 81*0e209d39SAndroid Build Coastguard Worker * and the ICU User Guide chapter on Properties (https://unicode-org.github.io/icu/userguide/strings/properties). 82*0e209d39SAndroid Build Coastguard Worker * 83*0e209d39SAndroid Build Coastguard Worker * Many properties are accessible via generic functions that take a UProperty selector. 84*0e209d39SAndroid Build Coastguard Worker * - u_hasBinaryProperty() returns a binary value (true/false) per property and code point. 85*0e209d39SAndroid Build Coastguard Worker * - u_getIntPropertyValue() returns an integer value per property and code point. 86*0e209d39SAndroid Build Coastguard Worker * For each supported enumerated or catalog property, there is 87*0e209d39SAndroid Build Coastguard Worker * an enum type for all of the property's values, and 88*0e209d39SAndroid Build Coastguard Worker * u_getIntPropertyValue() returns the numeric values of those constants. 89*0e209d39SAndroid Build Coastguard Worker * - u_getBinaryPropertySet() returns a set for each ICU-supported binary property with 90*0e209d39SAndroid Build Coastguard Worker * all code points for which the property is true. 91*0e209d39SAndroid Build Coastguard Worker * - u_getIntPropertyMap() returns a map for each 92*0e209d39SAndroid Build Coastguard Worker * ICU-supported enumerated/catalog/int-valued property which 93*0e209d39SAndroid Build Coastguard Worker * maps all Unicode code points to their values for that property. 94*0e209d39SAndroid Build Coastguard Worker * 95*0e209d39SAndroid Build Coastguard Worker * Many functions are designed to match java.lang.Character functions. 96*0e209d39SAndroid Build Coastguard Worker * See the individual function documentation, 97*0e209d39SAndroid Build Coastguard Worker * and see the JDK 1.4 java.lang.Character documentation 98*0e209d39SAndroid Build Coastguard Worker * at http://java.sun.com/j2se/1.4/docs/api/java/lang/Character.html 99*0e209d39SAndroid Build Coastguard Worker * 100*0e209d39SAndroid Build Coastguard Worker * There are also functions that provide easy migration from C/POSIX functions 101*0e209d39SAndroid Build Coastguard Worker * like isblank(). Their use is generally discouraged because the C/POSIX 102*0e209d39SAndroid Build Coastguard Worker * standards do not define their semantics beyond the ASCII range, which means 103*0e209d39SAndroid Build Coastguard Worker * that different implementations exhibit very different behavior. 104*0e209d39SAndroid Build Coastguard Worker * Instead, Unicode properties should be used directly. 105*0e209d39SAndroid Build Coastguard Worker * 106*0e209d39SAndroid Build Coastguard Worker * There are also only a few, broad C/POSIX character classes, and they tend 107*0e209d39SAndroid Build Coastguard Worker * to be used for conflicting purposes. For example, the "isalpha()" class 108*0e209d39SAndroid Build Coastguard Worker * is sometimes used to determine word boundaries, while a more sophisticated 109*0e209d39SAndroid Build Coastguard Worker * approach would at least distinguish initial letters from continuation 110*0e209d39SAndroid Build Coastguard Worker * characters (the latter including combining marks). 111*0e209d39SAndroid Build Coastguard Worker * (In ICU, BreakIterator is the most sophisticated API for word boundaries.) 112*0e209d39SAndroid Build Coastguard Worker * Another example: There is no "istitle()" class for titlecase characters. 113*0e209d39SAndroid Build Coastguard Worker * 114*0e209d39SAndroid Build Coastguard Worker * ICU 3.4 and later provides API access for all twelve C/POSIX character classes. 115*0e209d39SAndroid Build Coastguard Worker * ICU implements them according to the Standard Recommendations in 116*0e209d39SAndroid Build Coastguard Worker * Annex C: Compatibility Properties of UTS #18 Unicode Regular Expressions 117*0e209d39SAndroid Build Coastguard Worker * (http://www.unicode.org/reports/tr18/#Compatibility_Properties). 118*0e209d39SAndroid Build Coastguard Worker * 119*0e209d39SAndroid Build Coastguard Worker * API access for C/POSIX character classes is as follows: 120*0e209d39SAndroid Build Coastguard Worker * - alpha: u_isUAlphabetic(c) or u_hasBinaryProperty(c, UCHAR_ALPHABETIC) 121*0e209d39SAndroid Build Coastguard Worker * - lower: u_isULowercase(c) or u_hasBinaryProperty(c, UCHAR_LOWERCASE) 122*0e209d39SAndroid Build Coastguard Worker * - upper: u_isUUppercase(c) or u_hasBinaryProperty(c, UCHAR_UPPERCASE) 123*0e209d39SAndroid Build Coastguard Worker * - punct: u_ispunct(c) 124*0e209d39SAndroid Build Coastguard Worker * - digit: u_isdigit(c) or u_charType(c)==U_DECIMAL_DIGIT_NUMBER 125*0e209d39SAndroid Build Coastguard Worker * - xdigit: u_isxdigit(c) or u_hasBinaryProperty(c, UCHAR_POSIX_XDIGIT) 126*0e209d39SAndroid Build Coastguard Worker * - alnum: u_hasBinaryProperty(c, UCHAR_POSIX_ALNUM) 127*0e209d39SAndroid Build Coastguard Worker * - space: u_isUWhiteSpace(c) or u_hasBinaryProperty(c, UCHAR_WHITE_SPACE) 128*0e209d39SAndroid Build Coastguard Worker * - blank: u_isblank(c) or u_hasBinaryProperty(c, UCHAR_POSIX_BLANK) 129*0e209d39SAndroid Build Coastguard Worker * - cntrl: u_charType(c)==U_CONTROL_CHAR 130*0e209d39SAndroid Build Coastguard Worker * - graph: u_hasBinaryProperty(c, UCHAR_POSIX_GRAPH) 131*0e209d39SAndroid Build Coastguard Worker * - print: u_hasBinaryProperty(c, UCHAR_POSIX_PRINT) 132*0e209d39SAndroid Build Coastguard Worker * 133*0e209d39SAndroid Build Coastguard Worker * Note: Some of the u_isxyz() functions in uchar.h predate, and do not match, 134*0e209d39SAndroid Build Coastguard Worker * the Standard Recommendations in UTS #18. Instead, they match Java 135*0e209d39SAndroid Build Coastguard Worker * functions according to their API documentation. 136*0e209d39SAndroid Build Coastguard Worker * 137*0e209d39SAndroid Build Coastguard Worker * \htmlonly 138*0e209d39SAndroid Build Coastguard Worker * The C/POSIX character classes are also available in UnicodeSet patterns, 139*0e209d39SAndroid Build Coastguard Worker * using patterns like [:graph:] or \p{graph}. 140*0e209d39SAndroid Build Coastguard Worker * \endhtmlonly 141*0e209d39SAndroid Build Coastguard Worker * 142*0e209d39SAndroid Build Coastguard Worker * Note: There are several ICU whitespace functions. 143*0e209d39SAndroid Build Coastguard Worker * Comparison: 144*0e209d39SAndroid Build Coastguard Worker * - u_isUWhiteSpace=UCHAR_WHITE_SPACE: Unicode White_Space property; 145*0e209d39SAndroid Build Coastguard Worker * most of general categories "Z" (separators) + most whitespace ISO controls 146*0e209d39SAndroid Build Coastguard Worker * (including no-break spaces, but excluding IS1..IS4) 147*0e209d39SAndroid Build Coastguard Worker * - u_isWhitespace: Java isWhitespace; Z + whitespace ISO controls but excluding no-break spaces 148*0e209d39SAndroid Build Coastguard Worker * - u_isJavaSpaceChar: Java isSpaceChar; just Z (including no-break spaces) 149*0e209d39SAndroid Build Coastguard Worker * - u_isspace: Z + whitespace ISO controls (including no-break spaces) 150*0e209d39SAndroid Build Coastguard Worker * - u_isblank: "horizontal spaces" = TAB + Zs 151*0e209d39SAndroid Build Coastguard Worker */ 152*0e209d39SAndroid Build Coastguard Worker 153*0e209d39SAndroid Build Coastguard Worker /** 154*0e209d39SAndroid Build Coastguard Worker * Constants. 155*0e209d39SAndroid Build Coastguard Worker */ 156*0e209d39SAndroid Build Coastguard Worker 157*0e209d39SAndroid Build Coastguard Worker /** The lowest Unicode code point value. Code points are non-negative. @stable ICU 2.0 */ 158*0e209d39SAndroid Build Coastguard Worker #define UCHAR_MIN_VALUE 0 159*0e209d39SAndroid Build Coastguard Worker 160*0e209d39SAndroid Build Coastguard Worker /** 161*0e209d39SAndroid Build Coastguard Worker * The highest Unicode code point value (scalar value) according to 162*0e209d39SAndroid Build Coastguard Worker * The Unicode Standard. This is a 21-bit value (20.1 bits, rounded up). 163*0e209d39SAndroid Build Coastguard Worker * For a single character, UChar32 is a simple type that can hold any code point value. 164*0e209d39SAndroid Build Coastguard Worker * 165*0e209d39SAndroid Build Coastguard Worker * @see UChar32 166*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 167*0e209d39SAndroid Build Coastguard Worker */ 168*0e209d39SAndroid Build Coastguard Worker #define UCHAR_MAX_VALUE 0x10ffff 169*0e209d39SAndroid Build Coastguard Worker 170*0e209d39SAndroid Build Coastguard Worker /** 171*0e209d39SAndroid Build Coastguard Worker * Get a single-bit bit set (a flag) from a bit number 0..31. 172*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.1 173*0e209d39SAndroid Build Coastguard Worker */ 174*0e209d39SAndroid Build Coastguard Worker #define U_MASK(x) ((uint32_t)1<<(x)) 175*0e209d39SAndroid Build Coastguard Worker 176*0e209d39SAndroid Build Coastguard Worker /** 177*0e209d39SAndroid Build Coastguard Worker * Selection constants for Unicode properties. 178*0e209d39SAndroid Build Coastguard Worker * These constants are used in functions like u_hasBinaryProperty to select 179*0e209d39SAndroid Build Coastguard Worker * one of the Unicode properties. 180*0e209d39SAndroid Build Coastguard Worker * 181*0e209d39SAndroid Build Coastguard Worker * The properties APIs are intended to reflect Unicode properties as defined 182*0e209d39SAndroid Build Coastguard Worker * in the Unicode Character Database (UCD) and Unicode Technical Reports (UTR). 183*0e209d39SAndroid Build Coastguard Worker * 184*0e209d39SAndroid Build Coastguard Worker * For details about the properties see 185*0e209d39SAndroid Build Coastguard Worker * UAX #44: Unicode Character Database (http://www.unicode.org/reports/tr44/). 186*0e209d39SAndroid Build Coastguard Worker * 187*0e209d39SAndroid Build Coastguard Worker * Important: If ICU is built with UCD files from Unicode versions below, e.g., 3.2, 188*0e209d39SAndroid Build Coastguard Worker * then properties marked with "new in Unicode 3.2" are not or not fully available. 189*0e209d39SAndroid Build Coastguard Worker * Check u_getUnicodeVersion to be sure. 190*0e209d39SAndroid Build Coastguard Worker * 191*0e209d39SAndroid Build Coastguard Worker * @see u_hasBinaryProperty 192*0e209d39SAndroid Build Coastguard Worker * @see u_getIntPropertyValue 193*0e209d39SAndroid Build Coastguard Worker * @see u_getUnicodeVersion 194*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.1 195*0e209d39SAndroid Build Coastguard Worker */ 196*0e209d39SAndroid Build Coastguard Worker typedef enum UProperty { 197*0e209d39SAndroid Build Coastguard Worker /* 198*0e209d39SAndroid Build Coastguard Worker * Note: UProperty constants are parsed by preparseucd.py. 199*0e209d39SAndroid Build Coastguard Worker * It matches lines like 200*0e209d39SAndroid Build Coastguard Worker * UCHAR_<Unicode property name>=<integer>, 201*0e209d39SAndroid Build Coastguard Worker */ 202*0e209d39SAndroid Build Coastguard Worker 203*0e209d39SAndroid Build Coastguard Worker /* Note: Place UCHAR_ALPHABETIC before UCHAR_BINARY_START so that 204*0e209d39SAndroid Build Coastguard Worker debuggers display UCHAR_ALPHABETIC as the symbolic name for 0, 205*0e209d39SAndroid Build Coastguard Worker rather than UCHAR_BINARY_START. Likewise for other *_START 206*0e209d39SAndroid Build Coastguard Worker identifiers. */ 207*0e209d39SAndroid Build Coastguard Worker 208*0e209d39SAndroid Build Coastguard Worker /** Binary property Alphabetic. Same as u_isUAlphabetic, different from u_isalpha. 209*0e209d39SAndroid Build Coastguard Worker Lu+Ll+Lt+Lm+Lo+Nl+Other_Alphabetic @stable ICU 2.1 */ 210*0e209d39SAndroid Build Coastguard Worker UCHAR_ALPHABETIC=0, 211*0e209d39SAndroid Build Coastguard Worker /** First constant for binary Unicode properties. @stable ICU 2.1 */ 212*0e209d39SAndroid Build Coastguard Worker UCHAR_BINARY_START=UCHAR_ALPHABETIC, 213*0e209d39SAndroid Build Coastguard Worker /** Binary property ASCII_Hex_Digit. 0-9 A-F a-f @stable ICU 2.1 */ 214*0e209d39SAndroid Build Coastguard Worker UCHAR_ASCII_HEX_DIGIT=1, 215*0e209d39SAndroid Build Coastguard Worker /** Binary property Bidi_Control. 216*0e209d39SAndroid Build Coastguard Worker Format controls which have specific functions 217*0e209d39SAndroid Build Coastguard Worker in the Bidi Algorithm. @stable ICU 2.1 */ 218*0e209d39SAndroid Build Coastguard Worker UCHAR_BIDI_CONTROL=2, 219*0e209d39SAndroid Build Coastguard Worker /** Binary property Bidi_Mirrored. 220*0e209d39SAndroid Build Coastguard Worker Characters that may change display in RTL text. 221*0e209d39SAndroid Build Coastguard Worker Same as u_isMirrored. 222*0e209d39SAndroid Build Coastguard Worker See Bidi Algorithm, UTR 9. @stable ICU 2.1 */ 223*0e209d39SAndroid Build Coastguard Worker UCHAR_BIDI_MIRRORED=3, 224*0e209d39SAndroid Build Coastguard Worker /** Binary property Dash. Variations of dashes. @stable ICU 2.1 */ 225*0e209d39SAndroid Build Coastguard Worker UCHAR_DASH=4, 226*0e209d39SAndroid Build Coastguard Worker /** Binary property Default_Ignorable_Code_Point (new in Unicode 3.2). 227*0e209d39SAndroid Build Coastguard Worker Ignorable in most processing. 228*0e209d39SAndroid Build Coastguard Worker <2060..206F, FFF0..FFFB, E0000..E0FFF>+Other_Default_Ignorable_Code_Point+(Cf+Cc+Cs-White_Space) @stable ICU 2.1 */ 229*0e209d39SAndroid Build Coastguard Worker UCHAR_DEFAULT_IGNORABLE_CODE_POINT=5, 230*0e209d39SAndroid Build Coastguard Worker /** Binary property Deprecated (new in Unicode 3.2). 231*0e209d39SAndroid Build Coastguard Worker The usage of deprecated characters is strongly discouraged. @stable ICU 2.1 */ 232*0e209d39SAndroid Build Coastguard Worker UCHAR_DEPRECATED=6, 233*0e209d39SAndroid Build Coastguard Worker /** Binary property Diacritic. Characters that linguistically modify 234*0e209d39SAndroid Build Coastguard Worker the meaning of another character to which they apply. @stable ICU 2.1 */ 235*0e209d39SAndroid Build Coastguard Worker UCHAR_DIACRITIC=7, 236*0e209d39SAndroid Build Coastguard Worker /** Binary property Extender. 237*0e209d39SAndroid Build Coastguard Worker Extend the value or shape of a preceding alphabetic character, 238*0e209d39SAndroid Build Coastguard Worker e.g., length and iteration marks. @stable ICU 2.1 */ 239*0e209d39SAndroid Build Coastguard Worker UCHAR_EXTENDER=8, 240*0e209d39SAndroid Build Coastguard Worker /** Binary property Full_Composition_Exclusion. 241*0e209d39SAndroid Build Coastguard Worker CompositionExclusions.txt+Singleton Decompositions+ 242*0e209d39SAndroid Build Coastguard Worker Non-Starter Decompositions. @stable ICU 2.1 */ 243*0e209d39SAndroid Build Coastguard Worker UCHAR_FULL_COMPOSITION_EXCLUSION=9, 244*0e209d39SAndroid Build Coastguard Worker /** Binary property Grapheme_Base (new in Unicode 3.2). 245*0e209d39SAndroid Build Coastguard Worker For programmatic determination of grapheme cluster boundaries. 246*0e209d39SAndroid Build Coastguard Worker [0..10FFFF]-Cc-Cf-Cs-Co-Cn-Zl-Zp-Grapheme_Link-Grapheme_Extend-CGJ @stable ICU 2.1 */ 247*0e209d39SAndroid Build Coastguard Worker UCHAR_GRAPHEME_BASE=10, 248*0e209d39SAndroid Build Coastguard Worker /** Binary property Grapheme_Extend (new in Unicode 3.2). 249*0e209d39SAndroid Build Coastguard Worker For programmatic determination of grapheme cluster boundaries. 250*0e209d39SAndroid Build Coastguard Worker Me+Mn+Mc+Other_Grapheme_Extend-Grapheme_Link-CGJ @stable ICU 2.1 */ 251*0e209d39SAndroid Build Coastguard Worker UCHAR_GRAPHEME_EXTEND=11, 252*0e209d39SAndroid Build Coastguard Worker /** Binary property Grapheme_Link (new in Unicode 3.2). 253*0e209d39SAndroid Build Coastguard Worker For programmatic determination of grapheme cluster boundaries. @stable ICU 2.1 */ 254*0e209d39SAndroid Build Coastguard Worker UCHAR_GRAPHEME_LINK=12, 255*0e209d39SAndroid Build Coastguard Worker /** Binary property Hex_Digit. 256*0e209d39SAndroid Build Coastguard Worker Characters commonly used for hexadecimal numbers. @stable ICU 2.1 */ 257*0e209d39SAndroid Build Coastguard Worker UCHAR_HEX_DIGIT=13, 258*0e209d39SAndroid Build Coastguard Worker /** Binary property Hyphen. Dashes used to mark connections 259*0e209d39SAndroid Build Coastguard Worker between pieces of words, plus the Katakana middle dot. @stable ICU 2.1 */ 260*0e209d39SAndroid Build Coastguard Worker UCHAR_HYPHEN=14, 261*0e209d39SAndroid Build Coastguard Worker /** Binary property ID_Continue. 262*0e209d39SAndroid Build Coastguard Worker Characters that can continue an identifier. 263*0e209d39SAndroid Build Coastguard Worker DerivedCoreProperties.txt also says "NOTE: Cf characters should be filtered out." 264*0e209d39SAndroid Build Coastguard Worker ID_Start+Mn+Mc+Nd+Pc @stable ICU 2.1 */ 265*0e209d39SAndroid Build Coastguard Worker UCHAR_ID_CONTINUE=15, 266*0e209d39SAndroid Build Coastguard Worker /** Binary property ID_Start. 267*0e209d39SAndroid Build Coastguard Worker Characters that can start an identifier. 268*0e209d39SAndroid Build Coastguard Worker Lu+Ll+Lt+Lm+Lo+Nl @stable ICU 2.1 */ 269*0e209d39SAndroid Build Coastguard Worker UCHAR_ID_START=16, 270*0e209d39SAndroid Build Coastguard Worker /** Binary property Ideographic. 271*0e209d39SAndroid Build Coastguard Worker CJKV ideographs. @stable ICU 2.1 */ 272*0e209d39SAndroid Build Coastguard Worker UCHAR_IDEOGRAPHIC=17, 273*0e209d39SAndroid Build Coastguard Worker /** Binary property IDS_Binary_Operator (new in Unicode 3.2). 274*0e209d39SAndroid Build Coastguard Worker For programmatic determination of 275*0e209d39SAndroid Build Coastguard Worker Ideographic Description Sequences. @stable ICU 2.1 */ 276*0e209d39SAndroid Build Coastguard Worker UCHAR_IDS_BINARY_OPERATOR=18, 277*0e209d39SAndroid Build Coastguard Worker /** Binary property IDS_Trinary_Operator (new in Unicode 3.2). 278*0e209d39SAndroid Build Coastguard Worker For programmatic determination of 279*0e209d39SAndroid Build Coastguard Worker Ideographic Description Sequences. @stable ICU 2.1 */ 280*0e209d39SAndroid Build Coastguard Worker UCHAR_IDS_TRINARY_OPERATOR=19, 281*0e209d39SAndroid Build Coastguard Worker /** Binary property Join_Control. 282*0e209d39SAndroid Build Coastguard Worker Format controls for cursive joining and ligation. @stable ICU 2.1 */ 283*0e209d39SAndroid Build Coastguard Worker UCHAR_JOIN_CONTROL=20, 284*0e209d39SAndroid Build Coastguard Worker /** Binary property Logical_Order_Exception (new in Unicode 3.2). 285*0e209d39SAndroid Build Coastguard Worker Characters that do not use logical order and 286*0e209d39SAndroid Build Coastguard Worker require special handling in most processing. @stable ICU 2.1 */ 287*0e209d39SAndroid Build Coastguard Worker UCHAR_LOGICAL_ORDER_EXCEPTION=21, 288*0e209d39SAndroid Build Coastguard Worker /** Binary property Lowercase. Same as u_isULowercase, different from u_islower. 289*0e209d39SAndroid Build Coastguard Worker Ll+Other_Lowercase @stable ICU 2.1 */ 290*0e209d39SAndroid Build Coastguard Worker UCHAR_LOWERCASE=22, 291*0e209d39SAndroid Build Coastguard Worker /** Binary property Math. Sm+Other_Math @stable ICU 2.1 */ 292*0e209d39SAndroid Build Coastguard Worker UCHAR_MATH=23, 293*0e209d39SAndroid Build Coastguard Worker /** Binary property Noncharacter_Code_Point. 294*0e209d39SAndroid Build Coastguard Worker Code points that are explicitly defined as illegal 295*0e209d39SAndroid Build Coastguard Worker for the encoding of characters. @stable ICU 2.1 */ 296*0e209d39SAndroid Build Coastguard Worker UCHAR_NONCHARACTER_CODE_POINT=24, 297*0e209d39SAndroid Build Coastguard Worker /** Binary property Quotation_Mark. @stable ICU 2.1 */ 298*0e209d39SAndroid Build Coastguard Worker UCHAR_QUOTATION_MARK=25, 299*0e209d39SAndroid Build Coastguard Worker /** Binary property Radical (new in Unicode 3.2). 300*0e209d39SAndroid Build Coastguard Worker For programmatic determination of 301*0e209d39SAndroid Build Coastguard Worker Ideographic Description Sequences. @stable ICU 2.1 */ 302*0e209d39SAndroid Build Coastguard Worker UCHAR_RADICAL=26, 303*0e209d39SAndroid Build Coastguard Worker /** Binary property Soft_Dotted (new in Unicode 3.2). 304*0e209d39SAndroid Build Coastguard Worker Characters with a "soft dot", like i or j. 305*0e209d39SAndroid Build Coastguard Worker An accent placed on these characters causes 306*0e209d39SAndroid Build Coastguard Worker the dot to disappear. @stable ICU 2.1 */ 307*0e209d39SAndroid Build Coastguard Worker UCHAR_SOFT_DOTTED=27, 308*0e209d39SAndroid Build Coastguard Worker /** Binary property Terminal_Punctuation. 309*0e209d39SAndroid Build Coastguard Worker Punctuation characters that generally mark 310*0e209d39SAndroid Build Coastguard Worker the end of textual units. @stable ICU 2.1 */ 311*0e209d39SAndroid Build Coastguard Worker UCHAR_TERMINAL_PUNCTUATION=28, 312*0e209d39SAndroid Build Coastguard Worker /** Binary property Unified_Ideograph (new in Unicode 3.2). 313*0e209d39SAndroid Build Coastguard Worker For programmatic determination of 314*0e209d39SAndroid Build Coastguard Worker Ideographic Description Sequences. @stable ICU 2.1 */ 315*0e209d39SAndroid Build Coastguard Worker UCHAR_UNIFIED_IDEOGRAPH=29, 316*0e209d39SAndroid Build Coastguard Worker /** Binary property Uppercase. Same as u_isUUppercase, different from u_isupper. 317*0e209d39SAndroid Build Coastguard Worker Lu+Other_Uppercase @stable ICU 2.1 */ 318*0e209d39SAndroid Build Coastguard Worker UCHAR_UPPERCASE=30, 319*0e209d39SAndroid Build Coastguard Worker /** Binary property White_Space. 320*0e209d39SAndroid Build Coastguard Worker Same as u_isUWhiteSpace, different from u_isspace and u_isWhitespace. 321*0e209d39SAndroid Build Coastguard Worker Space characters+TAB+CR+LF-ZWSP-ZWNBSP @stable ICU 2.1 */ 322*0e209d39SAndroid Build Coastguard Worker UCHAR_WHITE_SPACE=31, 323*0e209d39SAndroid Build Coastguard Worker /** Binary property XID_Continue. 324*0e209d39SAndroid Build Coastguard Worker ID_Continue modified to allow closure under 325*0e209d39SAndroid Build Coastguard Worker normalization forms NFKC and NFKD. @stable ICU 2.1 */ 326*0e209d39SAndroid Build Coastguard Worker UCHAR_XID_CONTINUE=32, 327*0e209d39SAndroid Build Coastguard Worker /** Binary property XID_Start. ID_Start modified to allow 328*0e209d39SAndroid Build Coastguard Worker closure under normalization forms NFKC and NFKD. @stable ICU 2.1 */ 329*0e209d39SAndroid Build Coastguard Worker UCHAR_XID_START=33, 330*0e209d39SAndroid Build Coastguard Worker /** Binary property Case_Sensitive. Either the source of a case 331*0e209d39SAndroid Build Coastguard Worker mapping or _in_ the target of a case mapping. Not the same as 332*0e209d39SAndroid Build Coastguard Worker the general category Cased_Letter. @stable ICU 2.6 */ 333*0e209d39SAndroid Build Coastguard Worker UCHAR_CASE_SENSITIVE=34, 334*0e209d39SAndroid Build Coastguard Worker /** Binary property STerm (new in Unicode 4.0.1). 335*0e209d39SAndroid Build Coastguard Worker Sentence Terminal. Used in UAX #29: Text Boundaries 336*0e209d39SAndroid Build Coastguard Worker (http://www.unicode.org/reports/tr29/) 337*0e209d39SAndroid Build Coastguard Worker @stable ICU 3.0 */ 338*0e209d39SAndroid Build Coastguard Worker UCHAR_S_TERM=35, 339*0e209d39SAndroid Build Coastguard Worker /** Binary property Variation_Selector (new in Unicode 4.0.1). 340*0e209d39SAndroid Build Coastguard Worker Indicates all those characters that qualify as Variation Selectors. 341*0e209d39SAndroid Build Coastguard Worker For details on the behavior of these characters, 342*0e209d39SAndroid Build Coastguard Worker see StandardizedVariants.html and 15.6 Variation Selectors. 343*0e209d39SAndroid Build Coastguard Worker @stable ICU 3.0 */ 344*0e209d39SAndroid Build Coastguard Worker UCHAR_VARIATION_SELECTOR=36, 345*0e209d39SAndroid Build Coastguard Worker /** Binary property NFD_Inert. 346*0e209d39SAndroid Build Coastguard Worker ICU-specific property for characters that are inert under NFD, 347*0e209d39SAndroid Build Coastguard Worker i.e., they do not interact with adjacent characters. 348*0e209d39SAndroid Build Coastguard Worker See the documentation for the Normalizer2 class and the 349*0e209d39SAndroid Build Coastguard Worker Normalizer2::isInert() method. 350*0e209d39SAndroid Build Coastguard Worker @stable ICU 3.0 */ 351*0e209d39SAndroid Build Coastguard Worker UCHAR_NFD_INERT=37, 352*0e209d39SAndroid Build Coastguard Worker /** Binary property NFKD_Inert. 353*0e209d39SAndroid Build Coastguard Worker ICU-specific property for characters that are inert under NFKD, 354*0e209d39SAndroid Build Coastguard Worker i.e., they do not interact with adjacent characters. 355*0e209d39SAndroid Build Coastguard Worker See the documentation for the Normalizer2 class and the 356*0e209d39SAndroid Build Coastguard Worker Normalizer2::isInert() method. 357*0e209d39SAndroid Build Coastguard Worker @stable ICU 3.0 */ 358*0e209d39SAndroid Build Coastguard Worker UCHAR_NFKD_INERT=38, 359*0e209d39SAndroid Build Coastguard Worker /** Binary property NFC_Inert. 360*0e209d39SAndroid Build Coastguard Worker ICU-specific property for characters that are inert under NFC, 361*0e209d39SAndroid Build Coastguard Worker i.e., they do not interact with adjacent characters. 362*0e209d39SAndroid Build Coastguard Worker See the documentation for the Normalizer2 class and the 363*0e209d39SAndroid Build Coastguard Worker Normalizer2::isInert() method. 364*0e209d39SAndroid Build Coastguard Worker @stable ICU 3.0 */ 365*0e209d39SAndroid Build Coastguard Worker UCHAR_NFC_INERT=39, 366*0e209d39SAndroid Build Coastguard Worker /** Binary property NFKC_Inert. 367*0e209d39SAndroid Build Coastguard Worker ICU-specific property for characters that are inert under NFKC, 368*0e209d39SAndroid Build Coastguard Worker i.e., they do not interact with adjacent characters. 369*0e209d39SAndroid Build Coastguard Worker See the documentation for the Normalizer2 class and the 370*0e209d39SAndroid Build Coastguard Worker Normalizer2::isInert() method. 371*0e209d39SAndroid Build Coastguard Worker @stable ICU 3.0 */ 372*0e209d39SAndroid Build Coastguard Worker UCHAR_NFKC_INERT=40, 373*0e209d39SAndroid Build Coastguard Worker /** Binary Property Segment_Starter. 374*0e209d39SAndroid Build Coastguard Worker ICU-specific property for characters that are starters in terms of 375*0e209d39SAndroid Build Coastguard Worker Unicode normalization and combining character sequences. 376*0e209d39SAndroid Build Coastguard Worker They have ccc=0 and do not occur in non-initial position of the 377*0e209d39SAndroid Build Coastguard Worker canonical decomposition of any character 378*0e209d39SAndroid Build Coastguard Worker (like a-umlaut in NFD and a Jamo T in an NFD(Hangul LVT)). 379*0e209d39SAndroid Build Coastguard Worker ICU uses this property for segmenting a string for generating a set of 380*0e209d39SAndroid Build Coastguard Worker canonically equivalent strings, e.g. for canonical closure while 381*0e209d39SAndroid Build Coastguard Worker processing collation tailoring rules. 382*0e209d39SAndroid Build Coastguard Worker @stable ICU 3.0 */ 383*0e209d39SAndroid Build Coastguard Worker UCHAR_SEGMENT_STARTER=41, 384*0e209d39SAndroid Build Coastguard Worker /** Binary property Pattern_Syntax (new in Unicode 4.1). 385*0e209d39SAndroid Build Coastguard Worker See UAX #31 Identifier and Pattern Syntax 386*0e209d39SAndroid Build Coastguard Worker (http://www.unicode.org/reports/tr31/) 387*0e209d39SAndroid Build Coastguard Worker @stable ICU 3.4 */ 388*0e209d39SAndroid Build Coastguard Worker UCHAR_PATTERN_SYNTAX=42, 389*0e209d39SAndroid Build Coastguard Worker /** Binary property Pattern_White_Space (new in Unicode 4.1). 390*0e209d39SAndroid Build Coastguard Worker See UAX #31 Identifier and Pattern Syntax 391*0e209d39SAndroid Build Coastguard Worker (http://www.unicode.org/reports/tr31/) 392*0e209d39SAndroid Build Coastguard Worker @stable ICU 3.4 */ 393*0e209d39SAndroid Build Coastguard Worker UCHAR_PATTERN_WHITE_SPACE=43, 394*0e209d39SAndroid Build Coastguard Worker /** Binary property alnum (a C/POSIX character class). 395*0e209d39SAndroid Build Coastguard Worker Implemented according to the UTS #18 Annex C Standard Recommendation. 396*0e209d39SAndroid Build Coastguard Worker See the uchar.h file documentation. 397*0e209d39SAndroid Build Coastguard Worker @stable ICU 3.4 */ 398*0e209d39SAndroid Build Coastguard Worker UCHAR_POSIX_ALNUM=44, 399*0e209d39SAndroid Build Coastguard Worker /** Binary property blank (a C/POSIX character class). 400*0e209d39SAndroid Build Coastguard Worker Implemented according to the UTS #18 Annex C Standard Recommendation. 401*0e209d39SAndroid Build Coastguard Worker See the uchar.h file documentation. 402*0e209d39SAndroid Build Coastguard Worker @stable ICU 3.4 */ 403*0e209d39SAndroid Build Coastguard Worker UCHAR_POSIX_BLANK=45, 404*0e209d39SAndroid Build Coastguard Worker /** Binary property graph (a C/POSIX character class). 405*0e209d39SAndroid Build Coastguard Worker Implemented according to the UTS #18 Annex C Standard Recommendation. 406*0e209d39SAndroid Build Coastguard Worker See the uchar.h file documentation. 407*0e209d39SAndroid Build Coastguard Worker @stable ICU 3.4 */ 408*0e209d39SAndroid Build Coastguard Worker UCHAR_POSIX_GRAPH=46, 409*0e209d39SAndroid Build Coastguard Worker /** Binary property print (a C/POSIX character class). 410*0e209d39SAndroid Build Coastguard Worker Implemented according to the UTS #18 Annex C Standard Recommendation. 411*0e209d39SAndroid Build Coastguard Worker See the uchar.h file documentation. 412*0e209d39SAndroid Build Coastguard Worker @stable ICU 3.4 */ 413*0e209d39SAndroid Build Coastguard Worker UCHAR_POSIX_PRINT=47, 414*0e209d39SAndroid Build Coastguard Worker /** Binary property xdigit (a C/POSIX character class). 415*0e209d39SAndroid Build Coastguard Worker Implemented according to the UTS #18 Annex C Standard Recommendation. 416*0e209d39SAndroid Build Coastguard Worker See the uchar.h file documentation. 417*0e209d39SAndroid Build Coastguard Worker @stable ICU 3.4 */ 418*0e209d39SAndroid Build Coastguard Worker UCHAR_POSIX_XDIGIT=48, 419*0e209d39SAndroid Build Coastguard Worker /** Binary property Cased. For Lowercase, Uppercase and Titlecase characters. @stable ICU 4.4 */ 420*0e209d39SAndroid Build Coastguard Worker UCHAR_CASED=49, 421*0e209d39SAndroid Build Coastguard Worker /** Binary property Case_Ignorable. Used in context-sensitive case mappings. @stable ICU 4.4 */ 422*0e209d39SAndroid Build Coastguard Worker UCHAR_CASE_IGNORABLE=50, 423*0e209d39SAndroid Build Coastguard Worker /** Binary property Changes_When_Lowercased. @stable ICU 4.4 */ 424*0e209d39SAndroid Build Coastguard Worker UCHAR_CHANGES_WHEN_LOWERCASED=51, 425*0e209d39SAndroid Build Coastguard Worker /** Binary property Changes_When_Uppercased. @stable ICU 4.4 */ 426*0e209d39SAndroid Build Coastguard Worker UCHAR_CHANGES_WHEN_UPPERCASED=52, 427*0e209d39SAndroid Build Coastguard Worker /** Binary property Changes_When_Titlecased. @stable ICU 4.4 */ 428*0e209d39SAndroid Build Coastguard Worker UCHAR_CHANGES_WHEN_TITLECASED=53, 429*0e209d39SAndroid Build Coastguard Worker /** Binary property Changes_When_Casefolded. @stable ICU 4.4 */ 430*0e209d39SAndroid Build Coastguard Worker UCHAR_CHANGES_WHEN_CASEFOLDED=54, 431*0e209d39SAndroid Build Coastguard Worker /** Binary property Changes_When_Casemapped. @stable ICU 4.4 */ 432*0e209d39SAndroid Build Coastguard Worker UCHAR_CHANGES_WHEN_CASEMAPPED=55, 433*0e209d39SAndroid Build Coastguard Worker /** Binary property Changes_When_NFKC_Casefolded. @stable ICU 4.4 */ 434*0e209d39SAndroid Build Coastguard Worker UCHAR_CHANGES_WHEN_NFKC_CASEFOLDED=56, 435*0e209d39SAndroid Build Coastguard Worker /** 436*0e209d39SAndroid Build Coastguard Worker * Binary property Emoji. 437*0e209d39SAndroid Build Coastguard Worker * See http://www.unicode.org/reports/tr51/#Emoji_Properties 438*0e209d39SAndroid Build Coastguard Worker * 439*0e209d39SAndroid Build Coastguard Worker * @stable ICU 57 440*0e209d39SAndroid Build Coastguard Worker */ 441*0e209d39SAndroid Build Coastguard Worker UCHAR_EMOJI=57, 442*0e209d39SAndroid Build Coastguard Worker /** 443*0e209d39SAndroid Build Coastguard Worker * Binary property Emoji_Presentation. 444*0e209d39SAndroid Build Coastguard Worker * See http://www.unicode.org/reports/tr51/#Emoji_Properties 445*0e209d39SAndroid Build Coastguard Worker * 446*0e209d39SAndroid Build Coastguard Worker * @stable ICU 57 447*0e209d39SAndroid Build Coastguard Worker */ 448*0e209d39SAndroid Build Coastguard Worker UCHAR_EMOJI_PRESENTATION=58, 449*0e209d39SAndroid Build Coastguard Worker /** 450*0e209d39SAndroid Build Coastguard Worker * Binary property Emoji_Modifier. 451*0e209d39SAndroid Build Coastguard Worker * See http://www.unicode.org/reports/tr51/#Emoji_Properties 452*0e209d39SAndroid Build Coastguard Worker * 453*0e209d39SAndroid Build Coastguard Worker * @stable ICU 57 454*0e209d39SAndroid Build Coastguard Worker */ 455*0e209d39SAndroid Build Coastguard Worker UCHAR_EMOJI_MODIFIER=59, 456*0e209d39SAndroid Build Coastguard Worker /** 457*0e209d39SAndroid Build Coastguard Worker * Binary property Emoji_Modifier_Base. 458*0e209d39SAndroid Build Coastguard Worker * See http://www.unicode.org/reports/tr51/#Emoji_Properties 459*0e209d39SAndroid Build Coastguard Worker * 460*0e209d39SAndroid Build Coastguard Worker * @stable ICU 57 461*0e209d39SAndroid Build Coastguard Worker */ 462*0e209d39SAndroid Build Coastguard Worker UCHAR_EMOJI_MODIFIER_BASE=60, 463*0e209d39SAndroid Build Coastguard Worker /** 464*0e209d39SAndroid Build Coastguard Worker * Binary property Emoji_Component. 465*0e209d39SAndroid Build Coastguard Worker * See http://www.unicode.org/reports/tr51/#Emoji_Properties 466*0e209d39SAndroid Build Coastguard Worker * 467*0e209d39SAndroid Build Coastguard Worker * @stable ICU 60 468*0e209d39SAndroid Build Coastguard Worker */ 469*0e209d39SAndroid Build Coastguard Worker UCHAR_EMOJI_COMPONENT=61, 470*0e209d39SAndroid Build Coastguard Worker /** 471*0e209d39SAndroid Build Coastguard Worker * Binary property Regional_Indicator. 472*0e209d39SAndroid Build Coastguard Worker * @stable ICU 60 473*0e209d39SAndroid Build Coastguard Worker */ 474*0e209d39SAndroid Build Coastguard Worker UCHAR_REGIONAL_INDICATOR=62, 475*0e209d39SAndroid Build Coastguard Worker /** 476*0e209d39SAndroid Build Coastguard Worker * Binary property Prepended_Concatenation_Mark. 477*0e209d39SAndroid Build Coastguard Worker * @stable ICU 60 478*0e209d39SAndroid Build Coastguard Worker */ 479*0e209d39SAndroid Build Coastguard Worker UCHAR_PREPENDED_CONCATENATION_MARK=63, 480*0e209d39SAndroid Build Coastguard Worker /** 481*0e209d39SAndroid Build Coastguard Worker * Binary property Extended_Pictographic. 482*0e209d39SAndroid Build Coastguard Worker * See http://www.unicode.org/reports/tr51/#Emoji_Properties 483*0e209d39SAndroid Build Coastguard Worker * 484*0e209d39SAndroid Build Coastguard Worker * @stable ICU 62 485*0e209d39SAndroid Build Coastguard Worker */ 486*0e209d39SAndroid Build Coastguard Worker UCHAR_EXTENDED_PICTOGRAPHIC=64, 487*0e209d39SAndroid Build Coastguard Worker /** 488*0e209d39SAndroid Build Coastguard Worker * Binary property of strings Basic_Emoji. 489*0e209d39SAndroid Build Coastguard Worker * See https://www.unicode.org/reports/tr51/#Emoji_Sets 490*0e209d39SAndroid Build Coastguard Worker * 491*0e209d39SAndroid Build Coastguard Worker * @stable ICU 70 492*0e209d39SAndroid Build Coastguard Worker */ 493*0e209d39SAndroid Build Coastguard Worker UCHAR_BASIC_EMOJI=65, 494*0e209d39SAndroid Build Coastguard Worker /** 495*0e209d39SAndroid Build Coastguard Worker * Binary property of strings Emoji_Keycap_Sequence. 496*0e209d39SAndroid Build Coastguard Worker * See https://www.unicode.org/reports/tr51/#Emoji_Sets 497*0e209d39SAndroid Build Coastguard Worker * 498*0e209d39SAndroid Build Coastguard Worker * @stable ICU 70 499*0e209d39SAndroid Build Coastguard Worker */ 500*0e209d39SAndroid Build Coastguard Worker UCHAR_EMOJI_KEYCAP_SEQUENCE=66, 501*0e209d39SAndroid Build Coastguard Worker /** 502*0e209d39SAndroid Build Coastguard Worker * Binary property of strings RGI_Emoji_Modifier_Sequence. 503*0e209d39SAndroid Build Coastguard Worker * See https://www.unicode.org/reports/tr51/#Emoji_Sets 504*0e209d39SAndroid Build Coastguard Worker * 505*0e209d39SAndroid Build Coastguard Worker * @stable ICU 70 506*0e209d39SAndroid Build Coastguard Worker */ 507*0e209d39SAndroid Build Coastguard Worker UCHAR_RGI_EMOJI_MODIFIER_SEQUENCE=67, 508*0e209d39SAndroid Build Coastguard Worker /** 509*0e209d39SAndroid Build Coastguard Worker * Binary property of strings RGI_Emoji_Flag_Sequence. 510*0e209d39SAndroid Build Coastguard Worker * See https://www.unicode.org/reports/tr51/#Emoji_Sets 511*0e209d39SAndroid Build Coastguard Worker * 512*0e209d39SAndroid Build Coastguard Worker * @stable ICU 70 513*0e209d39SAndroid Build Coastguard Worker */ 514*0e209d39SAndroid Build Coastguard Worker UCHAR_RGI_EMOJI_FLAG_SEQUENCE=68, 515*0e209d39SAndroid Build Coastguard Worker /** 516*0e209d39SAndroid Build Coastguard Worker * Binary property of strings RGI_Emoji_Tag_Sequence. 517*0e209d39SAndroid Build Coastguard Worker * See https://www.unicode.org/reports/tr51/#Emoji_Sets 518*0e209d39SAndroid Build Coastguard Worker * 519*0e209d39SAndroid Build Coastguard Worker * @stable ICU 70 520*0e209d39SAndroid Build Coastguard Worker */ 521*0e209d39SAndroid Build Coastguard Worker UCHAR_RGI_EMOJI_TAG_SEQUENCE=69, 522*0e209d39SAndroid Build Coastguard Worker /** 523*0e209d39SAndroid Build Coastguard Worker * Binary property of strings RGI_Emoji_ZWJ_Sequence. 524*0e209d39SAndroid Build Coastguard Worker * See https://www.unicode.org/reports/tr51/#Emoji_Sets 525*0e209d39SAndroid Build Coastguard Worker * 526*0e209d39SAndroid Build Coastguard Worker * @stable ICU 70 527*0e209d39SAndroid Build Coastguard Worker */ 528*0e209d39SAndroid Build Coastguard Worker UCHAR_RGI_EMOJI_ZWJ_SEQUENCE=70, 529*0e209d39SAndroid Build Coastguard Worker /** 530*0e209d39SAndroid Build Coastguard Worker * Binary property of strings RGI_Emoji. 531*0e209d39SAndroid Build Coastguard Worker * See https://www.unicode.org/reports/tr51/#Emoji_Sets 532*0e209d39SAndroid Build Coastguard Worker * 533*0e209d39SAndroid Build Coastguard Worker * @stable ICU 70 534*0e209d39SAndroid Build Coastguard Worker */ 535*0e209d39SAndroid Build Coastguard Worker UCHAR_RGI_EMOJI=71, 536*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_DRAFT_API 537*0e209d39SAndroid Build Coastguard Worker /** 538*0e209d39SAndroid Build Coastguard Worker * Binary property IDS_Unary_Operator. 539*0e209d39SAndroid Build Coastguard Worker * For programmatic determination of Ideographic Description Sequences. 540*0e209d39SAndroid Build Coastguard Worker * 541*0e209d39SAndroid Build Coastguard Worker * @draft ICU 74 542*0e209d39SAndroid Build Coastguard Worker */ 543*0e209d39SAndroid Build Coastguard Worker UCHAR_IDS_UNARY_OPERATOR=72, 544*0e209d39SAndroid Build Coastguard Worker /** 545*0e209d39SAndroid Build Coastguard Worker * Binary property ID_Compat_Math_Start. 546*0e209d39SAndroid Build Coastguard Worker * Used in mathematical identifier profile in UAX #31. 547*0e209d39SAndroid Build Coastguard Worker * @draft ICU 74 548*0e209d39SAndroid Build Coastguard Worker */ 549*0e209d39SAndroid Build Coastguard Worker UCHAR_ID_COMPAT_MATH_START=73, 550*0e209d39SAndroid Build Coastguard Worker /** 551*0e209d39SAndroid Build Coastguard Worker * Binary property ID_Compat_Math_Continue. 552*0e209d39SAndroid Build Coastguard Worker * Used in mathematical identifier profile in UAX #31. 553*0e209d39SAndroid Build Coastguard Worker * @draft ICU 74 554*0e209d39SAndroid Build Coastguard Worker */ 555*0e209d39SAndroid Build Coastguard Worker UCHAR_ID_COMPAT_MATH_CONTINUE=74, 556*0e209d39SAndroid Build Coastguard Worker #endif // U_HIDE_DRAFT_API 557*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_DEPRECATED_API 558*0e209d39SAndroid Build Coastguard Worker /** 559*0e209d39SAndroid Build Coastguard Worker * One more than the last constant for binary Unicode properties. 560*0e209d39SAndroid Build Coastguard Worker * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. 561*0e209d39SAndroid Build Coastguard Worker */ 562*0e209d39SAndroid Build Coastguard Worker UCHAR_BINARY_LIMIT=75, 563*0e209d39SAndroid Build Coastguard Worker #endif // U_HIDE_DEPRECATED_API 564*0e209d39SAndroid Build Coastguard Worker 565*0e209d39SAndroid Build Coastguard Worker /** Enumerated property Bidi_Class. 566*0e209d39SAndroid Build Coastguard Worker Same as u_charDirection, returns UCharDirection values. @stable ICU 2.2 */ 567*0e209d39SAndroid Build Coastguard Worker UCHAR_BIDI_CLASS=0x1000, 568*0e209d39SAndroid Build Coastguard Worker /** First constant for enumerated/integer Unicode properties. @stable ICU 2.2 */ 569*0e209d39SAndroid Build Coastguard Worker UCHAR_INT_START=UCHAR_BIDI_CLASS, 570*0e209d39SAndroid Build Coastguard Worker /** Enumerated property Block. 571*0e209d39SAndroid Build Coastguard Worker Same as ublock_getCode, returns UBlockCode values. @stable ICU 2.2 */ 572*0e209d39SAndroid Build Coastguard Worker UCHAR_BLOCK=0x1001, 573*0e209d39SAndroid Build Coastguard Worker /** Enumerated property Canonical_Combining_Class. 574*0e209d39SAndroid Build Coastguard Worker Same as u_getCombiningClass, returns 8-bit numeric values. @stable ICU 2.2 */ 575*0e209d39SAndroid Build Coastguard Worker UCHAR_CANONICAL_COMBINING_CLASS=0x1002, 576*0e209d39SAndroid Build Coastguard Worker /** Enumerated property Decomposition_Type. 577*0e209d39SAndroid Build Coastguard Worker Returns UDecompositionType values. @stable ICU 2.2 */ 578*0e209d39SAndroid Build Coastguard Worker UCHAR_DECOMPOSITION_TYPE=0x1003, 579*0e209d39SAndroid Build Coastguard Worker /** Enumerated property East_Asian_Width. 580*0e209d39SAndroid Build Coastguard Worker See http://www.unicode.org/reports/tr11/ 581*0e209d39SAndroid Build Coastguard Worker Returns UEastAsianWidth values. @stable ICU 2.2 */ 582*0e209d39SAndroid Build Coastguard Worker UCHAR_EAST_ASIAN_WIDTH=0x1004, 583*0e209d39SAndroid Build Coastguard Worker /** Enumerated property General_Category. 584*0e209d39SAndroid Build Coastguard Worker Same as u_charType, returns UCharCategory values. @stable ICU 2.2 */ 585*0e209d39SAndroid Build Coastguard Worker UCHAR_GENERAL_CATEGORY=0x1005, 586*0e209d39SAndroid Build Coastguard Worker /** Enumerated property Joining_Group. 587*0e209d39SAndroid Build Coastguard Worker Returns UJoiningGroup values. @stable ICU 2.2 */ 588*0e209d39SAndroid Build Coastguard Worker UCHAR_JOINING_GROUP=0x1006, 589*0e209d39SAndroid Build Coastguard Worker /** Enumerated property Joining_Type. 590*0e209d39SAndroid Build Coastguard Worker Returns UJoiningType values. @stable ICU 2.2 */ 591*0e209d39SAndroid Build Coastguard Worker UCHAR_JOINING_TYPE=0x1007, 592*0e209d39SAndroid Build Coastguard Worker /** Enumerated property Line_Break. 593*0e209d39SAndroid Build Coastguard Worker Returns ULineBreak values. @stable ICU 2.2 */ 594*0e209d39SAndroid Build Coastguard Worker UCHAR_LINE_BREAK=0x1008, 595*0e209d39SAndroid Build Coastguard Worker /** Enumerated property Numeric_Type. 596*0e209d39SAndroid Build Coastguard Worker Returns UNumericType values. @stable ICU 2.2 */ 597*0e209d39SAndroid Build Coastguard Worker UCHAR_NUMERIC_TYPE=0x1009, 598*0e209d39SAndroid Build Coastguard Worker /** Enumerated property Script. 599*0e209d39SAndroid Build Coastguard Worker Same as uscript_getScript, returns UScriptCode values. @stable ICU 2.2 */ 600*0e209d39SAndroid Build Coastguard Worker UCHAR_SCRIPT=0x100A, 601*0e209d39SAndroid Build Coastguard Worker /** Enumerated property Hangul_Syllable_Type, new in Unicode 4. 602*0e209d39SAndroid Build Coastguard Worker Returns UHangulSyllableType values. @stable ICU 2.6 */ 603*0e209d39SAndroid Build Coastguard Worker UCHAR_HANGUL_SYLLABLE_TYPE=0x100B, 604*0e209d39SAndroid Build Coastguard Worker /** Enumerated property NFD_Quick_Check. 605*0e209d39SAndroid Build Coastguard Worker Returns UNormalizationCheckResult values. @stable ICU 3.0 */ 606*0e209d39SAndroid Build Coastguard Worker UCHAR_NFD_QUICK_CHECK=0x100C, 607*0e209d39SAndroid Build Coastguard Worker /** Enumerated property NFKD_Quick_Check. 608*0e209d39SAndroid Build Coastguard Worker Returns UNormalizationCheckResult values. @stable ICU 3.0 */ 609*0e209d39SAndroid Build Coastguard Worker UCHAR_NFKD_QUICK_CHECK=0x100D, 610*0e209d39SAndroid Build Coastguard Worker /** Enumerated property NFC_Quick_Check. 611*0e209d39SAndroid Build Coastguard Worker Returns UNormalizationCheckResult values. @stable ICU 3.0 */ 612*0e209d39SAndroid Build Coastguard Worker UCHAR_NFC_QUICK_CHECK=0x100E, 613*0e209d39SAndroid Build Coastguard Worker /** Enumerated property NFKC_Quick_Check. 614*0e209d39SAndroid Build Coastguard Worker Returns UNormalizationCheckResult values. @stable ICU 3.0 */ 615*0e209d39SAndroid Build Coastguard Worker UCHAR_NFKC_QUICK_CHECK=0x100F, 616*0e209d39SAndroid Build Coastguard Worker /** Enumerated property Lead_Canonical_Combining_Class. 617*0e209d39SAndroid Build Coastguard Worker ICU-specific property for the ccc of the first code point 618*0e209d39SAndroid Build Coastguard Worker of the decomposition, or lccc(c)=ccc(NFD(c)[0]). 619*0e209d39SAndroid Build Coastguard Worker Useful for checking for canonically ordered text; 620*0e209d39SAndroid Build Coastguard Worker see UNORM_FCD and http://www.unicode.org/notes/tn5/#FCD . 621*0e209d39SAndroid Build Coastguard Worker Returns 8-bit numeric values like UCHAR_CANONICAL_COMBINING_CLASS. @stable ICU 3.0 */ 622*0e209d39SAndroid Build Coastguard Worker UCHAR_LEAD_CANONICAL_COMBINING_CLASS=0x1010, 623*0e209d39SAndroid Build Coastguard Worker /** Enumerated property Trail_Canonical_Combining_Class. 624*0e209d39SAndroid Build Coastguard Worker ICU-specific property for the ccc of the last code point 625*0e209d39SAndroid Build Coastguard Worker of the decomposition, or tccc(c)=ccc(NFD(c)[last]). 626*0e209d39SAndroid Build Coastguard Worker Useful for checking for canonically ordered text; 627*0e209d39SAndroid Build Coastguard Worker see UNORM_FCD and http://www.unicode.org/notes/tn5/#FCD . 628*0e209d39SAndroid Build Coastguard Worker Returns 8-bit numeric values like UCHAR_CANONICAL_COMBINING_CLASS. @stable ICU 3.0 */ 629*0e209d39SAndroid Build Coastguard Worker UCHAR_TRAIL_CANONICAL_COMBINING_CLASS=0x1011, 630*0e209d39SAndroid Build Coastguard Worker /** Enumerated property Grapheme_Cluster_Break (new in Unicode 4.1). 631*0e209d39SAndroid Build Coastguard Worker Used in UAX #29: Text Boundaries 632*0e209d39SAndroid Build Coastguard Worker (http://www.unicode.org/reports/tr29/) 633*0e209d39SAndroid Build Coastguard Worker Returns UGraphemeClusterBreak values. @stable ICU 3.4 */ 634*0e209d39SAndroid Build Coastguard Worker UCHAR_GRAPHEME_CLUSTER_BREAK=0x1012, 635*0e209d39SAndroid Build Coastguard Worker /** Enumerated property Sentence_Break (new in Unicode 4.1). 636*0e209d39SAndroid Build Coastguard Worker Used in UAX #29: Text Boundaries 637*0e209d39SAndroid Build Coastguard Worker (http://www.unicode.org/reports/tr29/) 638*0e209d39SAndroid Build Coastguard Worker Returns USentenceBreak values. @stable ICU 3.4 */ 639*0e209d39SAndroid Build Coastguard Worker UCHAR_SENTENCE_BREAK=0x1013, 640*0e209d39SAndroid Build Coastguard Worker /** Enumerated property Word_Break (new in Unicode 4.1). 641*0e209d39SAndroid Build Coastguard Worker Used in UAX #29: Text Boundaries 642*0e209d39SAndroid Build Coastguard Worker (http://www.unicode.org/reports/tr29/) 643*0e209d39SAndroid Build Coastguard Worker Returns UWordBreakValues values. @stable ICU 3.4 */ 644*0e209d39SAndroid Build Coastguard Worker UCHAR_WORD_BREAK=0x1014, 645*0e209d39SAndroid Build Coastguard Worker /** Enumerated property Bidi_Paired_Bracket_Type (new in Unicode 6.3). 646*0e209d39SAndroid Build Coastguard Worker Used in UAX #9: Unicode Bidirectional Algorithm 647*0e209d39SAndroid Build Coastguard Worker (http://www.unicode.org/reports/tr9/) 648*0e209d39SAndroid Build Coastguard Worker Returns UBidiPairedBracketType values. @stable ICU 52 */ 649*0e209d39SAndroid Build Coastguard Worker UCHAR_BIDI_PAIRED_BRACKET_TYPE=0x1015, 650*0e209d39SAndroid Build Coastguard Worker /** 651*0e209d39SAndroid Build Coastguard Worker * Enumerated property Indic_Positional_Category. 652*0e209d39SAndroid Build Coastguard Worker * New in Unicode 6.0 as provisional property Indic_Matra_Category; 653*0e209d39SAndroid Build Coastguard Worker * renamed and changed to informative in Unicode 8.0. 654*0e209d39SAndroid Build Coastguard Worker * See http://www.unicode.org/reports/tr44/#IndicPositionalCategory.txt 655*0e209d39SAndroid Build Coastguard Worker * @stable ICU 63 656*0e209d39SAndroid Build Coastguard Worker */ 657*0e209d39SAndroid Build Coastguard Worker UCHAR_INDIC_POSITIONAL_CATEGORY=0x1016, 658*0e209d39SAndroid Build Coastguard Worker /** 659*0e209d39SAndroid Build Coastguard Worker * Enumerated property Indic_Syllabic_Category. 660*0e209d39SAndroid Build Coastguard Worker * New in Unicode 6.0 as provisional; informative since Unicode 8.0. 661*0e209d39SAndroid Build Coastguard Worker * See http://www.unicode.org/reports/tr44/#IndicSyllabicCategory.txt 662*0e209d39SAndroid Build Coastguard Worker * @stable ICU 63 663*0e209d39SAndroid Build Coastguard Worker */ 664*0e209d39SAndroid Build Coastguard Worker UCHAR_INDIC_SYLLABIC_CATEGORY=0x1017, 665*0e209d39SAndroid Build Coastguard Worker /** 666*0e209d39SAndroid Build Coastguard Worker * Enumerated property Vertical_Orientation. 667*0e209d39SAndroid Build Coastguard Worker * Used for UAX #50 Unicode Vertical Text Layout (https://www.unicode.org/reports/tr50/). 668*0e209d39SAndroid Build Coastguard Worker * New as a UCD property in Unicode 10.0. 669*0e209d39SAndroid Build Coastguard Worker * @stable ICU 63 670*0e209d39SAndroid Build Coastguard Worker */ 671*0e209d39SAndroid Build Coastguard Worker UCHAR_VERTICAL_ORIENTATION=0x1018, 672*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_DRAFT_API 673*0e209d39SAndroid Build Coastguard Worker /** 674*0e209d39SAndroid Build Coastguard Worker * Enumerated property Identifier_Status. 675*0e209d39SAndroid Build Coastguard Worker * Used for UTS #39 General Security Profile for Identifiers 676*0e209d39SAndroid Build Coastguard Worker * (https://www.unicode.org/reports/tr39/#General_Security_Profile). 677*0e209d39SAndroid Build Coastguard Worker * @draft ICU 75 678*0e209d39SAndroid Build Coastguard Worker */ 679*0e209d39SAndroid Build Coastguard Worker UCHAR_IDENTIFIER_STATUS=0x1019, 680*0e209d39SAndroid Build Coastguard Worker #endif // U_HIDE_DRAFT_API 681*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_DEPRECATED_API 682*0e209d39SAndroid Build Coastguard Worker /** 683*0e209d39SAndroid Build Coastguard Worker * One more than the last constant for enumerated/integer Unicode properties. 684*0e209d39SAndroid Build Coastguard Worker * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. 685*0e209d39SAndroid Build Coastguard Worker */ 686*0e209d39SAndroid Build Coastguard Worker UCHAR_INT_LIMIT=0x101A, 687*0e209d39SAndroid Build Coastguard Worker #endif // U_HIDE_DEPRECATED_API 688*0e209d39SAndroid Build Coastguard Worker 689*0e209d39SAndroid Build Coastguard Worker /** Bitmask property General_Category_Mask. 690*0e209d39SAndroid Build Coastguard Worker This is the General_Category property returned as a bit mask. 691*0e209d39SAndroid Build Coastguard Worker When used in u_getIntPropertyValue(c), same as U_MASK(u_charType(c)), 692*0e209d39SAndroid Build Coastguard Worker returns bit masks for UCharCategory values where exactly one bit is set. 693*0e209d39SAndroid Build Coastguard Worker When used with u_getPropertyValueName() and u_getPropertyValueEnum(), 694*0e209d39SAndroid Build Coastguard Worker a multi-bit mask is used for sets of categories like "Letters". 695*0e209d39SAndroid Build Coastguard Worker Mask values should be cast to uint32_t. 696*0e209d39SAndroid Build Coastguard Worker @stable ICU 2.4 */ 697*0e209d39SAndroid Build Coastguard Worker UCHAR_GENERAL_CATEGORY_MASK=0x2000, 698*0e209d39SAndroid Build Coastguard Worker /** First constant for bit-mask Unicode properties. @stable ICU 2.4 */ 699*0e209d39SAndroid Build Coastguard Worker UCHAR_MASK_START=UCHAR_GENERAL_CATEGORY_MASK, 700*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_DEPRECATED_API 701*0e209d39SAndroid Build Coastguard Worker /** 702*0e209d39SAndroid Build Coastguard Worker * One more than the last constant for bit-mask Unicode properties. 703*0e209d39SAndroid Build Coastguard Worker * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. 704*0e209d39SAndroid Build Coastguard Worker */ 705*0e209d39SAndroid Build Coastguard Worker UCHAR_MASK_LIMIT=0x2001, 706*0e209d39SAndroid Build Coastguard Worker #endif // U_HIDE_DEPRECATED_API 707*0e209d39SAndroid Build Coastguard Worker 708*0e209d39SAndroid Build Coastguard Worker /** Double property Numeric_Value. 709*0e209d39SAndroid Build Coastguard Worker Corresponds to u_getNumericValue. @stable ICU 2.4 */ 710*0e209d39SAndroid Build Coastguard Worker UCHAR_NUMERIC_VALUE=0x3000, 711*0e209d39SAndroid Build Coastguard Worker /** First constant for double Unicode properties. @stable ICU 2.4 */ 712*0e209d39SAndroid Build Coastguard Worker UCHAR_DOUBLE_START=UCHAR_NUMERIC_VALUE, 713*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_DEPRECATED_API 714*0e209d39SAndroid Build Coastguard Worker /** 715*0e209d39SAndroid Build Coastguard Worker * One more than the last constant for double Unicode properties. 716*0e209d39SAndroid Build Coastguard Worker * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. 717*0e209d39SAndroid Build Coastguard Worker */ 718*0e209d39SAndroid Build Coastguard Worker UCHAR_DOUBLE_LIMIT=0x3001, 719*0e209d39SAndroid Build Coastguard Worker #endif // U_HIDE_DEPRECATED_API 720*0e209d39SAndroid Build Coastguard Worker 721*0e209d39SAndroid Build Coastguard Worker /** String property Age. 722*0e209d39SAndroid Build Coastguard Worker Corresponds to u_charAge. @stable ICU 2.4 */ 723*0e209d39SAndroid Build Coastguard Worker UCHAR_AGE=0x4000, 724*0e209d39SAndroid Build Coastguard Worker /** First constant for string Unicode properties. @stable ICU 2.4 */ 725*0e209d39SAndroid Build Coastguard Worker UCHAR_STRING_START=UCHAR_AGE, 726*0e209d39SAndroid Build Coastguard Worker /** String property Bidi_Mirroring_Glyph. 727*0e209d39SAndroid Build Coastguard Worker Corresponds to u_charMirror. @stable ICU 2.4 */ 728*0e209d39SAndroid Build Coastguard Worker UCHAR_BIDI_MIRRORING_GLYPH=0x4001, 729*0e209d39SAndroid Build Coastguard Worker /** String property Case_Folding. 730*0e209d39SAndroid Build Coastguard Worker Corresponds to u_strFoldCase in ustring.h. @stable ICU 2.4 */ 731*0e209d39SAndroid Build Coastguard Worker UCHAR_CASE_FOLDING=0x4002, 732*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_DEPRECATED_API 733*0e209d39SAndroid Build Coastguard Worker /** Deprecated string property ISO_Comment. 734*0e209d39SAndroid Build Coastguard Worker Corresponds to u_getISOComment. @deprecated ICU 49 */ 735*0e209d39SAndroid Build Coastguard Worker UCHAR_ISO_COMMENT=0x4003, 736*0e209d39SAndroid Build Coastguard Worker #endif /* U_HIDE_DEPRECATED_API */ 737*0e209d39SAndroid Build Coastguard Worker /** String property Lowercase_Mapping. 738*0e209d39SAndroid Build Coastguard Worker Corresponds to u_strToLower in ustring.h. @stable ICU 2.4 */ 739*0e209d39SAndroid Build Coastguard Worker UCHAR_LOWERCASE_MAPPING=0x4004, 740*0e209d39SAndroid Build Coastguard Worker /** String property Name. 741*0e209d39SAndroid Build Coastguard Worker Corresponds to u_charName. @stable ICU 2.4 */ 742*0e209d39SAndroid Build Coastguard Worker UCHAR_NAME=0x4005, 743*0e209d39SAndroid Build Coastguard Worker /** String property Simple_Case_Folding. 744*0e209d39SAndroid Build Coastguard Worker Corresponds to u_foldCase. @stable ICU 2.4 */ 745*0e209d39SAndroid Build Coastguard Worker UCHAR_SIMPLE_CASE_FOLDING=0x4006, 746*0e209d39SAndroid Build Coastguard Worker /** String property Simple_Lowercase_Mapping. 747*0e209d39SAndroid Build Coastguard Worker Corresponds to u_tolower. @stable ICU 2.4 */ 748*0e209d39SAndroid Build Coastguard Worker UCHAR_SIMPLE_LOWERCASE_MAPPING=0x4007, 749*0e209d39SAndroid Build Coastguard Worker /** String property Simple_Titlecase_Mapping. 750*0e209d39SAndroid Build Coastguard Worker Corresponds to u_totitle. @stable ICU 2.4 */ 751*0e209d39SAndroid Build Coastguard Worker UCHAR_SIMPLE_TITLECASE_MAPPING=0x4008, 752*0e209d39SAndroid Build Coastguard Worker /** String property Simple_Uppercase_Mapping. 753*0e209d39SAndroid Build Coastguard Worker Corresponds to u_toupper. @stable ICU 2.4 */ 754*0e209d39SAndroid Build Coastguard Worker UCHAR_SIMPLE_UPPERCASE_MAPPING=0x4009, 755*0e209d39SAndroid Build Coastguard Worker /** String property Titlecase_Mapping. 756*0e209d39SAndroid Build Coastguard Worker Corresponds to u_strToTitle in ustring.h. @stable ICU 2.4 */ 757*0e209d39SAndroid Build Coastguard Worker UCHAR_TITLECASE_MAPPING=0x400A, 758*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_DEPRECATED_API 759*0e209d39SAndroid Build Coastguard Worker /** String property Unicode_1_Name. 760*0e209d39SAndroid Build Coastguard Worker This property is of little practical value. 761*0e209d39SAndroid Build Coastguard Worker Beginning with ICU 49, ICU APIs return an empty string for this property. 762*0e209d39SAndroid Build Coastguard Worker Corresponds to u_charName(U_UNICODE_10_CHAR_NAME). @deprecated ICU 49 */ 763*0e209d39SAndroid Build Coastguard Worker UCHAR_UNICODE_1_NAME=0x400B, 764*0e209d39SAndroid Build Coastguard Worker #endif /* U_HIDE_DEPRECATED_API */ 765*0e209d39SAndroid Build Coastguard Worker /** String property Uppercase_Mapping. 766*0e209d39SAndroid Build Coastguard Worker Corresponds to u_strToUpper in ustring.h. @stable ICU 2.4 */ 767*0e209d39SAndroid Build Coastguard Worker UCHAR_UPPERCASE_MAPPING=0x400C, 768*0e209d39SAndroid Build Coastguard Worker /** String property Bidi_Paired_Bracket (new in Unicode 6.3). 769*0e209d39SAndroid Build Coastguard Worker Corresponds to u_getBidiPairedBracket. @stable ICU 52 */ 770*0e209d39SAndroid Build Coastguard Worker UCHAR_BIDI_PAIRED_BRACKET=0x400D, 771*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_DEPRECATED_API 772*0e209d39SAndroid Build Coastguard Worker /** 773*0e209d39SAndroid Build Coastguard Worker * One more than the last constant for string Unicode properties. 774*0e209d39SAndroid Build Coastguard Worker * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. 775*0e209d39SAndroid Build Coastguard Worker */ 776*0e209d39SAndroid Build Coastguard Worker UCHAR_STRING_LIMIT=0x400E, 777*0e209d39SAndroid Build Coastguard Worker #endif // U_HIDE_DEPRECATED_API 778*0e209d39SAndroid Build Coastguard Worker 779*0e209d39SAndroid Build Coastguard Worker /** Miscellaneous property Script_Extensions (new in Unicode 6.0). 780*0e209d39SAndroid Build Coastguard Worker Some characters are commonly used in multiple scripts. 781*0e209d39SAndroid Build Coastguard Worker For more information, see UAX #24: http://www.unicode.org/reports/tr24/. 782*0e209d39SAndroid Build Coastguard Worker Corresponds to uscript_hasScript and uscript_getScriptExtensions in uscript.h. 783*0e209d39SAndroid Build Coastguard Worker @stable ICU 4.6 */ 784*0e209d39SAndroid Build Coastguard Worker UCHAR_SCRIPT_EXTENSIONS=0x7000, 785*0e209d39SAndroid Build Coastguard Worker /** First constant for Unicode properties with unusual value types. @stable ICU 4.6 */ 786*0e209d39SAndroid Build Coastguard Worker UCHAR_OTHER_PROPERTY_START=UCHAR_SCRIPT_EXTENSIONS, 787*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_DRAFT_API 788*0e209d39SAndroid Build Coastguard Worker /** 789*0e209d39SAndroid Build Coastguard Worker * Miscellaneous property Identifier_Type. 790*0e209d39SAndroid Build Coastguard Worker * Used for UTS #39 General Security Profile for Identifiers 791*0e209d39SAndroid Build Coastguard Worker * (https://www.unicode.org/reports/tr39/#General_Security_Profile). 792*0e209d39SAndroid Build Coastguard Worker * 793*0e209d39SAndroid Build Coastguard Worker * Corresponds to u_hasIDType() and u_getIDTypes(). 794*0e209d39SAndroid Build Coastguard Worker * 795*0e209d39SAndroid Build Coastguard Worker * Each code point maps to a <i>set</i> of UIdentifierType values. 796*0e209d39SAndroid Build Coastguard Worker * 797*0e209d39SAndroid Build Coastguard Worker * @see u_hasIDType 798*0e209d39SAndroid Build Coastguard Worker * @see u_getIDTypes 799*0e209d39SAndroid Build Coastguard Worker * @draft ICU 75 800*0e209d39SAndroid Build Coastguard Worker */ 801*0e209d39SAndroid Build Coastguard Worker UCHAR_IDENTIFIER_TYPE=0x7001, 802*0e209d39SAndroid Build Coastguard Worker #endif // U_HIDE_DRAFT_API 803*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_DEPRECATED_API 804*0e209d39SAndroid Build Coastguard Worker /** 805*0e209d39SAndroid Build Coastguard Worker * One more than the last constant for Unicode properties with unusual value types. 806*0e209d39SAndroid Build Coastguard Worker * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. 807*0e209d39SAndroid Build Coastguard Worker */ 808*0e209d39SAndroid Build Coastguard Worker UCHAR_OTHER_PROPERTY_LIMIT=0x7002, 809*0e209d39SAndroid Build Coastguard Worker #endif // U_HIDE_DEPRECATED_API 810*0e209d39SAndroid Build Coastguard Worker 811*0e209d39SAndroid Build Coastguard Worker /** Represents a nonexistent or invalid property or property value. @stable ICU 2.4 */ 812*0e209d39SAndroid Build Coastguard Worker UCHAR_INVALID_CODE = -1 813*0e209d39SAndroid Build Coastguard Worker } UProperty; 814*0e209d39SAndroid Build Coastguard Worker 815*0e209d39SAndroid Build Coastguard Worker /** 816*0e209d39SAndroid Build Coastguard Worker * Data for enumerated Unicode general category types. 817*0e209d39SAndroid Build Coastguard Worker * See http://www.unicode.org/Public/UNIDATA/UnicodeData.html . 818*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 819*0e209d39SAndroid Build Coastguard Worker */ 820*0e209d39SAndroid Build Coastguard Worker typedef enum UCharCategory 821*0e209d39SAndroid Build Coastguard Worker { 822*0e209d39SAndroid Build Coastguard Worker /* 823*0e209d39SAndroid Build Coastguard Worker * Note: UCharCategory constants and their API comments are parsed by preparseucd.py. 824*0e209d39SAndroid Build Coastguard Worker * It matches pairs of lines like 825*0e209d39SAndroid Build Coastguard Worker * / ** <Unicode 2-letter General_Category value> comment... * / 826*0e209d39SAndroid Build Coastguard Worker * U_<[A-Z_]+> = <integer>, 827*0e209d39SAndroid Build Coastguard Worker */ 828*0e209d39SAndroid Build Coastguard Worker 829*0e209d39SAndroid Build Coastguard Worker /** Non-category for unassigned and non-character code points. @stable ICU 2.0 */ 830*0e209d39SAndroid Build Coastguard Worker U_UNASSIGNED = 0, 831*0e209d39SAndroid Build Coastguard Worker /** Cn "Other, Not Assigned (no characters in [UnicodeData.txt] have this property)" (same as U_UNASSIGNED!) @stable ICU 2.0 */ 832*0e209d39SAndroid Build Coastguard Worker U_GENERAL_OTHER_TYPES = 0, 833*0e209d39SAndroid Build Coastguard Worker /** Lu @stable ICU 2.0 */ 834*0e209d39SAndroid Build Coastguard Worker U_UPPERCASE_LETTER = 1, 835*0e209d39SAndroid Build Coastguard Worker /** Ll @stable ICU 2.0 */ 836*0e209d39SAndroid Build Coastguard Worker U_LOWERCASE_LETTER = 2, 837*0e209d39SAndroid Build Coastguard Worker /** Lt @stable ICU 2.0 */ 838*0e209d39SAndroid Build Coastguard Worker U_TITLECASE_LETTER = 3, 839*0e209d39SAndroid Build Coastguard Worker /** Lm @stable ICU 2.0 */ 840*0e209d39SAndroid Build Coastguard Worker U_MODIFIER_LETTER = 4, 841*0e209d39SAndroid Build Coastguard Worker /** Lo @stable ICU 2.0 */ 842*0e209d39SAndroid Build Coastguard Worker U_OTHER_LETTER = 5, 843*0e209d39SAndroid Build Coastguard Worker /** Mn @stable ICU 2.0 */ 844*0e209d39SAndroid Build Coastguard Worker U_NON_SPACING_MARK = 6, 845*0e209d39SAndroid Build Coastguard Worker /** Me @stable ICU 2.0 */ 846*0e209d39SAndroid Build Coastguard Worker U_ENCLOSING_MARK = 7, 847*0e209d39SAndroid Build Coastguard Worker /** Mc @stable ICU 2.0 */ 848*0e209d39SAndroid Build Coastguard Worker U_COMBINING_SPACING_MARK = 8, 849*0e209d39SAndroid Build Coastguard Worker /** Nd @stable ICU 2.0 */ 850*0e209d39SAndroid Build Coastguard Worker U_DECIMAL_DIGIT_NUMBER = 9, 851*0e209d39SAndroid Build Coastguard Worker /** Nl @stable ICU 2.0 */ 852*0e209d39SAndroid Build Coastguard Worker U_LETTER_NUMBER = 10, 853*0e209d39SAndroid Build Coastguard Worker /** No @stable ICU 2.0 */ 854*0e209d39SAndroid Build Coastguard Worker U_OTHER_NUMBER = 11, 855*0e209d39SAndroid Build Coastguard Worker /** Zs @stable ICU 2.0 */ 856*0e209d39SAndroid Build Coastguard Worker U_SPACE_SEPARATOR = 12, 857*0e209d39SAndroid Build Coastguard Worker /** Zl @stable ICU 2.0 */ 858*0e209d39SAndroid Build Coastguard Worker U_LINE_SEPARATOR = 13, 859*0e209d39SAndroid Build Coastguard Worker /** Zp @stable ICU 2.0 */ 860*0e209d39SAndroid Build Coastguard Worker U_PARAGRAPH_SEPARATOR = 14, 861*0e209d39SAndroid Build Coastguard Worker /** Cc @stable ICU 2.0 */ 862*0e209d39SAndroid Build Coastguard Worker U_CONTROL_CHAR = 15, 863*0e209d39SAndroid Build Coastguard Worker /** Cf @stable ICU 2.0 */ 864*0e209d39SAndroid Build Coastguard Worker U_FORMAT_CHAR = 16, 865*0e209d39SAndroid Build Coastguard Worker /** Co @stable ICU 2.0 */ 866*0e209d39SAndroid Build Coastguard Worker U_PRIVATE_USE_CHAR = 17, 867*0e209d39SAndroid Build Coastguard Worker /** Cs @stable ICU 2.0 */ 868*0e209d39SAndroid Build Coastguard Worker U_SURROGATE = 18, 869*0e209d39SAndroid Build Coastguard Worker /** Pd @stable ICU 2.0 */ 870*0e209d39SAndroid Build Coastguard Worker U_DASH_PUNCTUATION = 19, 871*0e209d39SAndroid Build Coastguard Worker /** Ps @stable ICU 2.0 */ 872*0e209d39SAndroid Build Coastguard Worker U_START_PUNCTUATION = 20, 873*0e209d39SAndroid Build Coastguard Worker /** Pe @stable ICU 2.0 */ 874*0e209d39SAndroid Build Coastguard Worker U_END_PUNCTUATION = 21, 875*0e209d39SAndroid Build Coastguard Worker /** Pc @stable ICU 2.0 */ 876*0e209d39SAndroid Build Coastguard Worker U_CONNECTOR_PUNCTUATION = 22, 877*0e209d39SAndroid Build Coastguard Worker /** Po @stable ICU 2.0 */ 878*0e209d39SAndroid Build Coastguard Worker U_OTHER_PUNCTUATION = 23, 879*0e209d39SAndroid Build Coastguard Worker /** Sm @stable ICU 2.0 */ 880*0e209d39SAndroid Build Coastguard Worker U_MATH_SYMBOL = 24, 881*0e209d39SAndroid Build Coastguard Worker /** Sc @stable ICU 2.0 */ 882*0e209d39SAndroid Build Coastguard Worker U_CURRENCY_SYMBOL = 25, 883*0e209d39SAndroid Build Coastguard Worker /** Sk @stable ICU 2.0 */ 884*0e209d39SAndroid Build Coastguard Worker U_MODIFIER_SYMBOL = 26, 885*0e209d39SAndroid Build Coastguard Worker /** So @stable ICU 2.0 */ 886*0e209d39SAndroid Build Coastguard Worker U_OTHER_SYMBOL = 27, 887*0e209d39SAndroid Build Coastguard Worker /** Pi @stable ICU 2.0 */ 888*0e209d39SAndroid Build Coastguard Worker U_INITIAL_PUNCTUATION = 28, 889*0e209d39SAndroid Build Coastguard Worker /** Pf @stable ICU 2.0 */ 890*0e209d39SAndroid Build Coastguard Worker U_FINAL_PUNCTUATION = 29, 891*0e209d39SAndroid Build Coastguard Worker /** 892*0e209d39SAndroid Build Coastguard Worker * One higher than the last enum UCharCategory constant. 893*0e209d39SAndroid Build Coastguard Worker * This numeric value is stable (will not change), see 894*0e209d39SAndroid Build Coastguard Worker * http://www.unicode.org/policies/stability_policy.html#Property_Value 895*0e209d39SAndroid Build Coastguard Worker * 896*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 897*0e209d39SAndroid Build Coastguard Worker */ 898*0e209d39SAndroid Build Coastguard Worker U_CHAR_CATEGORY_COUNT 899*0e209d39SAndroid Build Coastguard Worker } UCharCategory; 900*0e209d39SAndroid Build Coastguard Worker 901*0e209d39SAndroid Build Coastguard Worker /** 902*0e209d39SAndroid Build Coastguard Worker * U_GC_XX_MASK constants are bit flags corresponding to Unicode 903*0e209d39SAndroid Build Coastguard Worker * general category values. 904*0e209d39SAndroid Build Coastguard Worker * For each category, the nth bit is set if the numeric value of the 905*0e209d39SAndroid Build Coastguard Worker * corresponding UCharCategory constant is n. 906*0e209d39SAndroid Build Coastguard Worker * 907*0e209d39SAndroid Build Coastguard Worker * There are also some U_GC_Y_MASK constants for groups of general categories 908*0e209d39SAndroid Build Coastguard Worker * like L for all letter categories. 909*0e209d39SAndroid Build Coastguard Worker * 910*0e209d39SAndroid Build Coastguard Worker * @see u_charType 911*0e209d39SAndroid Build Coastguard Worker * @see U_GET_GC_MASK 912*0e209d39SAndroid Build Coastguard Worker * @see UCharCategory 913*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.1 914*0e209d39SAndroid Build Coastguard Worker */ 915*0e209d39SAndroid Build Coastguard Worker #define U_GC_CN_MASK U_MASK(U_GENERAL_OTHER_TYPES) 916*0e209d39SAndroid Build Coastguard Worker 917*0e209d39SAndroid Build Coastguard Worker /** Mask constant for a UCharCategory. @stable ICU 2.1 */ 918*0e209d39SAndroid Build Coastguard Worker #define U_GC_LU_MASK U_MASK(U_UPPERCASE_LETTER) 919*0e209d39SAndroid Build Coastguard Worker /** Mask constant for a UCharCategory. @stable ICU 2.1 */ 920*0e209d39SAndroid Build Coastguard Worker #define U_GC_LL_MASK U_MASK(U_LOWERCASE_LETTER) 921*0e209d39SAndroid Build Coastguard Worker /** Mask constant for a UCharCategory. @stable ICU 2.1 */ 922*0e209d39SAndroid Build Coastguard Worker #define U_GC_LT_MASK U_MASK(U_TITLECASE_LETTER) 923*0e209d39SAndroid Build Coastguard Worker /** Mask constant for a UCharCategory. @stable ICU 2.1 */ 924*0e209d39SAndroid Build Coastguard Worker #define U_GC_LM_MASK U_MASK(U_MODIFIER_LETTER) 925*0e209d39SAndroid Build Coastguard Worker /** Mask constant for a UCharCategory. @stable ICU 2.1 */ 926*0e209d39SAndroid Build Coastguard Worker #define U_GC_LO_MASK U_MASK(U_OTHER_LETTER) 927*0e209d39SAndroid Build Coastguard Worker 928*0e209d39SAndroid Build Coastguard Worker /** Mask constant for a UCharCategory. @stable ICU 2.1 */ 929*0e209d39SAndroid Build Coastguard Worker #define U_GC_MN_MASK U_MASK(U_NON_SPACING_MARK) 930*0e209d39SAndroid Build Coastguard Worker /** Mask constant for a UCharCategory. @stable ICU 2.1 */ 931*0e209d39SAndroid Build Coastguard Worker #define U_GC_ME_MASK U_MASK(U_ENCLOSING_MARK) 932*0e209d39SAndroid Build Coastguard Worker /** Mask constant for a UCharCategory. @stable ICU 2.1 */ 933*0e209d39SAndroid Build Coastguard Worker #define U_GC_MC_MASK U_MASK(U_COMBINING_SPACING_MARK) 934*0e209d39SAndroid Build Coastguard Worker 935*0e209d39SAndroid Build Coastguard Worker /** Mask constant for a UCharCategory. @stable ICU 2.1 */ 936*0e209d39SAndroid Build Coastguard Worker #define U_GC_ND_MASK U_MASK(U_DECIMAL_DIGIT_NUMBER) 937*0e209d39SAndroid Build Coastguard Worker /** Mask constant for a UCharCategory. @stable ICU 2.1 */ 938*0e209d39SAndroid Build Coastguard Worker #define U_GC_NL_MASK U_MASK(U_LETTER_NUMBER) 939*0e209d39SAndroid Build Coastguard Worker /** Mask constant for a UCharCategory. @stable ICU 2.1 */ 940*0e209d39SAndroid Build Coastguard Worker #define U_GC_NO_MASK U_MASK(U_OTHER_NUMBER) 941*0e209d39SAndroid Build Coastguard Worker 942*0e209d39SAndroid Build Coastguard Worker /** Mask constant for a UCharCategory. @stable ICU 2.1 */ 943*0e209d39SAndroid Build Coastguard Worker #define U_GC_ZS_MASK U_MASK(U_SPACE_SEPARATOR) 944*0e209d39SAndroid Build Coastguard Worker /** Mask constant for a UCharCategory. @stable ICU 2.1 */ 945*0e209d39SAndroid Build Coastguard Worker #define U_GC_ZL_MASK U_MASK(U_LINE_SEPARATOR) 946*0e209d39SAndroid Build Coastguard Worker /** Mask constant for a UCharCategory. @stable ICU 2.1 */ 947*0e209d39SAndroid Build Coastguard Worker #define U_GC_ZP_MASK U_MASK(U_PARAGRAPH_SEPARATOR) 948*0e209d39SAndroid Build Coastguard Worker 949*0e209d39SAndroid Build Coastguard Worker /** Mask constant for a UCharCategory. @stable ICU 2.1 */ 950*0e209d39SAndroid Build Coastguard Worker #define U_GC_CC_MASK U_MASK(U_CONTROL_CHAR) 951*0e209d39SAndroid Build Coastguard Worker /** Mask constant for a UCharCategory. @stable ICU 2.1 */ 952*0e209d39SAndroid Build Coastguard Worker #define U_GC_CF_MASK U_MASK(U_FORMAT_CHAR) 953*0e209d39SAndroid Build Coastguard Worker /** Mask constant for a UCharCategory. @stable ICU 2.1 */ 954*0e209d39SAndroid Build Coastguard Worker #define U_GC_CO_MASK U_MASK(U_PRIVATE_USE_CHAR) 955*0e209d39SAndroid Build Coastguard Worker /** Mask constant for a UCharCategory. @stable ICU 2.1 */ 956*0e209d39SAndroid Build Coastguard Worker #define U_GC_CS_MASK U_MASK(U_SURROGATE) 957*0e209d39SAndroid Build Coastguard Worker 958*0e209d39SAndroid Build Coastguard Worker /** Mask constant for a UCharCategory. @stable ICU 2.1 */ 959*0e209d39SAndroid Build Coastguard Worker #define U_GC_PD_MASK U_MASK(U_DASH_PUNCTUATION) 960*0e209d39SAndroid Build Coastguard Worker /** Mask constant for a UCharCategory. @stable ICU 2.1 */ 961*0e209d39SAndroid Build Coastguard Worker #define U_GC_PS_MASK U_MASK(U_START_PUNCTUATION) 962*0e209d39SAndroid Build Coastguard Worker /** Mask constant for a UCharCategory. @stable ICU 2.1 */ 963*0e209d39SAndroid Build Coastguard Worker #define U_GC_PE_MASK U_MASK(U_END_PUNCTUATION) 964*0e209d39SAndroid Build Coastguard Worker /** Mask constant for a UCharCategory. @stable ICU 2.1 */ 965*0e209d39SAndroid Build Coastguard Worker #define U_GC_PC_MASK U_MASK(U_CONNECTOR_PUNCTUATION) 966*0e209d39SAndroid Build Coastguard Worker /** Mask constant for a UCharCategory. @stable ICU 2.1 */ 967*0e209d39SAndroid Build Coastguard Worker #define U_GC_PO_MASK U_MASK(U_OTHER_PUNCTUATION) 968*0e209d39SAndroid Build Coastguard Worker 969*0e209d39SAndroid Build Coastguard Worker /** Mask constant for a UCharCategory. @stable ICU 2.1 */ 970*0e209d39SAndroid Build Coastguard Worker #define U_GC_SM_MASK U_MASK(U_MATH_SYMBOL) 971*0e209d39SAndroid Build Coastguard Worker /** Mask constant for a UCharCategory. @stable ICU 2.1 */ 972*0e209d39SAndroid Build Coastguard Worker #define U_GC_SC_MASK U_MASK(U_CURRENCY_SYMBOL) 973*0e209d39SAndroid Build Coastguard Worker /** Mask constant for a UCharCategory. @stable ICU 2.1 */ 974*0e209d39SAndroid Build Coastguard Worker #define U_GC_SK_MASK U_MASK(U_MODIFIER_SYMBOL) 975*0e209d39SAndroid Build Coastguard Worker /** Mask constant for a UCharCategory. @stable ICU 2.1 */ 976*0e209d39SAndroid Build Coastguard Worker #define U_GC_SO_MASK U_MASK(U_OTHER_SYMBOL) 977*0e209d39SAndroid Build Coastguard Worker 978*0e209d39SAndroid Build Coastguard Worker /** Mask constant for a UCharCategory. @stable ICU 2.1 */ 979*0e209d39SAndroid Build Coastguard Worker #define U_GC_PI_MASK U_MASK(U_INITIAL_PUNCTUATION) 980*0e209d39SAndroid Build Coastguard Worker /** Mask constant for a UCharCategory. @stable ICU 2.1 */ 981*0e209d39SAndroid Build Coastguard Worker #define U_GC_PF_MASK U_MASK(U_FINAL_PUNCTUATION) 982*0e209d39SAndroid Build Coastguard Worker 983*0e209d39SAndroid Build Coastguard Worker 984*0e209d39SAndroid Build Coastguard Worker /** Mask constant for multiple UCharCategory bits (L Letters). @stable ICU 2.1 */ 985*0e209d39SAndroid Build Coastguard Worker #define U_GC_L_MASK \ 986*0e209d39SAndroid Build Coastguard Worker (U_GC_LU_MASK|U_GC_LL_MASK|U_GC_LT_MASK|U_GC_LM_MASK|U_GC_LO_MASK) 987*0e209d39SAndroid Build Coastguard Worker 988*0e209d39SAndroid Build Coastguard Worker /** Mask constant for multiple UCharCategory bits (LC Cased Letters). @stable ICU 2.1 */ 989*0e209d39SAndroid Build Coastguard Worker #define U_GC_LC_MASK \ 990*0e209d39SAndroid Build Coastguard Worker (U_GC_LU_MASK|U_GC_LL_MASK|U_GC_LT_MASK) 991*0e209d39SAndroid Build Coastguard Worker 992*0e209d39SAndroid Build Coastguard Worker /** Mask constant for multiple UCharCategory bits (M Marks). @stable ICU 2.1 */ 993*0e209d39SAndroid Build Coastguard Worker #define U_GC_M_MASK (U_GC_MN_MASK|U_GC_ME_MASK|U_GC_MC_MASK) 994*0e209d39SAndroid Build Coastguard Worker 995*0e209d39SAndroid Build Coastguard Worker /** Mask constant for multiple UCharCategory bits (N Numbers). @stable ICU 2.1 */ 996*0e209d39SAndroid Build Coastguard Worker #define U_GC_N_MASK (U_GC_ND_MASK|U_GC_NL_MASK|U_GC_NO_MASK) 997*0e209d39SAndroid Build Coastguard Worker 998*0e209d39SAndroid Build Coastguard Worker /** Mask constant for multiple UCharCategory bits (Z Separators). @stable ICU 2.1 */ 999*0e209d39SAndroid Build Coastguard Worker #define U_GC_Z_MASK (U_GC_ZS_MASK|U_GC_ZL_MASK|U_GC_ZP_MASK) 1000*0e209d39SAndroid Build Coastguard Worker 1001*0e209d39SAndroid Build Coastguard Worker /** Mask constant for multiple UCharCategory bits (C Others). @stable ICU 2.1 */ 1002*0e209d39SAndroid Build Coastguard Worker #define U_GC_C_MASK \ 1003*0e209d39SAndroid Build Coastguard Worker (U_GC_CN_MASK|U_GC_CC_MASK|U_GC_CF_MASK|U_GC_CO_MASK|U_GC_CS_MASK) 1004*0e209d39SAndroid Build Coastguard Worker 1005*0e209d39SAndroid Build Coastguard Worker /** Mask constant for multiple UCharCategory bits (P Punctuation). @stable ICU 2.1 */ 1006*0e209d39SAndroid Build Coastguard Worker #define U_GC_P_MASK \ 1007*0e209d39SAndroid Build Coastguard Worker (U_GC_PD_MASK|U_GC_PS_MASK|U_GC_PE_MASK|U_GC_PC_MASK|U_GC_PO_MASK| \ 1008*0e209d39SAndroid Build Coastguard Worker U_GC_PI_MASK|U_GC_PF_MASK) 1009*0e209d39SAndroid Build Coastguard Worker 1010*0e209d39SAndroid Build Coastguard Worker /** Mask constant for multiple UCharCategory bits (S Symbols). @stable ICU 2.1 */ 1011*0e209d39SAndroid Build Coastguard Worker #define U_GC_S_MASK (U_GC_SM_MASK|U_GC_SC_MASK|U_GC_SK_MASK|U_GC_SO_MASK) 1012*0e209d39SAndroid Build Coastguard Worker 1013*0e209d39SAndroid Build Coastguard Worker /** 1014*0e209d39SAndroid Build Coastguard Worker * This specifies the language directional property of a character set. 1015*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 1016*0e209d39SAndroid Build Coastguard Worker */ 1017*0e209d39SAndroid Build Coastguard Worker typedef enum UCharDirection { 1018*0e209d39SAndroid Build Coastguard Worker /* 1019*0e209d39SAndroid Build Coastguard Worker * Note: UCharDirection constants and their API comments are parsed by preparseucd.py. 1020*0e209d39SAndroid Build Coastguard Worker * It matches pairs of lines like 1021*0e209d39SAndroid Build Coastguard Worker * / ** <Unicode 1..3-letter Bidi_Class value> comment... * / 1022*0e209d39SAndroid Build Coastguard Worker * U_<[A-Z_]+> = <integer>, 1023*0e209d39SAndroid Build Coastguard Worker */ 1024*0e209d39SAndroid Build Coastguard Worker 1025*0e209d39SAndroid Build Coastguard Worker /** L @stable ICU 2.0 */ 1026*0e209d39SAndroid Build Coastguard Worker U_LEFT_TO_RIGHT = 0, 1027*0e209d39SAndroid Build Coastguard Worker /** R @stable ICU 2.0 */ 1028*0e209d39SAndroid Build Coastguard Worker U_RIGHT_TO_LEFT = 1, 1029*0e209d39SAndroid Build Coastguard Worker /** EN @stable ICU 2.0 */ 1030*0e209d39SAndroid Build Coastguard Worker U_EUROPEAN_NUMBER = 2, 1031*0e209d39SAndroid Build Coastguard Worker /** ES @stable ICU 2.0 */ 1032*0e209d39SAndroid Build Coastguard Worker U_EUROPEAN_NUMBER_SEPARATOR = 3, 1033*0e209d39SAndroid Build Coastguard Worker /** ET @stable ICU 2.0 */ 1034*0e209d39SAndroid Build Coastguard Worker U_EUROPEAN_NUMBER_TERMINATOR = 4, 1035*0e209d39SAndroid Build Coastguard Worker /** AN @stable ICU 2.0 */ 1036*0e209d39SAndroid Build Coastguard Worker U_ARABIC_NUMBER = 5, 1037*0e209d39SAndroid Build Coastguard Worker /** CS @stable ICU 2.0 */ 1038*0e209d39SAndroid Build Coastguard Worker U_COMMON_NUMBER_SEPARATOR = 6, 1039*0e209d39SAndroid Build Coastguard Worker /** B @stable ICU 2.0 */ 1040*0e209d39SAndroid Build Coastguard Worker U_BLOCK_SEPARATOR = 7, 1041*0e209d39SAndroid Build Coastguard Worker /** S @stable ICU 2.0 */ 1042*0e209d39SAndroid Build Coastguard Worker U_SEGMENT_SEPARATOR = 8, 1043*0e209d39SAndroid Build Coastguard Worker /** WS @stable ICU 2.0 */ 1044*0e209d39SAndroid Build Coastguard Worker U_WHITE_SPACE_NEUTRAL = 9, 1045*0e209d39SAndroid Build Coastguard Worker /** ON @stable ICU 2.0 */ 1046*0e209d39SAndroid Build Coastguard Worker U_OTHER_NEUTRAL = 10, 1047*0e209d39SAndroid Build Coastguard Worker /** LRE @stable ICU 2.0 */ 1048*0e209d39SAndroid Build Coastguard Worker U_LEFT_TO_RIGHT_EMBEDDING = 11, 1049*0e209d39SAndroid Build Coastguard Worker /** LRO @stable ICU 2.0 */ 1050*0e209d39SAndroid Build Coastguard Worker U_LEFT_TO_RIGHT_OVERRIDE = 12, 1051*0e209d39SAndroid Build Coastguard Worker /** AL @stable ICU 2.0 */ 1052*0e209d39SAndroid Build Coastguard Worker U_RIGHT_TO_LEFT_ARABIC = 13, 1053*0e209d39SAndroid Build Coastguard Worker /** RLE @stable ICU 2.0 */ 1054*0e209d39SAndroid Build Coastguard Worker U_RIGHT_TO_LEFT_EMBEDDING = 14, 1055*0e209d39SAndroid Build Coastguard Worker /** RLO @stable ICU 2.0 */ 1056*0e209d39SAndroid Build Coastguard Worker U_RIGHT_TO_LEFT_OVERRIDE = 15, 1057*0e209d39SAndroid Build Coastguard Worker /** PDF @stable ICU 2.0 */ 1058*0e209d39SAndroid Build Coastguard Worker U_POP_DIRECTIONAL_FORMAT = 16, 1059*0e209d39SAndroid Build Coastguard Worker /** NSM @stable ICU 2.0 */ 1060*0e209d39SAndroid Build Coastguard Worker U_DIR_NON_SPACING_MARK = 17, 1061*0e209d39SAndroid Build Coastguard Worker /** BN @stable ICU 2.0 */ 1062*0e209d39SAndroid Build Coastguard Worker U_BOUNDARY_NEUTRAL = 18, 1063*0e209d39SAndroid Build Coastguard Worker /** FSI @stable ICU 52 */ 1064*0e209d39SAndroid Build Coastguard Worker U_FIRST_STRONG_ISOLATE = 19, 1065*0e209d39SAndroid Build Coastguard Worker /** LRI @stable ICU 52 */ 1066*0e209d39SAndroid Build Coastguard Worker U_LEFT_TO_RIGHT_ISOLATE = 20, 1067*0e209d39SAndroid Build Coastguard Worker /** RLI @stable ICU 52 */ 1068*0e209d39SAndroid Build Coastguard Worker U_RIGHT_TO_LEFT_ISOLATE = 21, 1069*0e209d39SAndroid Build Coastguard Worker /** PDI @stable ICU 52 */ 1070*0e209d39SAndroid Build Coastguard Worker U_POP_DIRECTIONAL_ISOLATE = 22, 1071*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_DEPRECATED_API 1072*0e209d39SAndroid Build Coastguard Worker /** 1073*0e209d39SAndroid Build Coastguard Worker * One more than the highest UCharDirection value. 1074*0e209d39SAndroid Build Coastguard Worker * The highest value is available via u_getIntPropertyMaxValue(UCHAR_BIDI_CLASS). 1075*0e209d39SAndroid Build Coastguard Worker * 1076*0e209d39SAndroid Build Coastguard Worker * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. 1077*0e209d39SAndroid Build Coastguard Worker */ 1078*0e209d39SAndroid Build Coastguard Worker U_CHAR_DIRECTION_COUNT 1079*0e209d39SAndroid Build Coastguard Worker #endif // U_HIDE_DEPRECATED_API 1080*0e209d39SAndroid Build Coastguard Worker } UCharDirection; 1081*0e209d39SAndroid Build Coastguard Worker 1082*0e209d39SAndroid Build Coastguard Worker /** 1083*0e209d39SAndroid Build Coastguard Worker * Bidi Paired Bracket Type constants. 1084*0e209d39SAndroid Build Coastguard Worker * 1085*0e209d39SAndroid Build Coastguard Worker * @see UCHAR_BIDI_PAIRED_BRACKET_TYPE 1086*0e209d39SAndroid Build Coastguard Worker * @stable ICU 52 1087*0e209d39SAndroid Build Coastguard Worker */ 1088*0e209d39SAndroid Build Coastguard Worker typedef enum UBidiPairedBracketType { 1089*0e209d39SAndroid Build Coastguard Worker /* 1090*0e209d39SAndroid Build Coastguard Worker * Note: UBidiPairedBracketType constants are parsed by preparseucd.py. 1091*0e209d39SAndroid Build Coastguard Worker * It matches lines like 1092*0e209d39SAndroid Build Coastguard Worker * U_BPT_<Unicode Bidi_Paired_Bracket_Type value name> 1093*0e209d39SAndroid Build Coastguard Worker */ 1094*0e209d39SAndroid Build Coastguard Worker 1095*0e209d39SAndroid Build Coastguard Worker /** Not a paired bracket. @stable ICU 52 */ 1096*0e209d39SAndroid Build Coastguard Worker U_BPT_NONE, 1097*0e209d39SAndroid Build Coastguard Worker /** Open paired bracket. @stable ICU 52 */ 1098*0e209d39SAndroid Build Coastguard Worker U_BPT_OPEN, 1099*0e209d39SAndroid Build Coastguard Worker /** Close paired bracket. @stable ICU 52 */ 1100*0e209d39SAndroid Build Coastguard Worker U_BPT_CLOSE, 1101*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_DEPRECATED_API 1102*0e209d39SAndroid Build Coastguard Worker /** 1103*0e209d39SAndroid Build Coastguard Worker * One more than the highest normal UBidiPairedBracketType value. 1104*0e209d39SAndroid Build Coastguard Worker * The highest value is available via u_getIntPropertyMaxValue(UCHAR_BIDI_PAIRED_BRACKET_TYPE). 1105*0e209d39SAndroid Build Coastguard Worker * 1106*0e209d39SAndroid Build Coastguard Worker * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. 1107*0e209d39SAndroid Build Coastguard Worker */ 1108*0e209d39SAndroid Build Coastguard Worker U_BPT_COUNT /* 3 */ 1109*0e209d39SAndroid Build Coastguard Worker #endif // U_HIDE_DEPRECATED_API 1110*0e209d39SAndroid Build Coastguard Worker } UBidiPairedBracketType; 1111*0e209d39SAndroid Build Coastguard Worker 1112*0e209d39SAndroid Build Coastguard Worker /** 1113*0e209d39SAndroid Build Coastguard Worker * Constants for Unicode blocks, see the Unicode Data file Blocks.txt 1114*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 1115*0e209d39SAndroid Build Coastguard Worker */ 1116*0e209d39SAndroid Build Coastguard Worker enum UBlockCode { 1117*0e209d39SAndroid Build Coastguard Worker /* 1118*0e209d39SAndroid Build Coastguard Worker * Note: UBlockCode constants are parsed by preparseucd.py. 1119*0e209d39SAndroid Build Coastguard Worker * It matches lines like 1120*0e209d39SAndroid Build Coastguard Worker * UBLOCK_<Unicode Block value name> = <integer>, 1121*0e209d39SAndroid Build Coastguard Worker */ 1122*0e209d39SAndroid Build Coastguard Worker 1123*0e209d39SAndroid Build Coastguard Worker /** New No_Block value in Unicode 4. @stable ICU 2.6 */ 1124*0e209d39SAndroid Build Coastguard Worker UBLOCK_NO_BLOCK = 0, /*[none]*/ /* Special range indicating No_Block */ 1125*0e209d39SAndroid Build Coastguard Worker 1126*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1127*0e209d39SAndroid Build Coastguard Worker UBLOCK_BASIC_LATIN = 1, /*[0000]*/ 1128*0e209d39SAndroid Build Coastguard Worker 1129*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1130*0e209d39SAndroid Build Coastguard Worker UBLOCK_LATIN_1_SUPPLEMENT=2, /*[0080]*/ 1131*0e209d39SAndroid Build Coastguard Worker 1132*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1133*0e209d39SAndroid Build Coastguard Worker UBLOCK_LATIN_EXTENDED_A =3, /*[0100]*/ 1134*0e209d39SAndroid Build Coastguard Worker 1135*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1136*0e209d39SAndroid Build Coastguard Worker UBLOCK_LATIN_EXTENDED_B =4, /*[0180]*/ 1137*0e209d39SAndroid Build Coastguard Worker 1138*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1139*0e209d39SAndroid Build Coastguard Worker UBLOCK_IPA_EXTENSIONS =5, /*[0250]*/ 1140*0e209d39SAndroid Build Coastguard Worker 1141*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1142*0e209d39SAndroid Build Coastguard Worker UBLOCK_SPACING_MODIFIER_LETTERS =6, /*[02B0]*/ 1143*0e209d39SAndroid Build Coastguard Worker 1144*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1145*0e209d39SAndroid Build Coastguard Worker UBLOCK_COMBINING_DIACRITICAL_MARKS =7, /*[0300]*/ 1146*0e209d39SAndroid Build Coastguard Worker 1147*0e209d39SAndroid Build Coastguard Worker /** 1148*0e209d39SAndroid Build Coastguard Worker * Unicode 3.2 renames this block to "Greek and Coptic". 1149*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 1150*0e209d39SAndroid Build Coastguard Worker */ 1151*0e209d39SAndroid Build Coastguard Worker UBLOCK_GREEK =8, /*[0370]*/ 1152*0e209d39SAndroid Build Coastguard Worker 1153*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1154*0e209d39SAndroid Build Coastguard Worker UBLOCK_CYRILLIC =9, /*[0400]*/ 1155*0e209d39SAndroid Build Coastguard Worker 1156*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1157*0e209d39SAndroid Build Coastguard Worker UBLOCK_ARMENIAN =10, /*[0530]*/ 1158*0e209d39SAndroid Build Coastguard Worker 1159*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1160*0e209d39SAndroid Build Coastguard Worker UBLOCK_HEBREW =11, /*[0590]*/ 1161*0e209d39SAndroid Build Coastguard Worker 1162*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1163*0e209d39SAndroid Build Coastguard Worker UBLOCK_ARABIC =12, /*[0600]*/ 1164*0e209d39SAndroid Build Coastguard Worker 1165*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1166*0e209d39SAndroid Build Coastguard Worker UBLOCK_SYRIAC =13, /*[0700]*/ 1167*0e209d39SAndroid Build Coastguard Worker 1168*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1169*0e209d39SAndroid Build Coastguard Worker UBLOCK_THAANA =14, /*[0780]*/ 1170*0e209d39SAndroid Build Coastguard Worker 1171*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1172*0e209d39SAndroid Build Coastguard Worker UBLOCK_DEVANAGARI =15, /*[0900]*/ 1173*0e209d39SAndroid Build Coastguard Worker 1174*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1175*0e209d39SAndroid Build Coastguard Worker UBLOCK_BENGALI =16, /*[0980]*/ 1176*0e209d39SAndroid Build Coastguard Worker 1177*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1178*0e209d39SAndroid Build Coastguard Worker UBLOCK_GURMUKHI =17, /*[0A00]*/ 1179*0e209d39SAndroid Build Coastguard Worker 1180*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1181*0e209d39SAndroid Build Coastguard Worker UBLOCK_GUJARATI =18, /*[0A80]*/ 1182*0e209d39SAndroid Build Coastguard Worker 1183*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1184*0e209d39SAndroid Build Coastguard Worker UBLOCK_ORIYA =19, /*[0B00]*/ 1185*0e209d39SAndroid Build Coastguard Worker 1186*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1187*0e209d39SAndroid Build Coastguard Worker UBLOCK_TAMIL =20, /*[0B80]*/ 1188*0e209d39SAndroid Build Coastguard Worker 1189*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1190*0e209d39SAndroid Build Coastguard Worker UBLOCK_TELUGU =21, /*[0C00]*/ 1191*0e209d39SAndroid Build Coastguard Worker 1192*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1193*0e209d39SAndroid Build Coastguard Worker UBLOCK_KANNADA =22, /*[0C80]*/ 1194*0e209d39SAndroid Build Coastguard Worker 1195*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1196*0e209d39SAndroid Build Coastguard Worker UBLOCK_MALAYALAM =23, /*[0D00]*/ 1197*0e209d39SAndroid Build Coastguard Worker 1198*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1199*0e209d39SAndroid Build Coastguard Worker UBLOCK_SINHALA =24, /*[0D80]*/ 1200*0e209d39SAndroid Build Coastguard Worker 1201*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1202*0e209d39SAndroid Build Coastguard Worker UBLOCK_THAI =25, /*[0E00]*/ 1203*0e209d39SAndroid Build Coastguard Worker 1204*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1205*0e209d39SAndroid Build Coastguard Worker UBLOCK_LAO =26, /*[0E80]*/ 1206*0e209d39SAndroid Build Coastguard Worker 1207*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1208*0e209d39SAndroid Build Coastguard Worker UBLOCK_TIBETAN =27, /*[0F00]*/ 1209*0e209d39SAndroid Build Coastguard Worker 1210*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1211*0e209d39SAndroid Build Coastguard Worker UBLOCK_MYANMAR =28, /*[1000]*/ 1212*0e209d39SAndroid Build Coastguard Worker 1213*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1214*0e209d39SAndroid Build Coastguard Worker UBLOCK_GEORGIAN =29, /*[10A0]*/ 1215*0e209d39SAndroid Build Coastguard Worker 1216*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1217*0e209d39SAndroid Build Coastguard Worker UBLOCK_HANGUL_JAMO =30, /*[1100]*/ 1218*0e209d39SAndroid Build Coastguard Worker 1219*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1220*0e209d39SAndroid Build Coastguard Worker UBLOCK_ETHIOPIC =31, /*[1200]*/ 1221*0e209d39SAndroid Build Coastguard Worker 1222*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1223*0e209d39SAndroid Build Coastguard Worker UBLOCK_CHEROKEE =32, /*[13A0]*/ 1224*0e209d39SAndroid Build Coastguard Worker 1225*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1226*0e209d39SAndroid Build Coastguard Worker UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS =33, /*[1400]*/ 1227*0e209d39SAndroid Build Coastguard Worker 1228*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1229*0e209d39SAndroid Build Coastguard Worker UBLOCK_OGHAM =34, /*[1680]*/ 1230*0e209d39SAndroid Build Coastguard Worker 1231*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1232*0e209d39SAndroid Build Coastguard Worker UBLOCK_RUNIC =35, /*[16A0]*/ 1233*0e209d39SAndroid Build Coastguard Worker 1234*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1235*0e209d39SAndroid Build Coastguard Worker UBLOCK_KHMER =36, /*[1780]*/ 1236*0e209d39SAndroid Build Coastguard Worker 1237*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1238*0e209d39SAndroid Build Coastguard Worker UBLOCK_MONGOLIAN =37, /*[1800]*/ 1239*0e209d39SAndroid Build Coastguard Worker 1240*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1241*0e209d39SAndroid Build Coastguard Worker UBLOCK_LATIN_EXTENDED_ADDITIONAL =38, /*[1E00]*/ 1242*0e209d39SAndroid Build Coastguard Worker 1243*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1244*0e209d39SAndroid Build Coastguard Worker UBLOCK_GREEK_EXTENDED =39, /*[1F00]*/ 1245*0e209d39SAndroid Build Coastguard Worker 1246*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1247*0e209d39SAndroid Build Coastguard Worker UBLOCK_GENERAL_PUNCTUATION =40, /*[2000]*/ 1248*0e209d39SAndroid Build Coastguard Worker 1249*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1250*0e209d39SAndroid Build Coastguard Worker UBLOCK_SUPERSCRIPTS_AND_SUBSCRIPTS =41, /*[2070]*/ 1251*0e209d39SAndroid Build Coastguard Worker 1252*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1253*0e209d39SAndroid Build Coastguard Worker UBLOCK_CURRENCY_SYMBOLS =42, /*[20A0]*/ 1254*0e209d39SAndroid Build Coastguard Worker 1255*0e209d39SAndroid Build Coastguard Worker /** 1256*0e209d39SAndroid Build Coastguard Worker * Unicode 3.2 renames this block to "Combining Diacritical Marks for Symbols". 1257*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 1258*0e209d39SAndroid Build Coastguard Worker */ 1259*0e209d39SAndroid Build Coastguard Worker UBLOCK_COMBINING_MARKS_FOR_SYMBOLS =43, /*[20D0]*/ 1260*0e209d39SAndroid Build Coastguard Worker 1261*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1262*0e209d39SAndroid Build Coastguard Worker UBLOCK_LETTERLIKE_SYMBOLS =44, /*[2100]*/ 1263*0e209d39SAndroid Build Coastguard Worker 1264*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1265*0e209d39SAndroid Build Coastguard Worker UBLOCK_NUMBER_FORMS =45, /*[2150]*/ 1266*0e209d39SAndroid Build Coastguard Worker 1267*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1268*0e209d39SAndroid Build Coastguard Worker UBLOCK_ARROWS =46, /*[2190]*/ 1269*0e209d39SAndroid Build Coastguard Worker 1270*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1271*0e209d39SAndroid Build Coastguard Worker UBLOCK_MATHEMATICAL_OPERATORS =47, /*[2200]*/ 1272*0e209d39SAndroid Build Coastguard Worker 1273*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1274*0e209d39SAndroid Build Coastguard Worker UBLOCK_MISCELLANEOUS_TECHNICAL =48, /*[2300]*/ 1275*0e209d39SAndroid Build Coastguard Worker 1276*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1277*0e209d39SAndroid Build Coastguard Worker UBLOCK_CONTROL_PICTURES =49, /*[2400]*/ 1278*0e209d39SAndroid Build Coastguard Worker 1279*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1280*0e209d39SAndroid Build Coastguard Worker UBLOCK_OPTICAL_CHARACTER_RECOGNITION =50, /*[2440]*/ 1281*0e209d39SAndroid Build Coastguard Worker 1282*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1283*0e209d39SAndroid Build Coastguard Worker UBLOCK_ENCLOSED_ALPHANUMERICS =51, /*[2460]*/ 1284*0e209d39SAndroid Build Coastguard Worker 1285*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1286*0e209d39SAndroid Build Coastguard Worker UBLOCK_BOX_DRAWING =52, /*[2500]*/ 1287*0e209d39SAndroid Build Coastguard Worker 1288*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1289*0e209d39SAndroid Build Coastguard Worker UBLOCK_BLOCK_ELEMENTS =53, /*[2580]*/ 1290*0e209d39SAndroid Build Coastguard Worker 1291*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1292*0e209d39SAndroid Build Coastguard Worker UBLOCK_GEOMETRIC_SHAPES =54, /*[25A0]*/ 1293*0e209d39SAndroid Build Coastguard Worker 1294*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1295*0e209d39SAndroid Build Coastguard Worker UBLOCK_MISCELLANEOUS_SYMBOLS =55, /*[2600]*/ 1296*0e209d39SAndroid Build Coastguard Worker 1297*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1298*0e209d39SAndroid Build Coastguard Worker UBLOCK_DINGBATS =56, /*[2700]*/ 1299*0e209d39SAndroid Build Coastguard Worker 1300*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1301*0e209d39SAndroid Build Coastguard Worker UBLOCK_BRAILLE_PATTERNS =57, /*[2800]*/ 1302*0e209d39SAndroid Build Coastguard Worker 1303*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1304*0e209d39SAndroid Build Coastguard Worker UBLOCK_CJK_RADICALS_SUPPLEMENT =58, /*[2E80]*/ 1305*0e209d39SAndroid Build Coastguard Worker 1306*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1307*0e209d39SAndroid Build Coastguard Worker UBLOCK_KANGXI_RADICALS =59, /*[2F00]*/ 1308*0e209d39SAndroid Build Coastguard Worker 1309*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1310*0e209d39SAndroid Build Coastguard Worker UBLOCK_IDEOGRAPHIC_DESCRIPTION_CHARACTERS =60, /*[2FF0]*/ 1311*0e209d39SAndroid Build Coastguard Worker 1312*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1313*0e209d39SAndroid Build Coastguard Worker UBLOCK_CJK_SYMBOLS_AND_PUNCTUATION =61, /*[3000]*/ 1314*0e209d39SAndroid Build Coastguard Worker 1315*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1316*0e209d39SAndroid Build Coastguard Worker UBLOCK_HIRAGANA =62, /*[3040]*/ 1317*0e209d39SAndroid Build Coastguard Worker 1318*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1319*0e209d39SAndroid Build Coastguard Worker UBLOCK_KATAKANA =63, /*[30A0]*/ 1320*0e209d39SAndroid Build Coastguard Worker 1321*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1322*0e209d39SAndroid Build Coastguard Worker UBLOCK_BOPOMOFO =64, /*[3100]*/ 1323*0e209d39SAndroid Build Coastguard Worker 1324*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1325*0e209d39SAndroid Build Coastguard Worker UBLOCK_HANGUL_COMPATIBILITY_JAMO =65, /*[3130]*/ 1326*0e209d39SAndroid Build Coastguard Worker 1327*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1328*0e209d39SAndroid Build Coastguard Worker UBLOCK_KANBUN =66, /*[3190]*/ 1329*0e209d39SAndroid Build Coastguard Worker 1330*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1331*0e209d39SAndroid Build Coastguard Worker UBLOCK_BOPOMOFO_EXTENDED =67, /*[31A0]*/ 1332*0e209d39SAndroid Build Coastguard Worker 1333*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1334*0e209d39SAndroid Build Coastguard Worker UBLOCK_ENCLOSED_CJK_LETTERS_AND_MONTHS =68, /*[3200]*/ 1335*0e209d39SAndroid Build Coastguard Worker 1336*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1337*0e209d39SAndroid Build Coastguard Worker UBLOCK_CJK_COMPATIBILITY =69, /*[3300]*/ 1338*0e209d39SAndroid Build Coastguard Worker 1339*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1340*0e209d39SAndroid Build Coastguard Worker UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A =70, /*[3400]*/ 1341*0e209d39SAndroid Build Coastguard Worker 1342*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1343*0e209d39SAndroid Build Coastguard Worker UBLOCK_CJK_UNIFIED_IDEOGRAPHS =71, /*[4E00]*/ 1344*0e209d39SAndroid Build Coastguard Worker 1345*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1346*0e209d39SAndroid Build Coastguard Worker UBLOCK_YI_SYLLABLES =72, /*[A000]*/ 1347*0e209d39SAndroid Build Coastguard Worker 1348*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1349*0e209d39SAndroid Build Coastguard Worker UBLOCK_YI_RADICALS =73, /*[A490]*/ 1350*0e209d39SAndroid Build Coastguard Worker 1351*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1352*0e209d39SAndroid Build Coastguard Worker UBLOCK_HANGUL_SYLLABLES =74, /*[AC00]*/ 1353*0e209d39SAndroid Build Coastguard Worker 1354*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1355*0e209d39SAndroid Build Coastguard Worker UBLOCK_HIGH_SURROGATES =75, /*[D800]*/ 1356*0e209d39SAndroid Build Coastguard Worker 1357*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1358*0e209d39SAndroid Build Coastguard Worker UBLOCK_HIGH_PRIVATE_USE_SURROGATES =76, /*[DB80]*/ 1359*0e209d39SAndroid Build Coastguard Worker 1360*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1361*0e209d39SAndroid Build Coastguard Worker UBLOCK_LOW_SURROGATES =77, /*[DC00]*/ 1362*0e209d39SAndroid Build Coastguard Worker 1363*0e209d39SAndroid Build Coastguard Worker /** 1364*0e209d39SAndroid Build Coastguard Worker * Same as UBLOCK_PRIVATE_USE. 1365*0e209d39SAndroid Build Coastguard Worker * Until Unicode 3.1.1, the corresponding block name was "Private Use", 1366*0e209d39SAndroid Build Coastguard Worker * and multiple code point ranges had this block. 1367*0e209d39SAndroid Build Coastguard Worker * Unicode 3.2 renames the block for the BMP PUA to "Private Use Area" and 1368*0e209d39SAndroid Build Coastguard Worker * adds separate blocks for the supplementary PUAs. 1369*0e209d39SAndroid Build Coastguard Worker * 1370*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 1371*0e209d39SAndroid Build Coastguard Worker */ 1372*0e209d39SAndroid Build Coastguard Worker UBLOCK_PRIVATE_USE_AREA =78, /*[E000]*/ 1373*0e209d39SAndroid Build Coastguard Worker /** 1374*0e209d39SAndroid Build Coastguard Worker * Same as UBLOCK_PRIVATE_USE_AREA. 1375*0e209d39SAndroid Build Coastguard Worker * Until Unicode 3.1.1, the corresponding block name was "Private Use", 1376*0e209d39SAndroid Build Coastguard Worker * and multiple code point ranges had this block. 1377*0e209d39SAndroid Build Coastguard Worker * Unicode 3.2 renames the block for the BMP PUA to "Private Use Area" and 1378*0e209d39SAndroid Build Coastguard Worker * adds separate blocks for the supplementary PUAs. 1379*0e209d39SAndroid Build Coastguard Worker * 1380*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 1381*0e209d39SAndroid Build Coastguard Worker */ 1382*0e209d39SAndroid Build Coastguard Worker UBLOCK_PRIVATE_USE = UBLOCK_PRIVATE_USE_AREA, 1383*0e209d39SAndroid Build Coastguard Worker 1384*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1385*0e209d39SAndroid Build Coastguard Worker UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS =79, /*[F900]*/ 1386*0e209d39SAndroid Build Coastguard Worker 1387*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1388*0e209d39SAndroid Build Coastguard Worker UBLOCK_ALPHABETIC_PRESENTATION_FORMS =80, /*[FB00]*/ 1389*0e209d39SAndroid Build Coastguard Worker 1390*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1391*0e209d39SAndroid Build Coastguard Worker UBLOCK_ARABIC_PRESENTATION_FORMS_A =81, /*[FB50]*/ 1392*0e209d39SAndroid Build Coastguard Worker 1393*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1394*0e209d39SAndroid Build Coastguard Worker UBLOCK_COMBINING_HALF_MARKS =82, /*[FE20]*/ 1395*0e209d39SAndroid Build Coastguard Worker 1396*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1397*0e209d39SAndroid Build Coastguard Worker UBLOCK_CJK_COMPATIBILITY_FORMS =83, /*[FE30]*/ 1398*0e209d39SAndroid Build Coastguard Worker 1399*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1400*0e209d39SAndroid Build Coastguard Worker UBLOCK_SMALL_FORM_VARIANTS =84, /*[FE50]*/ 1401*0e209d39SAndroid Build Coastguard Worker 1402*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1403*0e209d39SAndroid Build Coastguard Worker UBLOCK_ARABIC_PRESENTATION_FORMS_B =85, /*[FE70]*/ 1404*0e209d39SAndroid Build Coastguard Worker 1405*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1406*0e209d39SAndroid Build Coastguard Worker UBLOCK_SPECIALS =86, /*[FFF0]*/ 1407*0e209d39SAndroid Build Coastguard Worker 1408*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1409*0e209d39SAndroid Build Coastguard Worker UBLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS =87, /*[FF00]*/ 1410*0e209d39SAndroid Build Coastguard Worker 1411*0e209d39SAndroid Build Coastguard Worker /* New blocks in Unicode 3.1 */ 1412*0e209d39SAndroid Build Coastguard Worker 1413*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1414*0e209d39SAndroid Build Coastguard Worker UBLOCK_OLD_ITALIC = 88, /*[10300]*/ 1415*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1416*0e209d39SAndroid Build Coastguard Worker UBLOCK_GOTHIC = 89, /*[10330]*/ 1417*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1418*0e209d39SAndroid Build Coastguard Worker UBLOCK_DESERET = 90, /*[10400]*/ 1419*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1420*0e209d39SAndroid Build Coastguard Worker UBLOCK_BYZANTINE_MUSICAL_SYMBOLS = 91, /*[1D000]*/ 1421*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1422*0e209d39SAndroid Build Coastguard Worker UBLOCK_MUSICAL_SYMBOLS = 92, /*[1D100]*/ 1423*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1424*0e209d39SAndroid Build Coastguard Worker UBLOCK_MATHEMATICAL_ALPHANUMERIC_SYMBOLS = 93, /*[1D400]*/ 1425*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1426*0e209d39SAndroid Build Coastguard Worker UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B = 94, /*[20000]*/ 1427*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1428*0e209d39SAndroid Build Coastguard Worker UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT = 95, /*[2F800]*/ 1429*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1430*0e209d39SAndroid Build Coastguard Worker UBLOCK_TAGS = 96, /*[E0000]*/ 1431*0e209d39SAndroid Build Coastguard Worker 1432*0e209d39SAndroid Build Coastguard Worker /* New blocks in Unicode 3.2 */ 1433*0e209d39SAndroid Build Coastguard Worker 1434*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 3.0 */ 1435*0e209d39SAndroid Build Coastguard Worker UBLOCK_CYRILLIC_SUPPLEMENT = 97, /*[0500]*/ 1436*0e209d39SAndroid Build Coastguard Worker /** 1437*0e209d39SAndroid Build Coastguard Worker * Unicode 4.0.1 renames the "Cyrillic Supplementary" block to "Cyrillic Supplement". 1438*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.2 1439*0e209d39SAndroid Build Coastguard Worker */ 1440*0e209d39SAndroid Build Coastguard Worker UBLOCK_CYRILLIC_SUPPLEMENTARY = UBLOCK_CYRILLIC_SUPPLEMENT, 1441*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.2 */ 1442*0e209d39SAndroid Build Coastguard Worker UBLOCK_TAGALOG = 98, /*[1700]*/ 1443*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.2 */ 1444*0e209d39SAndroid Build Coastguard Worker UBLOCK_HANUNOO = 99, /*[1720]*/ 1445*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.2 */ 1446*0e209d39SAndroid Build Coastguard Worker UBLOCK_BUHID = 100, /*[1740]*/ 1447*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.2 */ 1448*0e209d39SAndroid Build Coastguard Worker UBLOCK_TAGBANWA = 101, /*[1760]*/ 1449*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.2 */ 1450*0e209d39SAndroid Build Coastguard Worker UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A = 102, /*[27C0]*/ 1451*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.2 */ 1452*0e209d39SAndroid Build Coastguard Worker UBLOCK_SUPPLEMENTAL_ARROWS_A = 103, /*[27F0]*/ 1453*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.2 */ 1454*0e209d39SAndroid Build Coastguard Worker UBLOCK_SUPPLEMENTAL_ARROWS_B = 104, /*[2900]*/ 1455*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.2 */ 1456*0e209d39SAndroid Build Coastguard Worker UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B = 105, /*[2980]*/ 1457*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.2 */ 1458*0e209d39SAndroid Build Coastguard Worker UBLOCK_SUPPLEMENTAL_MATHEMATICAL_OPERATORS = 106, /*[2A00]*/ 1459*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.2 */ 1460*0e209d39SAndroid Build Coastguard Worker UBLOCK_KATAKANA_PHONETIC_EXTENSIONS = 107, /*[31F0]*/ 1461*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.2 */ 1462*0e209d39SAndroid Build Coastguard Worker UBLOCK_VARIATION_SELECTORS = 108, /*[FE00]*/ 1463*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.2 */ 1464*0e209d39SAndroid Build Coastguard Worker UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_A = 109, /*[F0000]*/ 1465*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.2 */ 1466*0e209d39SAndroid Build Coastguard Worker UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_B = 110, /*[100000]*/ 1467*0e209d39SAndroid Build Coastguard Worker 1468*0e209d39SAndroid Build Coastguard Worker /* New blocks in Unicode 4 */ 1469*0e209d39SAndroid Build Coastguard Worker 1470*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.6 */ 1471*0e209d39SAndroid Build Coastguard Worker UBLOCK_LIMBU = 111, /*[1900]*/ 1472*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.6 */ 1473*0e209d39SAndroid Build Coastguard Worker UBLOCK_TAI_LE = 112, /*[1950]*/ 1474*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.6 */ 1475*0e209d39SAndroid Build Coastguard Worker UBLOCK_KHMER_SYMBOLS = 113, /*[19E0]*/ 1476*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.6 */ 1477*0e209d39SAndroid Build Coastguard Worker UBLOCK_PHONETIC_EXTENSIONS = 114, /*[1D00]*/ 1478*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.6 */ 1479*0e209d39SAndroid Build Coastguard Worker UBLOCK_MISCELLANEOUS_SYMBOLS_AND_ARROWS = 115, /*[2B00]*/ 1480*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.6 */ 1481*0e209d39SAndroid Build Coastguard Worker UBLOCK_YIJING_HEXAGRAM_SYMBOLS = 116, /*[4DC0]*/ 1482*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.6 */ 1483*0e209d39SAndroid Build Coastguard Worker UBLOCK_LINEAR_B_SYLLABARY = 117, /*[10000]*/ 1484*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.6 */ 1485*0e209d39SAndroid Build Coastguard Worker UBLOCK_LINEAR_B_IDEOGRAMS = 118, /*[10080]*/ 1486*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.6 */ 1487*0e209d39SAndroid Build Coastguard Worker UBLOCK_AEGEAN_NUMBERS = 119, /*[10100]*/ 1488*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.6 */ 1489*0e209d39SAndroid Build Coastguard Worker UBLOCK_UGARITIC = 120, /*[10380]*/ 1490*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.6 */ 1491*0e209d39SAndroid Build Coastguard Worker UBLOCK_SHAVIAN = 121, /*[10450]*/ 1492*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.6 */ 1493*0e209d39SAndroid Build Coastguard Worker UBLOCK_OSMANYA = 122, /*[10480]*/ 1494*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.6 */ 1495*0e209d39SAndroid Build Coastguard Worker UBLOCK_CYPRIOT_SYLLABARY = 123, /*[10800]*/ 1496*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.6 */ 1497*0e209d39SAndroid Build Coastguard Worker UBLOCK_TAI_XUAN_JING_SYMBOLS = 124, /*[1D300]*/ 1498*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.6 */ 1499*0e209d39SAndroid Build Coastguard Worker UBLOCK_VARIATION_SELECTORS_SUPPLEMENT = 125, /*[E0100]*/ 1500*0e209d39SAndroid Build Coastguard Worker 1501*0e209d39SAndroid Build Coastguard Worker /* New blocks in Unicode 4.1 */ 1502*0e209d39SAndroid Build Coastguard Worker 1503*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 3.4 */ 1504*0e209d39SAndroid Build Coastguard Worker UBLOCK_ANCIENT_GREEK_MUSICAL_NOTATION = 126, /*[1D200]*/ 1505*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 3.4 */ 1506*0e209d39SAndroid Build Coastguard Worker UBLOCK_ANCIENT_GREEK_NUMBERS = 127, /*[10140]*/ 1507*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 3.4 */ 1508*0e209d39SAndroid Build Coastguard Worker UBLOCK_ARABIC_SUPPLEMENT = 128, /*[0750]*/ 1509*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 3.4 */ 1510*0e209d39SAndroid Build Coastguard Worker UBLOCK_BUGINESE = 129, /*[1A00]*/ 1511*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 3.4 */ 1512*0e209d39SAndroid Build Coastguard Worker UBLOCK_CJK_STROKES = 130, /*[31C0]*/ 1513*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 3.4 */ 1514*0e209d39SAndroid Build Coastguard Worker UBLOCK_COMBINING_DIACRITICAL_MARKS_SUPPLEMENT = 131, /*[1DC0]*/ 1515*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 3.4 */ 1516*0e209d39SAndroid Build Coastguard Worker UBLOCK_COPTIC = 132, /*[2C80]*/ 1517*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 3.4 */ 1518*0e209d39SAndroid Build Coastguard Worker UBLOCK_ETHIOPIC_EXTENDED = 133, /*[2D80]*/ 1519*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 3.4 */ 1520*0e209d39SAndroid Build Coastguard Worker UBLOCK_ETHIOPIC_SUPPLEMENT = 134, /*[1380]*/ 1521*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 3.4 */ 1522*0e209d39SAndroid Build Coastguard Worker UBLOCK_GEORGIAN_SUPPLEMENT = 135, /*[2D00]*/ 1523*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 3.4 */ 1524*0e209d39SAndroid Build Coastguard Worker UBLOCK_GLAGOLITIC = 136, /*[2C00]*/ 1525*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 3.4 */ 1526*0e209d39SAndroid Build Coastguard Worker UBLOCK_KHAROSHTHI = 137, /*[10A00]*/ 1527*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 3.4 */ 1528*0e209d39SAndroid Build Coastguard Worker UBLOCK_MODIFIER_TONE_LETTERS = 138, /*[A700]*/ 1529*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 3.4 */ 1530*0e209d39SAndroid Build Coastguard Worker UBLOCK_NEW_TAI_LUE = 139, /*[1980]*/ 1531*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 3.4 */ 1532*0e209d39SAndroid Build Coastguard Worker UBLOCK_OLD_PERSIAN = 140, /*[103A0]*/ 1533*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 3.4 */ 1534*0e209d39SAndroid Build Coastguard Worker UBLOCK_PHONETIC_EXTENSIONS_SUPPLEMENT = 141, /*[1D80]*/ 1535*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 3.4 */ 1536*0e209d39SAndroid Build Coastguard Worker UBLOCK_SUPPLEMENTAL_PUNCTUATION = 142, /*[2E00]*/ 1537*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 3.4 */ 1538*0e209d39SAndroid Build Coastguard Worker UBLOCK_SYLOTI_NAGRI = 143, /*[A800]*/ 1539*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 3.4 */ 1540*0e209d39SAndroid Build Coastguard Worker UBLOCK_TIFINAGH = 144, /*[2D30]*/ 1541*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 3.4 */ 1542*0e209d39SAndroid Build Coastguard Worker UBLOCK_VERTICAL_FORMS = 145, /*[FE10]*/ 1543*0e209d39SAndroid Build Coastguard Worker 1544*0e209d39SAndroid Build Coastguard Worker /* New blocks in Unicode 5.0 */ 1545*0e209d39SAndroid Build Coastguard Worker 1546*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 3.6 */ 1547*0e209d39SAndroid Build Coastguard Worker UBLOCK_NKO = 146, /*[07C0]*/ 1548*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 3.6 */ 1549*0e209d39SAndroid Build Coastguard Worker UBLOCK_BALINESE = 147, /*[1B00]*/ 1550*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 3.6 */ 1551*0e209d39SAndroid Build Coastguard Worker UBLOCK_LATIN_EXTENDED_C = 148, /*[2C60]*/ 1552*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 3.6 */ 1553*0e209d39SAndroid Build Coastguard Worker UBLOCK_LATIN_EXTENDED_D = 149, /*[A720]*/ 1554*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 3.6 */ 1555*0e209d39SAndroid Build Coastguard Worker UBLOCK_PHAGS_PA = 150, /*[A840]*/ 1556*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 3.6 */ 1557*0e209d39SAndroid Build Coastguard Worker UBLOCK_PHOENICIAN = 151, /*[10900]*/ 1558*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 3.6 */ 1559*0e209d39SAndroid Build Coastguard Worker UBLOCK_CUNEIFORM = 152, /*[12000]*/ 1560*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 3.6 */ 1561*0e209d39SAndroid Build Coastguard Worker UBLOCK_CUNEIFORM_NUMBERS_AND_PUNCTUATION = 153, /*[12400]*/ 1562*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 3.6 */ 1563*0e209d39SAndroid Build Coastguard Worker UBLOCK_COUNTING_ROD_NUMERALS = 154, /*[1D360]*/ 1564*0e209d39SAndroid Build Coastguard Worker 1565*0e209d39SAndroid Build Coastguard Worker /* New blocks in Unicode 5.1 */ 1566*0e209d39SAndroid Build Coastguard Worker 1567*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.0 */ 1568*0e209d39SAndroid Build Coastguard Worker UBLOCK_SUNDANESE = 155, /*[1B80]*/ 1569*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.0 */ 1570*0e209d39SAndroid Build Coastguard Worker UBLOCK_LEPCHA = 156, /*[1C00]*/ 1571*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.0 */ 1572*0e209d39SAndroid Build Coastguard Worker UBLOCK_OL_CHIKI = 157, /*[1C50]*/ 1573*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.0 */ 1574*0e209d39SAndroid Build Coastguard Worker UBLOCK_CYRILLIC_EXTENDED_A = 158, /*[2DE0]*/ 1575*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.0 */ 1576*0e209d39SAndroid Build Coastguard Worker UBLOCK_VAI = 159, /*[A500]*/ 1577*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.0 */ 1578*0e209d39SAndroid Build Coastguard Worker UBLOCK_CYRILLIC_EXTENDED_B = 160, /*[A640]*/ 1579*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.0 */ 1580*0e209d39SAndroid Build Coastguard Worker UBLOCK_SAURASHTRA = 161, /*[A880]*/ 1581*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.0 */ 1582*0e209d39SAndroid Build Coastguard Worker UBLOCK_KAYAH_LI = 162, /*[A900]*/ 1583*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.0 */ 1584*0e209d39SAndroid Build Coastguard Worker UBLOCK_REJANG = 163, /*[A930]*/ 1585*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.0 */ 1586*0e209d39SAndroid Build Coastguard Worker UBLOCK_CHAM = 164, /*[AA00]*/ 1587*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.0 */ 1588*0e209d39SAndroid Build Coastguard Worker UBLOCK_ANCIENT_SYMBOLS = 165, /*[10190]*/ 1589*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.0 */ 1590*0e209d39SAndroid Build Coastguard Worker UBLOCK_PHAISTOS_DISC = 166, /*[101D0]*/ 1591*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.0 */ 1592*0e209d39SAndroid Build Coastguard Worker UBLOCK_LYCIAN = 167, /*[10280]*/ 1593*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.0 */ 1594*0e209d39SAndroid Build Coastguard Worker UBLOCK_CARIAN = 168, /*[102A0]*/ 1595*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.0 */ 1596*0e209d39SAndroid Build Coastguard Worker UBLOCK_LYDIAN = 169, /*[10920]*/ 1597*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.0 */ 1598*0e209d39SAndroid Build Coastguard Worker UBLOCK_MAHJONG_TILES = 170, /*[1F000]*/ 1599*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.0 */ 1600*0e209d39SAndroid Build Coastguard Worker UBLOCK_DOMINO_TILES = 171, /*[1F030]*/ 1601*0e209d39SAndroid Build Coastguard Worker 1602*0e209d39SAndroid Build Coastguard Worker /* New blocks in Unicode 5.2 */ 1603*0e209d39SAndroid Build Coastguard Worker 1604*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.4 */ 1605*0e209d39SAndroid Build Coastguard Worker UBLOCK_SAMARITAN = 172, /*[0800]*/ 1606*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.4 */ 1607*0e209d39SAndroid Build Coastguard Worker UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED = 173, /*[18B0]*/ 1608*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.4 */ 1609*0e209d39SAndroid Build Coastguard Worker UBLOCK_TAI_THAM = 174, /*[1A20]*/ 1610*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.4 */ 1611*0e209d39SAndroid Build Coastguard Worker UBLOCK_VEDIC_EXTENSIONS = 175, /*[1CD0]*/ 1612*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.4 */ 1613*0e209d39SAndroid Build Coastguard Worker UBLOCK_LISU = 176, /*[A4D0]*/ 1614*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.4 */ 1615*0e209d39SAndroid Build Coastguard Worker UBLOCK_BAMUM = 177, /*[A6A0]*/ 1616*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.4 */ 1617*0e209d39SAndroid Build Coastguard Worker UBLOCK_COMMON_INDIC_NUMBER_FORMS = 178, /*[A830]*/ 1618*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.4 */ 1619*0e209d39SAndroid Build Coastguard Worker UBLOCK_DEVANAGARI_EXTENDED = 179, /*[A8E0]*/ 1620*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.4 */ 1621*0e209d39SAndroid Build Coastguard Worker UBLOCK_HANGUL_JAMO_EXTENDED_A = 180, /*[A960]*/ 1622*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.4 */ 1623*0e209d39SAndroid Build Coastguard Worker UBLOCK_JAVANESE = 181, /*[A980]*/ 1624*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.4 */ 1625*0e209d39SAndroid Build Coastguard Worker UBLOCK_MYANMAR_EXTENDED_A = 182, /*[AA60]*/ 1626*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.4 */ 1627*0e209d39SAndroid Build Coastguard Worker UBLOCK_TAI_VIET = 183, /*[AA80]*/ 1628*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.4 */ 1629*0e209d39SAndroid Build Coastguard Worker UBLOCK_MEETEI_MAYEK = 184, /*[ABC0]*/ 1630*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.4 */ 1631*0e209d39SAndroid Build Coastguard Worker UBLOCK_HANGUL_JAMO_EXTENDED_B = 185, /*[D7B0]*/ 1632*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.4 */ 1633*0e209d39SAndroid Build Coastguard Worker UBLOCK_IMPERIAL_ARAMAIC = 186, /*[10840]*/ 1634*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.4 */ 1635*0e209d39SAndroid Build Coastguard Worker UBLOCK_OLD_SOUTH_ARABIAN = 187, /*[10A60]*/ 1636*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.4 */ 1637*0e209d39SAndroid Build Coastguard Worker UBLOCK_AVESTAN = 188, /*[10B00]*/ 1638*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.4 */ 1639*0e209d39SAndroid Build Coastguard Worker UBLOCK_INSCRIPTIONAL_PARTHIAN = 189, /*[10B40]*/ 1640*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.4 */ 1641*0e209d39SAndroid Build Coastguard Worker UBLOCK_INSCRIPTIONAL_PAHLAVI = 190, /*[10B60]*/ 1642*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.4 */ 1643*0e209d39SAndroid Build Coastguard Worker UBLOCK_OLD_TURKIC = 191, /*[10C00]*/ 1644*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.4 */ 1645*0e209d39SAndroid Build Coastguard Worker UBLOCK_RUMI_NUMERAL_SYMBOLS = 192, /*[10E60]*/ 1646*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.4 */ 1647*0e209d39SAndroid Build Coastguard Worker UBLOCK_KAITHI = 193, /*[11080]*/ 1648*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.4 */ 1649*0e209d39SAndroid Build Coastguard Worker UBLOCK_EGYPTIAN_HIEROGLYPHS = 194, /*[13000]*/ 1650*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.4 */ 1651*0e209d39SAndroid Build Coastguard Worker UBLOCK_ENCLOSED_ALPHANUMERIC_SUPPLEMENT = 195, /*[1F100]*/ 1652*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.4 */ 1653*0e209d39SAndroid Build Coastguard Worker UBLOCK_ENCLOSED_IDEOGRAPHIC_SUPPLEMENT = 196, /*[1F200]*/ 1654*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.4 */ 1655*0e209d39SAndroid Build Coastguard Worker UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C = 197, /*[2A700]*/ 1656*0e209d39SAndroid Build Coastguard Worker 1657*0e209d39SAndroid Build Coastguard Worker /* New blocks in Unicode 6.0 */ 1658*0e209d39SAndroid Build Coastguard Worker 1659*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.6 */ 1660*0e209d39SAndroid Build Coastguard Worker UBLOCK_MANDAIC = 198, /*[0840]*/ 1661*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.6 */ 1662*0e209d39SAndroid Build Coastguard Worker UBLOCK_BATAK = 199, /*[1BC0]*/ 1663*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.6 */ 1664*0e209d39SAndroid Build Coastguard Worker UBLOCK_ETHIOPIC_EXTENDED_A = 200, /*[AB00]*/ 1665*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.6 */ 1666*0e209d39SAndroid Build Coastguard Worker UBLOCK_BRAHMI = 201, /*[11000]*/ 1667*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.6 */ 1668*0e209d39SAndroid Build Coastguard Worker UBLOCK_BAMUM_SUPPLEMENT = 202, /*[16800]*/ 1669*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.6 */ 1670*0e209d39SAndroid Build Coastguard Worker UBLOCK_KANA_SUPPLEMENT = 203, /*[1B000]*/ 1671*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.6 */ 1672*0e209d39SAndroid Build Coastguard Worker UBLOCK_PLAYING_CARDS = 204, /*[1F0A0]*/ 1673*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.6 */ 1674*0e209d39SAndroid Build Coastguard Worker UBLOCK_MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS = 205, /*[1F300]*/ 1675*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.6 */ 1676*0e209d39SAndroid Build Coastguard Worker UBLOCK_EMOTICONS = 206, /*[1F600]*/ 1677*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.6 */ 1678*0e209d39SAndroid Build Coastguard Worker UBLOCK_TRANSPORT_AND_MAP_SYMBOLS = 207, /*[1F680]*/ 1679*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.6 */ 1680*0e209d39SAndroid Build Coastguard Worker UBLOCK_ALCHEMICAL_SYMBOLS = 208, /*[1F700]*/ 1681*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.6 */ 1682*0e209d39SAndroid Build Coastguard Worker UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D = 209, /*[2B740]*/ 1683*0e209d39SAndroid Build Coastguard Worker 1684*0e209d39SAndroid Build Coastguard Worker /* New blocks in Unicode 6.1 */ 1685*0e209d39SAndroid Build Coastguard Worker 1686*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 49 */ 1687*0e209d39SAndroid Build Coastguard Worker UBLOCK_ARABIC_EXTENDED_A = 210, /*[08A0]*/ 1688*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 49 */ 1689*0e209d39SAndroid Build Coastguard Worker UBLOCK_ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS = 211, /*[1EE00]*/ 1690*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 49 */ 1691*0e209d39SAndroid Build Coastguard Worker UBLOCK_CHAKMA = 212, /*[11100]*/ 1692*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 49 */ 1693*0e209d39SAndroid Build Coastguard Worker UBLOCK_MEETEI_MAYEK_EXTENSIONS = 213, /*[AAE0]*/ 1694*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 49 */ 1695*0e209d39SAndroid Build Coastguard Worker UBLOCK_MEROITIC_CURSIVE = 214, /*[109A0]*/ 1696*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 49 */ 1697*0e209d39SAndroid Build Coastguard Worker UBLOCK_MEROITIC_HIEROGLYPHS = 215, /*[10980]*/ 1698*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 49 */ 1699*0e209d39SAndroid Build Coastguard Worker UBLOCK_MIAO = 216, /*[16F00]*/ 1700*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 49 */ 1701*0e209d39SAndroid Build Coastguard Worker UBLOCK_SHARADA = 217, /*[11180]*/ 1702*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 49 */ 1703*0e209d39SAndroid Build Coastguard Worker UBLOCK_SORA_SOMPENG = 218, /*[110D0]*/ 1704*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 49 */ 1705*0e209d39SAndroid Build Coastguard Worker UBLOCK_SUNDANESE_SUPPLEMENT = 219, /*[1CC0]*/ 1706*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 49 */ 1707*0e209d39SAndroid Build Coastguard Worker UBLOCK_TAKRI = 220, /*[11680]*/ 1708*0e209d39SAndroid Build Coastguard Worker 1709*0e209d39SAndroid Build Coastguard Worker /* New blocks in Unicode 7.0 */ 1710*0e209d39SAndroid Build Coastguard Worker 1711*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 54 */ 1712*0e209d39SAndroid Build Coastguard Worker UBLOCK_BASSA_VAH = 221, /*[16AD0]*/ 1713*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 54 */ 1714*0e209d39SAndroid Build Coastguard Worker UBLOCK_CAUCASIAN_ALBANIAN = 222, /*[10530]*/ 1715*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 54 */ 1716*0e209d39SAndroid Build Coastguard Worker UBLOCK_COPTIC_EPACT_NUMBERS = 223, /*[102E0]*/ 1717*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 54 */ 1718*0e209d39SAndroid Build Coastguard Worker UBLOCK_COMBINING_DIACRITICAL_MARKS_EXTENDED = 224, /*[1AB0]*/ 1719*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 54 */ 1720*0e209d39SAndroid Build Coastguard Worker UBLOCK_DUPLOYAN = 225, /*[1BC00]*/ 1721*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 54 */ 1722*0e209d39SAndroid Build Coastguard Worker UBLOCK_ELBASAN = 226, /*[10500]*/ 1723*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 54 */ 1724*0e209d39SAndroid Build Coastguard Worker UBLOCK_GEOMETRIC_SHAPES_EXTENDED = 227, /*[1F780]*/ 1725*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 54 */ 1726*0e209d39SAndroid Build Coastguard Worker UBLOCK_GRANTHA = 228, /*[11300]*/ 1727*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 54 */ 1728*0e209d39SAndroid Build Coastguard Worker UBLOCK_KHOJKI = 229, /*[11200]*/ 1729*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 54 */ 1730*0e209d39SAndroid Build Coastguard Worker UBLOCK_KHUDAWADI = 230, /*[112B0]*/ 1731*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 54 */ 1732*0e209d39SAndroid Build Coastguard Worker UBLOCK_LATIN_EXTENDED_E = 231, /*[AB30]*/ 1733*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 54 */ 1734*0e209d39SAndroid Build Coastguard Worker UBLOCK_LINEAR_A = 232, /*[10600]*/ 1735*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 54 */ 1736*0e209d39SAndroid Build Coastguard Worker UBLOCK_MAHAJANI = 233, /*[11150]*/ 1737*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 54 */ 1738*0e209d39SAndroid Build Coastguard Worker UBLOCK_MANICHAEAN = 234, /*[10AC0]*/ 1739*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 54 */ 1740*0e209d39SAndroid Build Coastguard Worker UBLOCK_MENDE_KIKAKUI = 235, /*[1E800]*/ 1741*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 54 */ 1742*0e209d39SAndroid Build Coastguard Worker UBLOCK_MODI = 236, /*[11600]*/ 1743*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 54 */ 1744*0e209d39SAndroid Build Coastguard Worker UBLOCK_MRO = 237, /*[16A40]*/ 1745*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 54 */ 1746*0e209d39SAndroid Build Coastguard Worker UBLOCK_MYANMAR_EXTENDED_B = 238, /*[A9E0]*/ 1747*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 54 */ 1748*0e209d39SAndroid Build Coastguard Worker UBLOCK_NABATAEAN = 239, /*[10880]*/ 1749*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 54 */ 1750*0e209d39SAndroid Build Coastguard Worker UBLOCK_OLD_NORTH_ARABIAN = 240, /*[10A80]*/ 1751*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 54 */ 1752*0e209d39SAndroid Build Coastguard Worker UBLOCK_OLD_PERMIC = 241, /*[10350]*/ 1753*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 54 */ 1754*0e209d39SAndroid Build Coastguard Worker UBLOCK_ORNAMENTAL_DINGBATS = 242, /*[1F650]*/ 1755*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 54 */ 1756*0e209d39SAndroid Build Coastguard Worker UBLOCK_PAHAWH_HMONG = 243, /*[16B00]*/ 1757*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 54 */ 1758*0e209d39SAndroid Build Coastguard Worker UBLOCK_PALMYRENE = 244, /*[10860]*/ 1759*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 54 */ 1760*0e209d39SAndroid Build Coastguard Worker UBLOCK_PAU_CIN_HAU = 245, /*[11AC0]*/ 1761*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 54 */ 1762*0e209d39SAndroid Build Coastguard Worker UBLOCK_PSALTER_PAHLAVI = 246, /*[10B80]*/ 1763*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 54 */ 1764*0e209d39SAndroid Build Coastguard Worker UBLOCK_SHORTHAND_FORMAT_CONTROLS = 247, /*[1BCA0]*/ 1765*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 54 */ 1766*0e209d39SAndroid Build Coastguard Worker UBLOCK_SIDDHAM = 248, /*[11580]*/ 1767*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 54 */ 1768*0e209d39SAndroid Build Coastguard Worker UBLOCK_SINHALA_ARCHAIC_NUMBERS = 249, /*[111E0]*/ 1769*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 54 */ 1770*0e209d39SAndroid Build Coastguard Worker UBLOCK_SUPPLEMENTAL_ARROWS_C = 250, /*[1F800]*/ 1771*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 54 */ 1772*0e209d39SAndroid Build Coastguard Worker UBLOCK_TIRHUTA = 251, /*[11480]*/ 1773*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 54 */ 1774*0e209d39SAndroid Build Coastguard Worker UBLOCK_WARANG_CITI = 252, /*[118A0]*/ 1775*0e209d39SAndroid Build Coastguard Worker 1776*0e209d39SAndroid Build Coastguard Worker /* New blocks in Unicode 8.0 */ 1777*0e209d39SAndroid Build Coastguard Worker 1778*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 56 */ 1779*0e209d39SAndroid Build Coastguard Worker UBLOCK_AHOM = 253, /*[11700]*/ 1780*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 56 */ 1781*0e209d39SAndroid Build Coastguard Worker UBLOCK_ANATOLIAN_HIEROGLYPHS = 254, /*[14400]*/ 1782*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 56 */ 1783*0e209d39SAndroid Build Coastguard Worker UBLOCK_CHEROKEE_SUPPLEMENT = 255, /*[AB70]*/ 1784*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 56 */ 1785*0e209d39SAndroid Build Coastguard Worker UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_E = 256, /*[2B820]*/ 1786*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 56 */ 1787*0e209d39SAndroid Build Coastguard Worker UBLOCK_EARLY_DYNASTIC_CUNEIFORM = 257, /*[12480]*/ 1788*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 56 */ 1789*0e209d39SAndroid Build Coastguard Worker UBLOCK_HATRAN = 258, /*[108E0]*/ 1790*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 56 */ 1791*0e209d39SAndroid Build Coastguard Worker UBLOCK_MULTANI = 259, /*[11280]*/ 1792*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 56 */ 1793*0e209d39SAndroid Build Coastguard Worker UBLOCK_OLD_HUNGARIAN = 260, /*[10C80]*/ 1794*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 56 */ 1795*0e209d39SAndroid Build Coastguard Worker UBLOCK_SUPPLEMENTAL_SYMBOLS_AND_PICTOGRAPHS = 261, /*[1F900]*/ 1796*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 56 */ 1797*0e209d39SAndroid Build Coastguard Worker UBLOCK_SUTTON_SIGNWRITING = 262, /*[1D800]*/ 1798*0e209d39SAndroid Build Coastguard Worker 1799*0e209d39SAndroid Build Coastguard Worker /* New blocks in Unicode 9.0 */ 1800*0e209d39SAndroid Build Coastguard Worker 1801*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 58 */ 1802*0e209d39SAndroid Build Coastguard Worker UBLOCK_ADLAM = 263, /*[1E900]*/ 1803*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 58 */ 1804*0e209d39SAndroid Build Coastguard Worker UBLOCK_BHAIKSUKI = 264, /*[11C00]*/ 1805*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 58 */ 1806*0e209d39SAndroid Build Coastguard Worker UBLOCK_CYRILLIC_EXTENDED_C = 265, /*[1C80]*/ 1807*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 58 */ 1808*0e209d39SAndroid Build Coastguard Worker UBLOCK_GLAGOLITIC_SUPPLEMENT = 266, /*[1E000]*/ 1809*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 58 */ 1810*0e209d39SAndroid Build Coastguard Worker UBLOCK_IDEOGRAPHIC_SYMBOLS_AND_PUNCTUATION = 267, /*[16FE0]*/ 1811*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 58 */ 1812*0e209d39SAndroid Build Coastguard Worker UBLOCK_MARCHEN = 268, /*[11C70]*/ 1813*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 58 */ 1814*0e209d39SAndroid Build Coastguard Worker UBLOCK_MONGOLIAN_SUPPLEMENT = 269, /*[11660]*/ 1815*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 58 */ 1816*0e209d39SAndroid Build Coastguard Worker UBLOCK_NEWA = 270, /*[11400]*/ 1817*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 58 */ 1818*0e209d39SAndroid Build Coastguard Worker UBLOCK_OSAGE = 271, /*[104B0]*/ 1819*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 58 */ 1820*0e209d39SAndroid Build Coastguard Worker UBLOCK_TANGUT = 272, /*[17000]*/ 1821*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 58 */ 1822*0e209d39SAndroid Build Coastguard Worker UBLOCK_TANGUT_COMPONENTS = 273, /*[18800]*/ 1823*0e209d39SAndroid Build Coastguard Worker 1824*0e209d39SAndroid Build Coastguard Worker // New blocks in Unicode 10.0 1825*0e209d39SAndroid Build Coastguard Worker 1826*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 60 */ 1827*0e209d39SAndroid Build Coastguard Worker UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_F = 274, /*[2CEB0]*/ 1828*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 60 */ 1829*0e209d39SAndroid Build Coastguard Worker UBLOCK_KANA_EXTENDED_A = 275, /*[1B100]*/ 1830*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 60 */ 1831*0e209d39SAndroid Build Coastguard Worker UBLOCK_MASARAM_GONDI = 276, /*[11D00]*/ 1832*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 60 */ 1833*0e209d39SAndroid Build Coastguard Worker UBLOCK_NUSHU = 277, /*[1B170]*/ 1834*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 60 */ 1835*0e209d39SAndroid Build Coastguard Worker UBLOCK_SOYOMBO = 278, /*[11A50]*/ 1836*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 60 */ 1837*0e209d39SAndroid Build Coastguard Worker UBLOCK_SYRIAC_SUPPLEMENT = 279, /*[0860]*/ 1838*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 60 */ 1839*0e209d39SAndroid Build Coastguard Worker UBLOCK_ZANABAZAR_SQUARE = 280, /*[11A00]*/ 1840*0e209d39SAndroid Build Coastguard Worker 1841*0e209d39SAndroid Build Coastguard Worker // New blocks in Unicode 11.0 1842*0e209d39SAndroid Build Coastguard Worker 1843*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 62 */ 1844*0e209d39SAndroid Build Coastguard Worker UBLOCK_CHESS_SYMBOLS = 281, /*[1FA00]*/ 1845*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 62 */ 1846*0e209d39SAndroid Build Coastguard Worker UBLOCK_DOGRA = 282, /*[11800]*/ 1847*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 62 */ 1848*0e209d39SAndroid Build Coastguard Worker UBLOCK_GEORGIAN_EXTENDED = 283, /*[1C90]*/ 1849*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 62 */ 1850*0e209d39SAndroid Build Coastguard Worker UBLOCK_GUNJALA_GONDI = 284, /*[11D60]*/ 1851*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 62 */ 1852*0e209d39SAndroid Build Coastguard Worker UBLOCK_HANIFI_ROHINGYA = 285, /*[10D00]*/ 1853*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 62 */ 1854*0e209d39SAndroid Build Coastguard Worker UBLOCK_INDIC_SIYAQ_NUMBERS = 286, /*[1EC70]*/ 1855*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 62 */ 1856*0e209d39SAndroid Build Coastguard Worker UBLOCK_MAKASAR = 287, /*[11EE0]*/ 1857*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 62 */ 1858*0e209d39SAndroid Build Coastguard Worker UBLOCK_MAYAN_NUMERALS = 288, /*[1D2E0]*/ 1859*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 62 */ 1860*0e209d39SAndroid Build Coastguard Worker UBLOCK_MEDEFAIDRIN = 289, /*[16E40]*/ 1861*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 62 */ 1862*0e209d39SAndroid Build Coastguard Worker UBLOCK_OLD_SOGDIAN = 290, /*[10F00]*/ 1863*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 62 */ 1864*0e209d39SAndroid Build Coastguard Worker UBLOCK_SOGDIAN = 291, /*[10F30]*/ 1865*0e209d39SAndroid Build Coastguard Worker 1866*0e209d39SAndroid Build Coastguard Worker // New blocks in Unicode 12.0 1867*0e209d39SAndroid Build Coastguard Worker 1868*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 64 */ 1869*0e209d39SAndroid Build Coastguard Worker UBLOCK_EGYPTIAN_HIEROGLYPH_FORMAT_CONTROLS = 292, /*[13430]*/ 1870*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 64 */ 1871*0e209d39SAndroid Build Coastguard Worker UBLOCK_ELYMAIC = 293, /*[10FE0]*/ 1872*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 64 */ 1873*0e209d39SAndroid Build Coastguard Worker UBLOCK_NANDINAGARI = 294, /*[119A0]*/ 1874*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 64 */ 1875*0e209d39SAndroid Build Coastguard Worker UBLOCK_NYIAKENG_PUACHUE_HMONG = 295, /*[1E100]*/ 1876*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 64 */ 1877*0e209d39SAndroid Build Coastguard Worker UBLOCK_OTTOMAN_SIYAQ_NUMBERS = 296, /*[1ED00]*/ 1878*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 64 */ 1879*0e209d39SAndroid Build Coastguard Worker UBLOCK_SMALL_KANA_EXTENSION = 297, /*[1B130]*/ 1880*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 64 */ 1881*0e209d39SAndroid Build Coastguard Worker UBLOCK_SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A = 298, /*[1FA70]*/ 1882*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 64 */ 1883*0e209d39SAndroid Build Coastguard Worker UBLOCK_TAMIL_SUPPLEMENT = 299, /*[11FC0]*/ 1884*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 64 */ 1885*0e209d39SAndroid Build Coastguard Worker UBLOCK_WANCHO = 300, /*[1E2C0]*/ 1886*0e209d39SAndroid Build Coastguard Worker 1887*0e209d39SAndroid Build Coastguard Worker // New blocks in Unicode 13.0 1888*0e209d39SAndroid Build Coastguard Worker 1889*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 66 */ 1890*0e209d39SAndroid Build Coastguard Worker UBLOCK_CHORASMIAN = 301, /*[10FB0]*/ 1891*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 66 */ 1892*0e209d39SAndroid Build Coastguard Worker UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_G = 302, /*[30000]*/ 1893*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 66 */ 1894*0e209d39SAndroid Build Coastguard Worker UBLOCK_DIVES_AKURU = 303, /*[11900]*/ 1895*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 66 */ 1896*0e209d39SAndroid Build Coastguard Worker UBLOCK_KHITAN_SMALL_SCRIPT = 304, /*[18B00]*/ 1897*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 66 */ 1898*0e209d39SAndroid Build Coastguard Worker UBLOCK_LISU_SUPPLEMENT = 305, /*[11FB0]*/ 1899*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 66 */ 1900*0e209d39SAndroid Build Coastguard Worker UBLOCK_SYMBOLS_FOR_LEGACY_COMPUTING = 306, /*[1FB00]*/ 1901*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 66 */ 1902*0e209d39SAndroid Build Coastguard Worker UBLOCK_TANGUT_SUPPLEMENT = 307, /*[18D00]*/ 1903*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 66 */ 1904*0e209d39SAndroid Build Coastguard Worker UBLOCK_YEZIDI = 308, /*[10E80]*/ 1905*0e209d39SAndroid Build Coastguard Worker 1906*0e209d39SAndroid Build Coastguard Worker // New blocks in Unicode 14.0 1907*0e209d39SAndroid Build Coastguard Worker 1908*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 70 */ 1909*0e209d39SAndroid Build Coastguard Worker UBLOCK_ARABIC_EXTENDED_B = 309, /*[0870]*/ 1910*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 70 */ 1911*0e209d39SAndroid Build Coastguard Worker UBLOCK_CYPRO_MINOAN = 310, /*[12F90]*/ 1912*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 70 */ 1913*0e209d39SAndroid Build Coastguard Worker UBLOCK_ETHIOPIC_EXTENDED_B = 311, /*[1E7E0]*/ 1914*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 70 */ 1915*0e209d39SAndroid Build Coastguard Worker UBLOCK_KANA_EXTENDED_B = 312, /*[1AFF0]*/ 1916*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 70 */ 1917*0e209d39SAndroid Build Coastguard Worker UBLOCK_LATIN_EXTENDED_F = 313, /*[10780]*/ 1918*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 70 */ 1919*0e209d39SAndroid Build Coastguard Worker UBLOCK_LATIN_EXTENDED_G = 314, /*[1DF00]*/ 1920*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 70 */ 1921*0e209d39SAndroid Build Coastguard Worker UBLOCK_OLD_UYGHUR = 315, /*[10F70]*/ 1922*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 70 */ 1923*0e209d39SAndroid Build Coastguard Worker UBLOCK_TANGSA = 316, /*[16A70]*/ 1924*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 70 */ 1925*0e209d39SAndroid Build Coastguard Worker UBLOCK_TOTO = 317, /*[1E290]*/ 1926*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 70 */ 1927*0e209d39SAndroid Build Coastguard Worker UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED_A = 318, /*[11AB0]*/ 1928*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 70 */ 1929*0e209d39SAndroid Build Coastguard Worker UBLOCK_VITHKUQI = 319, /*[10570]*/ 1930*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 70 */ 1931*0e209d39SAndroid Build Coastguard Worker UBLOCK_ZNAMENNY_MUSICAL_NOTATION = 320, /*[1CF00]*/ 1932*0e209d39SAndroid Build Coastguard Worker 1933*0e209d39SAndroid Build Coastguard Worker // New blocks in Unicode 15.0 1934*0e209d39SAndroid Build Coastguard Worker 1935*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 72 */ 1936*0e209d39SAndroid Build Coastguard Worker UBLOCK_ARABIC_EXTENDED_C = 321, /*[10EC0]*/ 1937*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 72 */ 1938*0e209d39SAndroid Build Coastguard Worker UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_H = 322, /*[31350]*/ 1939*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 72 */ 1940*0e209d39SAndroid Build Coastguard Worker UBLOCK_CYRILLIC_EXTENDED_D = 323, /*[1E030]*/ 1941*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 72 */ 1942*0e209d39SAndroid Build Coastguard Worker UBLOCK_DEVANAGARI_EXTENDED_A = 324, /*[11B00]*/ 1943*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 72 */ 1944*0e209d39SAndroid Build Coastguard Worker UBLOCK_KAKTOVIK_NUMERALS = 325, /*[1D2C0]*/ 1945*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 72 */ 1946*0e209d39SAndroid Build Coastguard Worker UBLOCK_KAWI = 326, /*[11F00]*/ 1947*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 72 */ 1948*0e209d39SAndroid Build Coastguard Worker UBLOCK_NAG_MUNDARI = 327, /*[1E4D0]*/ 1949*0e209d39SAndroid Build Coastguard Worker 1950*0e209d39SAndroid Build Coastguard Worker // New block in Unicode 15.1 1951*0e209d39SAndroid Build Coastguard Worker 1952*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 74 */ 1953*0e209d39SAndroid Build Coastguard Worker UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_I = 328, /*[2EBF0]*/ 1954*0e209d39SAndroid Build Coastguard Worker 1955*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_DEPRECATED_API 1956*0e209d39SAndroid Build Coastguard Worker /** 1957*0e209d39SAndroid Build Coastguard Worker * One more than the highest normal UBlockCode value. 1958*0e209d39SAndroid Build Coastguard Worker * The highest value is available via u_getIntPropertyMaxValue(UCHAR_BLOCK). 1959*0e209d39SAndroid Build Coastguard Worker * 1960*0e209d39SAndroid Build Coastguard Worker * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. 1961*0e209d39SAndroid Build Coastguard Worker */ 1962*0e209d39SAndroid Build Coastguard Worker UBLOCK_COUNT = 329, 1963*0e209d39SAndroid Build Coastguard Worker #endif // U_HIDE_DEPRECATED_API 1964*0e209d39SAndroid Build Coastguard Worker 1965*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1966*0e209d39SAndroid Build Coastguard Worker UBLOCK_INVALID_CODE=-1 1967*0e209d39SAndroid Build Coastguard Worker }; 1968*0e209d39SAndroid Build Coastguard Worker 1969*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.0 */ 1970*0e209d39SAndroid Build Coastguard Worker typedef enum UBlockCode UBlockCode; 1971*0e209d39SAndroid Build Coastguard Worker 1972*0e209d39SAndroid Build Coastguard Worker /** 1973*0e209d39SAndroid Build Coastguard Worker * East Asian Width constants. 1974*0e209d39SAndroid Build Coastguard Worker * 1975*0e209d39SAndroid Build Coastguard Worker * @see UCHAR_EAST_ASIAN_WIDTH 1976*0e209d39SAndroid Build Coastguard Worker * @see u_getIntPropertyValue 1977*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.2 1978*0e209d39SAndroid Build Coastguard Worker */ 1979*0e209d39SAndroid Build Coastguard Worker typedef enum UEastAsianWidth { 1980*0e209d39SAndroid Build Coastguard Worker /* 1981*0e209d39SAndroid Build Coastguard Worker * Note: UEastAsianWidth constants are parsed by preparseucd.py. 1982*0e209d39SAndroid Build Coastguard Worker * It matches lines like 1983*0e209d39SAndroid Build Coastguard Worker * U_EA_<Unicode East_Asian_Width value name> 1984*0e209d39SAndroid Build Coastguard Worker */ 1985*0e209d39SAndroid Build Coastguard Worker 1986*0e209d39SAndroid Build Coastguard Worker U_EA_NEUTRAL, /*[N]*/ 1987*0e209d39SAndroid Build Coastguard Worker U_EA_AMBIGUOUS, /*[A]*/ 1988*0e209d39SAndroid Build Coastguard Worker U_EA_HALFWIDTH, /*[H]*/ 1989*0e209d39SAndroid Build Coastguard Worker U_EA_FULLWIDTH, /*[F]*/ 1990*0e209d39SAndroid Build Coastguard Worker U_EA_NARROW, /*[Na]*/ 1991*0e209d39SAndroid Build Coastguard Worker U_EA_WIDE, /*[W]*/ 1992*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_DEPRECATED_API 1993*0e209d39SAndroid Build Coastguard Worker /** 1994*0e209d39SAndroid Build Coastguard Worker * One more than the highest normal UEastAsianWidth value. 1995*0e209d39SAndroid Build Coastguard Worker * The highest value is available via u_getIntPropertyMaxValue(UCHAR_EAST_ASIAN_WIDTH). 1996*0e209d39SAndroid Build Coastguard Worker * 1997*0e209d39SAndroid Build Coastguard Worker * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. 1998*0e209d39SAndroid Build Coastguard Worker */ 1999*0e209d39SAndroid Build Coastguard Worker U_EA_COUNT 2000*0e209d39SAndroid Build Coastguard Worker #endif // U_HIDE_DEPRECATED_API 2001*0e209d39SAndroid Build Coastguard Worker } UEastAsianWidth; 2002*0e209d39SAndroid Build Coastguard Worker 2003*0e209d39SAndroid Build Coastguard Worker /** 2004*0e209d39SAndroid Build Coastguard Worker * Selector constants for u_charName(). 2005*0e209d39SAndroid Build Coastguard Worker * u_charName() returns the "modern" name of a 2006*0e209d39SAndroid Build Coastguard Worker * Unicode character; or the name that was defined in 2007*0e209d39SAndroid Build Coastguard Worker * Unicode version 1.0, before the Unicode standard merged 2008*0e209d39SAndroid Build Coastguard Worker * with ISO-10646; or an "extended" name that gives each 2009*0e209d39SAndroid Build Coastguard Worker * Unicode code point a unique name. 2010*0e209d39SAndroid Build Coastguard Worker * 2011*0e209d39SAndroid Build Coastguard Worker * @see u_charName 2012*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 2013*0e209d39SAndroid Build Coastguard Worker */ 2014*0e209d39SAndroid Build Coastguard Worker typedef enum UCharNameChoice { 2015*0e209d39SAndroid Build Coastguard Worker /** Unicode character name (Name property). @stable ICU 2.0 */ 2016*0e209d39SAndroid Build Coastguard Worker U_UNICODE_CHAR_NAME, 2017*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_DEPRECATED_API 2018*0e209d39SAndroid Build Coastguard Worker /** 2019*0e209d39SAndroid Build Coastguard Worker * The Unicode_1_Name property value which is of little practical value. 2020*0e209d39SAndroid Build Coastguard Worker * Beginning with ICU 49, ICU APIs return an empty string for this name choice. 2021*0e209d39SAndroid Build Coastguard Worker * @deprecated ICU 49 2022*0e209d39SAndroid Build Coastguard Worker */ 2023*0e209d39SAndroid Build Coastguard Worker U_UNICODE_10_CHAR_NAME, 2024*0e209d39SAndroid Build Coastguard Worker #endif /* U_HIDE_DEPRECATED_API */ 2025*0e209d39SAndroid Build Coastguard Worker /** Standard or synthetic character name. @stable ICU 2.0 */ 2026*0e209d39SAndroid Build Coastguard Worker U_EXTENDED_CHAR_NAME = U_UNICODE_CHAR_NAME+2, 2027*0e209d39SAndroid Build Coastguard Worker /** Corrected name from NameAliases.txt. @stable ICU 4.4 */ 2028*0e209d39SAndroid Build Coastguard Worker U_CHAR_NAME_ALIAS, 2029*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_DEPRECATED_API 2030*0e209d39SAndroid Build Coastguard Worker /** 2031*0e209d39SAndroid Build Coastguard Worker * One more than the highest normal UCharNameChoice value. 2032*0e209d39SAndroid Build Coastguard Worker * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. 2033*0e209d39SAndroid Build Coastguard Worker */ 2034*0e209d39SAndroid Build Coastguard Worker U_CHAR_NAME_CHOICE_COUNT 2035*0e209d39SAndroid Build Coastguard Worker #endif // U_HIDE_DEPRECATED_API 2036*0e209d39SAndroid Build Coastguard Worker } UCharNameChoice; 2037*0e209d39SAndroid Build Coastguard Worker 2038*0e209d39SAndroid Build Coastguard Worker /** 2039*0e209d39SAndroid Build Coastguard Worker * Selector constants for u_getPropertyName() and 2040*0e209d39SAndroid Build Coastguard Worker * u_getPropertyValueName(). These selectors are used to choose which 2041*0e209d39SAndroid Build Coastguard Worker * name is returned for a given property or value. All properties and 2042*0e209d39SAndroid Build Coastguard Worker * values have a long name. Most have a short name, but some do not. 2043*0e209d39SAndroid Build Coastguard Worker * Unicode allows for additional names, beyond the long and short 2044*0e209d39SAndroid Build Coastguard Worker * name, which would be indicated by U_LONG_PROPERTY_NAME + i, where 2045*0e209d39SAndroid Build Coastguard Worker * i=1, 2,... 2046*0e209d39SAndroid Build Coastguard Worker * 2047*0e209d39SAndroid Build Coastguard Worker * @see u_getPropertyName() 2048*0e209d39SAndroid Build Coastguard Worker * @see u_getPropertyValueName() 2049*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.4 2050*0e209d39SAndroid Build Coastguard Worker */ 2051*0e209d39SAndroid Build Coastguard Worker typedef enum UPropertyNameChoice { 2052*0e209d39SAndroid Build Coastguard Worker U_SHORT_PROPERTY_NAME, 2053*0e209d39SAndroid Build Coastguard Worker U_LONG_PROPERTY_NAME, 2054*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_DEPRECATED_API 2055*0e209d39SAndroid Build Coastguard Worker /** 2056*0e209d39SAndroid Build Coastguard Worker * One more than the highest normal UPropertyNameChoice value. 2057*0e209d39SAndroid Build Coastguard Worker * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. 2058*0e209d39SAndroid Build Coastguard Worker */ 2059*0e209d39SAndroid Build Coastguard Worker U_PROPERTY_NAME_CHOICE_COUNT 2060*0e209d39SAndroid Build Coastguard Worker #endif // U_HIDE_DEPRECATED_API 2061*0e209d39SAndroid Build Coastguard Worker } UPropertyNameChoice; 2062*0e209d39SAndroid Build Coastguard Worker 2063*0e209d39SAndroid Build Coastguard Worker /** 2064*0e209d39SAndroid Build Coastguard Worker * Decomposition Type constants. 2065*0e209d39SAndroid Build Coastguard Worker * 2066*0e209d39SAndroid Build Coastguard Worker * @see UCHAR_DECOMPOSITION_TYPE 2067*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.2 2068*0e209d39SAndroid Build Coastguard Worker */ 2069*0e209d39SAndroid Build Coastguard Worker typedef enum UDecompositionType { 2070*0e209d39SAndroid Build Coastguard Worker /* 2071*0e209d39SAndroid Build Coastguard Worker * Note: UDecompositionType constants are parsed by preparseucd.py. 2072*0e209d39SAndroid Build Coastguard Worker * It matches lines like 2073*0e209d39SAndroid Build Coastguard Worker * U_DT_<Unicode Decomposition_Type value name> 2074*0e209d39SAndroid Build Coastguard Worker */ 2075*0e209d39SAndroid Build Coastguard Worker 2076*0e209d39SAndroid Build Coastguard Worker U_DT_NONE, /*[none]*/ 2077*0e209d39SAndroid Build Coastguard Worker U_DT_CANONICAL, /*[can]*/ 2078*0e209d39SAndroid Build Coastguard Worker U_DT_COMPAT, /*[com]*/ 2079*0e209d39SAndroid Build Coastguard Worker U_DT_CIRCLE, /*[enc]*/ 2080*0e209d39SAndroid Build Coastguard Worker U_DT_FINAL, /*[fin]*/ 2081*0e209d39SAndroid Build Coastguard Worker U_DT_FONT, /*[font]*/ 2082*0e209d39SAndroid Build Coastguard Worker U_DT_FRACTION, /*[fra]*/ 2083*0e209d39SAndroid Build Coastguard Worker U_DT_INITIAL, /*[init]*/ 2084*0e209d39SAndroid Build Coastguard Worker U_DT_ISOLATED, /*[iso]*/ 2085*0e209d39SAndroid Build Coastguard Worker U_DT_MEDIAL, /*[med]*/ 2086*0e209d39SAndroid Build Coastguard Worker U_DT_NARROW, /*[nar]*/ 2087*0e209d39SAndroid Build Coastguard Worker U_DT_NOBREAK, /*[nb]*/ 2088*0e209d39SAndroid Build Coastguard Worker U_DT_SMALL, /*[sml]*/ 2089*0e209d39SAndroid Build Coastguard Worker U_DT_SQUARE, /*[sqr]*/ 2090*0e209d39SAndroid Build Coastguard Worker U_DT_SUB, /*[sub]*/ 2091*0e209d39SAndroid Build Coastguard Worker U_DT_SUPER, /*[sup]*/ 2092*0e209d39SAndroid Build Coastguard Worker U_DT_VERTICAL, /*[vert]*/ 2093*0e209d39SAndroid Build Coastguard Worker U_DT_WIDE, /*[wide]*/ 2094*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_DEPRECATED_API 2095*0e209d39SAndroid Build Coastguard Worker /** 2096*0e209d39SAndroid Build Coastguard Worker * One more than the highest normal UDecompositionType value. 2097*0e209d39SAndroid Build Coastguard Worker * The highest value is available via u_getIntPropertyMaxValue(UCHAR_DECOMPOSITION_TYPE). 2098*0e209d39SAndroid Build Coastguard Worker * 2099*0e209d39SAndroid Build Coastguard Worker * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. 2100*0e209d39SAndroid Build Coastguard Worker */ 2101*0e209d39SAndroid Build Coastguard Worker U_DT_COUNT /* 18 */ 2102*0e209d39SAndroid Build Coastguard Worker #endif // U_HIDE_DEPRECATED_API 2103*0e209d39SAndroid Build Coastguard Worker } UDecompositionType; 2104*0e209d39SAndroid Build Coastguard Worker 2105*0e209d39SAndroid Build Coastguard Worker /** 2106*0e209d39SAndroid Build Coastguard Worker * Joining Type constants. 2107*0e209d39SAndroid Build Coastguard Worker * 2108*0e209d39SAndroid Build Coastguard Worker * @see UCHAR_JOINING_TYPE 2109*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.2 2110*0e209d39SAndroid Build Coastguard Worker */ 2111*0e209d39SAndroid Build Coastguard Worker typedef enum UJoiningType { 2112*0e209d39SAndroid Build Coastguard Worker /* 2113*0e209d39SAndroid Build Coastguard Worker * Note: UJoiningType constants are parsed by preparseucd.py. 2114*0e209d39SAndroid Build Coastguard Worker * It matches lines like 2115*0e209d39SAndroid Build Coastguard Worker * U_JT_<Unicode Joining_Type value name> 2116*0e209d39SAndroid Build Coastguard Worker */ 2117*0e209d39SAndroid Build Coastguard Worker 2118*0e209d39SAndroid Build Coastguard Worker U_JT_NON_JOINING, /*[U]*/ 2119*0e209d39SAndroid Build Coastguard Worker U_JT_JOIN_CAUSING, /*[C]*/ 2120*0e209d39SAndroid Build Coastguard Worker U_JT_DUAL_JOINING, /*[D]*/ 2121*0e209d39SAndroid Build Coastguard Worker U_JT_LEFT_JOINING, /*[L]*/ 2122*0e209d39SAndroid Build Coastguard Worker U_JT_RIGHT_JOINING, /*[R]*/ 2123*0e209d39SAndroid Build Coastguard Worker U_JT_TRANSPARENT, /*[T]*/ 2124*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_DEPRECATED_API 2125*0e209d39SAndroid Build Coastguard Worker /** 2126*0e209d39SAndroid Build Coastguard Worker * One more than the highest normal UJoiningType value. 2127*0e209d39SAndroid Build Coastguard Worker * The highest value is available via u_getIntPropertyMaxValue(UCHAR_JOINING_TYPE). 2128*0e209d39SAndroid Build Coastguard Worker * 2129*0e209d39SAndroid Build Coastguard Worker * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. 2130*0e209d39SAndroid Build Coastguard Worker */ 2131*0e209d39SAndroid Build Coastguard Worker U_JT_COUNT /* 6 */ 2132*0e209d39SAndroid Build Coastguard Worker #endif // U_HIDE_DEPRECATED_API 2133*0e209d39SAndroid Build Coastguard Worker } UJoiningType; 2134*0e209d39SAndroid Build Coastguard Worker 2135*0e209d39SAndroid Build Coastguard Worker /** 2136*0e209d39SAndroid Build Coastguard Worker * Joining Group constants. 2137*0e209d39SAndroid Build Coastguard Worker * 2138*0e209d39SAndroid Build Coastguard Worker * @see UCHAR_JOINING_GROUP 2139*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.2 2140*0e209d39SAndroid Build Coastguard Worker */ 2141*0e209d39SAndroid Build Coastguard Worker typedef enum UJoiningGroup { 2142*0e209d39SAndroid Build Coastguard Worker /* 2143*0e209d39SAndroid Build Coastguard Worker * Note: UJoiningGroup constants are parsed by preparseucd.py. 2144*0e209d39SAndroid Build Coastguard Worker * It matches lines like 2145*0e209d39SAndroid Build Coastguard Worker * U_JG_<Unicode Joining_Group value name> 2146*0e209d39SAndroid Build Coastguard Worker */ 2147*0e209d39SAndroid Build Coastguard Worker 2148*0e209d39SAndroid Build Coastguard Worker U_JG_NO_JOINING_GROUP, 2149*0e209d39SAndroid Build Coastguard Worker U_JG_AIN, 2150*0e209d39SAndroid Build Coastguard Worker U_JG_ALAPH, 2151*0e209d39SAndroid Build Coastguard Worker U_JG_ALEF, 2152*0e209d39SAndroid Build Coastguard Worker U_JG_BEH, 2153*0e209d39SAndroid Build Coastguard Worker U_JG_BETH, 2154*0e209d39SAndroid Build Coastguard Worker U_JG_DAL, 2155*0e209d39SAndroid Build Coastguard Worker U_JG_DALATH_RISH, 2156*0e209d39SAndroid Build Coastguard Worker U_JG_E, 2157*0e209d39SAndroid Build Coastguard Worker U_JG_FEH, 2158*0e209d39SAndroid Build Coastguard Worker U_JG_FINAL_SEMKATH, 2159*0e209d39SAndroid Build Coastguard Worker U_JG_GAF, 2160*0e209d39SAndroid Build Coastguard Worker U_JG_GAMAL, 2161*0e209d39SAndroid Build Coastguard Worker U_JG_HAH, 2162*0e209d39SAndroid Build Coastguard Worker U_JG_TEH_MARBUTA_GOAL, /**< @stable ICU 4.6 */ 2163*0e209d39SAndroid Build Coastguard Worker U_JG_HAMZA_ON_HEH_GOAL=U_JG_TEH_MARBUTA_GOAL, 2164*0e209d39SAndroid Build Coastguard Worker U_JG_HE, 2165*0e209d39SAndroid Build Coastguard Worker U_JG_HEH, 2166*0e209d39SAndroid Build Coastguard Worker U_JG_HEH_GOAL, 2167*0e209d39SAndroid Build Coastguard Worker U_JG_HETH, 2168*0e209d39SAndroid Build Coastguard Worker U_JG_KAF, 2169*0e209d39SAndroid Build Coastguard Worker U_JG_KAPH, 2170*0e209d39SAndroid Build Coastguard Worker U_JG_KNOTTED_HEH, 2171*0e209d39SAndroid Build Coastguard Worker U_JG_LAM, 2172*0e209d39SAndroid Build Coastguard Worker U_JG_LAMADH, 2173*0e209d39SAndroid Build Coastguard Worker U_JG_MEEM, 2174*0e209d39SAndroid Build Coastguard Worker U_JG_MIM, 2175*0e209d39SAndroid Build Coastguard Worker U_JG_NOON, 2176*0e209d39SAndroid Build Coastguard Worker U_JG_NUN, 2177*0e209d39SAndroid Build Coastguard Worker U_JG_PE, 2178*0e209d39SAndroid Build Coastguard Worker U_JG_QAF, 2179*0e209d39SAndroid Build Coastguard Worker U_JG_QAPH, 2180*0e209d39SAndroid Build Coastguard Worker U_JG_REH, 2181*0e209d39SAndroid Build Coastguard Worker U_JG_REVERSED_PE, 2182*0e209d39SAndroid Build Coastguard Worker U_JG_SAD, 2183*0e209d39SAndroid Build Coastguard Worker U_JG_SADHE, 2184*0e209d39SAndroid Build Coastguard Worker U_JG_SEEN, 2185*0e209d39SAndroid Build Coastguard Worker U_JG_SEMKATH, 2186*0e209d39SAndroid Build Coastguard Worker U_JG_SHIN, 2187*0e209d39SAndroid Build Coastguard Worker U_JG_SWASH_KAF, 2188*0e209d39SAndroid Build Coastguard Worker U_JG_SYRIAC_WAW, 2189*0e209d39SAndroid Build Coastguard Worker U_JG_TAH, 2190*0e209d39SAndroid Build Coastguard Worker U_JG_TAW, 2191*0e209d39SAndroid Build Coastguard Worker U_JG_TEH_MARBUTA, 2192*0e209d39SAndroid Build Coastguard Worker U_JG_TETH, 2193*0e209d39SAndroid Build Coastguard Worker U_JG_WAW, 2194*0e209d39SAndroid Build Coastguard Worker U_JG_YEH, 2195*0e209d39SAndroid Build Coastguard Worker U_JG_YEH_BARREE, 2196*0e209d39SAndroid Build Coastguard Worker U_JG_YEH_WITH_TAIL, 2197*0e209d39SAndroid Build Coastguard Worker U_JG_YUDH, 2198*0e209d39SAndroid Build Coastguard Worker U_JG_YUDH_HE, 2199*0e209d39SAndroid Build Coastguard Worker U_JG_ZAIN, 2200*0e209d39SAndroid Build Coastguard Worker U_JG_FE, /**< @stable ICU 2.6 */ 2201*0e209d39SAndroid Build Coastguard Worker U_JG_KHAPH, /**< @stable ICU 2.6 */ 2202*0e209d39SAndroid Build Coastguard Worker U_JG_ZHAIN, /**< @stable ICU 2.6 */ 2203*0e209d39SAndroid Build Coastguard Worker U_JG_BURUSHASKI_YEH_BARREE, /**< @stable ICU 4.0 */ 2204*0e209d39SAndroid Build Coastguard Worker U_JG_FARSI_YEH, /**< @stable ICU 4.4 */ 2205*0e209d39SAndroid Build Coastguard Worker U_JG_NYA, /**< @stable ICU 4.4 */ 2206*0e209d39SAndroid Build Coastguard Worker U_JG_ROHINGYA_YEH, /**< @stable ICU 49 */ 2207*0e209d39SAndroid Build Coastguard Worker U_JG_MANICHAEAN_ALEPH, /**< @stable ICU 54 */ 2208*0e209d39SAndroid Build Coastguard Worker U_JG_MANICHAEAN_AYIN, /**< @stable ICU 54 */ 2209*0e209d39SAndroid Build Coastguard Worker U_JG_MANICHAEAN_BETH, /**< @stable ICU 54 */ 2210*0e209d39SAndroid Build Coastguard Worker U_JG_MANICHAEAN_DALETH, /**< @stable ICU 54 */ 2211*0e209d39SAndroid Build Coastguard Worker U_JG_MANICHAEAN_DHAMEDH, /**< @stable ICU 54 */ 2212*0e209d39SAndroid Build Coastguard Worker U_JG_MANICHAEAN_FIVE, /**< @stable ICU 54 */ 2213*0e209d39SAndroid Build Coastguard Worker U_JG_MANICHAEAN_GIMEL, /**< @stable ICU 54 */ 2214*0e209d39SAndroid Build Coastguard Worker U_JG_MANICHAEAN_HETH, /**< @stable ICU 54 */ 2215*0e209d39SAndroid Build Coastguard Worker U_JG_MANICHAEAN_HUNDRED, /**< @stable ICU 54 */ 2216*0e209d39SAndroid Build Coastguard Worker U_JG_MANICHAEAN_KAPH, /**< @stable ICU 54 */ 2217*0e209d39SAndroid Build Coastguard Worker U_JG_MANICHAEAN_LAMEDH, /**< @stable ICU 54 */ 2218*0e209d39SAndroid Build Coastguard Worker U_JG_MANICHAEAN_MEM, /**< @stable ICU 54 */ 2219*0e209d39SAndroid Build Coastguard Worker U_JG_MANICHAEAN_NUN, /**< @stable ICU 54 */ 2220*0e209d39SAndroid Build Coastguard Worker U_JG_MANICHAEAN_ONE, /**< @stable ICU 54 */ 2221*0e209d39SAndroid Build Coastguard Worker U_JG_MANICHAEAN_PE, /**< @stable ICU 54 */ 2222*0e209d39SAndroid Build Coastguard Worker U_JG_MANICHAEAN_QOPH, /**< @stable ICU 54 */ 2223*0e209d39SAndroid Build Coastguard Worker U_JG_MANICHAEAN_RESH, /**< @stable ICU 54 */ 2224*0e209d39SAndroid Build Coastguard Worker U_JG_MANICHAEAN_SADHE, /**< @stable ICU 54 */ 2225*0e209d39SAndroid Build Coastguard Worker U_JG_MANICHAEAN_SAMEKH, /**< @stable ICU 54 */ 2226*0e209d39SAndroid Build Coastguard Worker U_JG_MANICHAEAN_TAW, /**< @stable ICU 54 */ 2227*0e209d39SAndroid Build Coastguard Worker U_JG_MANICHAEAN_TEN, /**< @stable ICU 54 */ 2228*0e209d39SAndroid Build Coastguard Worker U_JG_MANICHAEAN_TETH, /**< @stable ICU 54 */ 2229*0e209d39SAndroid Build Coastguard Worker U_JG_MANICHAEAN_THAMEDH, /**< @stable ICU 54 */ 2230*0e209d39SAndroid Build Coastguard Worker U_JG_MANICHAEAN_TWENTY, /**< @stable ICU 54 */ 2231*0e209d39SAndroid Build Coastguard Worker U_JG_MANICHAEAN_WAW, /**< @stable ICU 54 */ 2232*0e209d39SAndroid Build Coastguard Worker U_JG_MANICHAEAN_YODH, /**< @stable ICU 54 */ 2233*0e209d39SAndroid Build Coastguard Worker U_JG_MANICHAEAN_ZAYIN, /**< @stable ICU 54 */ 2234*0e209d39SAndroid Build Coastguard Worker U_JG_STRAIGHT_WAW, /**< @stable ICU 54 */ 2235*0e209d39SAndroid Build Coastguard Worker U_JG_AFRICAN_FEH, /**< @stable ICU 58 */ 2236*0e209d39SAndroid Build Coastguard Worker U_JG_AFRICAN_NOON, /**< @stable ICU 58 */ 2237*0e209d39SAndroid Build Coastguard Worker U_JG_AFRICAN_QAF, /**< @stable ICU 58 */ 2238*0e209d39SAndroid Build Coastguard Worker 2239*0e209d39SAndroid Build Coastguard Worker U_JG_MALAYALAM_BHA, /**< @stable ICU 60 */ 2240*0e209d39SAndroid Build Coastguard Worker U_JG_MALAYALAM_JA, /**< @stable ICU 60 */ 2241*0e209d39SAndroid Build Coastguard Worker U_JG_MALAYALAM_LLA, /**< @stable ICU 60 */ 2242*0e209d39SAndroid Build Coastguard Worker U_JG_MALAYALAM_LLLA, /**< @stable ICU 60 */ 2243*0e209d39SAndroid Build Coastguard Worker U_JG_MALAYALAM_NGA, /**< @stable ICU 60 */ 2244*0e209d39SAndroid Build Coastguard Worker U_JG_MALAYALAM_NNA, /**< @stable ICU 60 */ 2245*0e209d39SAndroid Build Coastguard Worker U_JG_MALAYALAM_NNNA, /**< @stable ICU 60 */ 2246*0e209d39SAndroid Build Coastguard Worker U_JG_MALAYALAM_NYA, /**< @stable ICU 60 */ 2247*0e209d39SAndroid Build Coastguard Worker U_JG_MALAYALAM_RA, /**< @stable ICU 60 */ 2248*0e209d39SAndroid Build Coastguard Worker U_JG_MALAYALAM_SSA, /**< @stable ICU 60 */ 2249*0e209d39SAndroid Build Coastguard Worker U_JG_MALAYALAM_TTA, /**< @stable ICU 60 */ 2250*0e209d39SAndroid Build Coastguard Worker 2251*0e209d39SAndroid Build Coastguard Worker U_JG_HANIFI_ROHINGYA_KINNA_YA, /**< @stable ICU 62 */ 2252*0e209d39SAndroid Build Coastguard Worker U_JG_HANIFI_ROHINGYA_PA, /**< @stable ICU 62 */ 2253*0e209d39SAndroid Build Coastguard Worker 2254*0e209d39SAndroid Build Coastguard Worker U_JG_THIN_YEH, /**< @stable ICU 70 */ 2255*0e209d39SAndroid Build Coastguard Worker U_JG_VERTICAL_TAIL, /**< @stable ICU 70 */ 2256*0e209d39SAndroid Build Coastguard Worker 2257*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_DEPRECATED_API 2258*0e209d39SAndroid Build Coastguard Worker /** 2259*0e209d39SAndroid Build Coastguard Worker * One more than the highest normal UJoiningGroup value. 2260*0e209d39SAndroid Build Coastguard Worker * The highest value is available via u_getIntPropertyMaxValue(UCHAR_JOINING_GROUP). 2261*0e209d39SAndroid Build Coastguard Worker * 2262*0e209d39SAndroid Build Coastguard Worker * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. 2263*0e209d39SAndroid Build Coastguard Worker */ 2264*0e209d39SAndroid Build Coastguard Worker U_JG_COUNT 2265*0e209d39SAndroid Build Coastguard Worker #endif // U_HIDE_DEPRECATED_API 2266*0e209d39SAndroid Build Coastguard Worker } UJoiningGroup; 2267*0e209d39SAndroid Build Coastguard Worker 2268*0e209d39SAndroid Build Coastguard Worker /** 2269*0e209d39SAndroid Build Coastguard Worker * Grapheme Cluster Break constants. 2270*0e209d39SAndroid Build Coastguard Worker * 2271*0e209d39SAndroid Build Coastguard Worker * @see UCHAR_GRAPHEME_CLUSTER_BREAK 2272*0e209d39SAndroid Build Coastguard Worker * @stable ICU 3.4 2273*0e209d39SAndroid Build Coastguard Worker */ 2274*0e209d39SAndroid Build Coastguard Worker typedef enum UGraphemeClusterBreak { 2275*0e209d39SAndroid Build Coastguard Worker /* 2276*0e209d39SAndroid Build Coastguard Worker * Note: UGraphemeClusterBreak constants are parsed by preparseucd.py. 2277*0e209d39SAndroid Build Coastguard Worker * It matches lines like 2278*0e209d39SAndroid Build Coastguard Worker * U_GCB_<Unicode Grapheme_Cluster_Break value name> 2279*0e209d39SAndroid Build Coastguard Worker */ 2280*0e209d39SAndroid Build Coastguard Worker 2281*0e209d39SAndroid Build Coastguard Worker U_GCB_OTHER = 0, /*[XX]*/ 2282*0e209d39SAndroid Build Coastguard Worker U_GCB_CONTROL = 1, /*[CN]*/ 2283*0e209d39SAndroid Build Coastguard Worker U_GCB_CR = 2, /*[CR]*/ 2284*0e209d39SAndroid Build Coastguard Worker U_GCB_EXTEND = 3, /*[EX]*/ 2285*0e209d39SAndroid Build Coastguard Worker U_GCB_L = 4, /*[L]*/ 2286*0e209d39SAndroid Build Coastguard Worker U_GCB_LF = 5, /*[LF]*/ 2287*0e209d39SAndroid Build Coastguard Worker U_GCB_LV = 6, /*[LV]*/ 2288*0e209d39SAndroid Build Coastguard Worker U_GCB_LVT = 7, /*[LVT]*/ 2289*0e209d39SAndroid Build Coastguard Worker U_GCB_T = 8, /*[T]*/ 2290*0e209d39SAndroid Build Coastguard Worker U_GCB_V = 9, /*[V]*/ 2291*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.0 */ 2292*0e209d39SAndroid Build Coastguard Worker U_GCB_SPACING_MARK = 10, /*[SM]*/ /* from here on: new in Unicode 5.1/ICU 4.0 */ 2293*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.0 */ 2294*0e209d39SAndroid Build Coastguard Worker U_GCB_PREPEND = 11, /*[PP]*/ 2295*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 50 */ 2296*0e209d39SAndroid Build Coastguard Worker U_GCB_REGIONAL_INDICATOR = 12, /*[RI]*/ /* new in Unicode 6.2/ICU 50 */ 2297*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 58 */ 2298*0e209d39SAndroid Build Coastguard Worker U_GCB_E_BASE = 13, /*[EB]*/ /* from here on: new in Unicode 9.0/ICU 58 */ 2299*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 58 */ 2300*0e209d39SAndroid Build Coastguard Worker U_GCB_E_BASE_GAZ = 14, /*[EBG]*/ 2301*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 58 */ 2302*0e209d39SAndroid Build Coastguard Worker U_GCB_E_MODIFIER = 15, /*[EM]*/ 2303*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 58 */ 2304*0e209d39SAndroid Build Coastguard Worker U_GCB_GLUE_AFTER_ZWJ = 16, /*[GAZ]*/ 2305*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 58 */ 2306*0e209d39SAndroid Build Coastguard Worker U_GCB_ZWJ = 17, /*[ZWJ]*/ 2307*0e209d39SAndroid Build Coastguard Worker 2308*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_DEPRECATED_API 2309*0e209d39SAndroid Build Coastguard Worker /** 2310*0e209d39SAndroid Build Coastguard Worker * One more than the highest normal UGraphemeClusterBreak value. 2311*0e209d39SAndroid Build Coastguard Worker * The highest value is available via u_getIntPropertyMaxValue(UCHAR_GRAPHEME_CLUSTER_BREAK). 2312*0e209d39SAndroid Build Coastguard Worker * 2313*0e209d39SAndroid Build Coastguard Worker * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. 2314*0e209d39SAndroid Build Coastguard Worker */ 2315*0e209d39SAndroid Build Coastguard Worker U_GCB_COUNT = 18 2316*0e209d39SAndroid Build Coastguard Worker #endif // U_HIDE_DEPRECATED_API 2317*0e209d39SAndroid Build Coastguard Worker } UGraphemeClusterBreak; 2318*0e209d39SAndroid Build Coastguard Worker 2319*0e209d39SAndroid Build Coastguard Worker /** 2320*0e209d39SAndroid Build Coastguard Worker * Word Break constants. 2321*0e209d39SAndroid Build Coastguard Worker * (UWordBreak is a pre-existing enum type in ubrk.h for word break status tags.) 2322*0e209d39SAndroid Build Coastguard Worker * 2323*0e209d39SAndroid Build Coastguard Worker * @see UCHAR_WORD_BREAK 2324*0e209d39SAndroid Build Coastguard Worker * @stable ICU 3.4 2325*0e209d39SAndroid Build Coastguard Worker */ 2326*0e209d39SAndroid Build Coastguard Worker typedef enum UWordBreakValues { 2327*0e209d39SAndroid Build Coastguard Worker /* 2328*0e209d39SAndroid Build Coastguard Worker * Note: UWordBreakValues constants are parsed by preparseucd.py. 2329*0e209d39SAndroid Build Coastguard Worker * It matches lines like 2330*0e209d39SAndroid Build Coastguard Worker * U_WB_<Unicode Word_Break value name> 2331*0e209d39SAndroid Build Coastguard Worker */ 2332*0e209d39SAndroid Build Coastguard Worker 2333*0e209d39SAndroid Build Coastguard Worker U_WB_OTHER = 0, /*[XX]*/ 2334*0e209d39SAndroid Build Coastguard Worker U_WB_ALETTER = 1, /*[LE]*/ 2335*0e209d39SAndroid Build Coastguard Worker U_WB_FORMAT = 2, /*[FO]*/ 2336*0e209d39SAndroid Build Coastguard Worker U_WB_KATAKANA = 3, /*[KA]*/ 2337*0e209d39SAndroid Build Coastguard Worker U_WB_MIDLETTER = 4, /*[ML]*/ 2338*0e209d39SAndroid Build Coastguard Worker U_WB_MIDNUM = 5, /*[MN]*/ 2339*0e209d39SAndroid Build Coastguard Worker U_WB_NUMERIC = 6, /*[NU]*/ 2340*0e209d39SAndroid Build Coastguard Worker U_WB_EXTENDNUMLET = 7, /*[EX]*/ 2341*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.0 */ 2342*0e209d39SAndroid Build Coastguard Worker U_WB_CR = 8, /*[CR]*/ /* from here on: new in Unicode 5.1/ICU 4.0 */ 2343*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.0 */ 2344*0e209d39SAndroid Build Coastguard Worker U_WB_EXTEND = 9, /*[Extend]*/ 2345*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.0 */ 2346*0e209d39SAndroid Build Coastguard Worker U_WB_LF = 10, /*[LF]*/ 2347*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.0 */ 2348*0e209d39SAndroid Build Coastguard Worker U_WB_MIDNUMLET =11, /*[MB]*/ 2349*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.0 */ 2350*0e209d39SAndroid Build Coastguard Worker U_WB_NEWLINE =12, /*[NL]*/ 2351*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 50 */ 2352*0e209d39SAndroid Build Coastguard Worker U_WB_REGIONAL_INDICATOR = 13, /*[RI]*/ /* new in Unicode 6.2/ICU 50 */ 2353*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 52 */ 2354*0e209d39SAndroid Build Coastguard Worker U_WB_HEBREW_LETTER = 14, /*[HL]*/ /* from here on: new in Unicode 6.3/ICU 52 */ 2355*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 52 */ 2356*0e209d39SAndroid Build Coastguard Worker U_WB_SINGLE_QUOTE = 15, /*[SQ]*/ 2357*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 52 */ 2358*0e209d39SAndroid Build Coastguard Worker U_WB_DOUBLE_QUOTE = 16, /*[DQ]*/ 2359*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 58 */ 2360*0e209d39SAndroid Build Coastguard Worker U_WB_E_BASE = 17, /*[EB]*/ /* from here on: new in Unicode 9.0/ICU 58 */ 2361*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 58 */ 2362*0e209d39SAndroid Build Coastguard Worker U_WB_E_BASE_GAZ = 18, /*[EBG]*/ 2363*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 58 */ 2364*0e209d39SAndroid Build Coastguard Worker U_WB_E_MODIFIER = 19, /*[EM]*/ 2365*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 58 */ 2366*0e209d39SAndroid Build Coastguard Worker U_WB_GLUE_AFTER_ZWJ = 20, /*[GAZ]*/ 2367*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 58 */ 2368*0e209d39SAndroid Build Coastguard Worker U_WB_ZWJ = 21, /*[ZWJ]*/ 2369*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 62 */ 2370*0e209d39SAndroid Build Coastguard Worker U_WB_WSEGSPACE = 22, /*[WSEGSPACE]*/ 2371*0e209d39SAndroid Build Coastguard Worker 2372*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_DEPRECATED_API 2373*0e209d39SAndroid Build Coastguard Worker /** 2374*0e209d39SAndroid Build Coastguard Worker * One more than the highest normal UWordBreakValues value. 2375*0e209d39SAndroid Build Coastguard Worker * The highest value is available via u_getIntPropertyMaxValue(UCHAR_WORD_BREAK). 2376*0e209d39SAndroid Build Coastguard Worker * 2377*0e209d39SAndroid Build Coastguard Worker * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. 2378*0e209d39SAndroid Build Coastguard Worker */ 2379*0e209d39SAndroid Build Coastguard Worker U_WB_COUNT = 23 2380*0e209d39SAndroid Build Coastguard Worker #endif // U_HIDE_DEPRECATED_API 2381*0e209d39SAndroid Build Coastguard Worker } UWordBreakValues; 2382*0e209d39SAndroid Build Coastguard Worker 2383*0e209d39SAndroid Build Coastguard Worker /** 2384*0e209d39SAndroid Build Coastguard Worker * Sentence Break constants. 2385*0e209d39SAndroid Build Coastguard Worker * 2386*0e209d39SAndroid Build Coastguard Worker * @see UCHAR_SENTENCE_BREAK 2387*0e209d39SAndroid Build Coastguard Worker * @stable ICU 3.4 2388*0e209d39SAndroid Build Coastguard Worker */ 2389*0e209d39SAndroid Build Coastguard Worker typedef enum USentenceBreak { 2390*0e209d39SAndroid Build Coastguard Worker /* 2391*0e209d39SAndroid Build Coastguard Worker * Note: USentenceBreak constants are parsed by preparseucd.py. 2392*0e209d39SAndroid Build Coastguard Worker * It matches lines like 2393*0e209d39SAndroid Build Coastguard Worker * U_SB_<Unicode Sentence_Break value name> 2394*0e209d39SAndroid Build Coastguard Worker */ 2395*0e209d39SAndroid Build Coastguard Worker 2396*0e209d39SAndroid Build Coastguard Worker U_SB_OTHER = 0, /*[XX]*/ 2397*0e209d39SAndroid Build Coastguard Worker U_SB_ATERM = 1, /*[AT]*/ 2398*0e209d39SAndroid Build Coastguard Worker U_SB_CLOSE = 2, /*[CL]*/ 2399*0e209d39SAndroid Build Coastguard Worker U_SB_FORMAT = 3, /*[FO]*/ 2400*0e209d39SAndroid Build Coastguard Worker U_SB_LOWER = 4, /*[LO]*/ 2401*0e209d39SAndroid Build Coastguard Worker U_SB_NUMERIC = 5, /*[NU]*/ 2402*0e209d39SAndroid Build Coastguard Worker U_SB_OLETTER = 6, /*[LE]*/ 2403*0e209d39SAndroid Build Coastguard Worker U_SB_SEP = 7, /*[SE]*/ 2404*0e209d39SAndroid Build Coastguard Worker U_SB_SP = 8, /*[SP]*/ 2405*0e209d39SAndroid Build Coastguard Worker U_SB_STERM = 9, /*[ST]*/ 2406*0e209d39SAndroid Build Coastguard Worker U_SB_UPPER = 10, /*[UP]*/ 2407*0e209d39SAndroid Build Coastguard Worker U_SB_CR = 11, /*[CR]*/ /* from here on: new in Unicode 5.1/ICU 4.0 */ 2408*0e209d39SAndroid Build Coastguard Worker U_SB_EXTEND = 12, /*[EX]*/ 2409*0e209d39SAndroid Build Coastguard Worker U_SB_LF = 13, /*[LF]*/ 2410*0e209d39SAndroid Build Coastguard Worker U_SB_SCONTINUE = 14, /*[SC]*/ 2411*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_DEPRECATED_API 2412*0e209d39SAndroid Build Coastguard Worker /** 2413*0e209d39SAndroid Build Coastguard Worker * One more than the highest normal USentenceBreak value. 2414*0e209d39SAndroid Build Coastguard Worker * The highest value is available via u_getIntPropertyMaxValue(UCHAR_SENTENCE_BREAK). 2415*0e209d39SAndroid Build Coastguard Worker * 2416*0e209d39SAndroid Build Coastguard Worker * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. 2417*0e209d39SAndroid Build Coastguard Worker */ 2418*0e209d39SAndroid Build Coastguard Worker U_SB_COUNT = 15 2419*0e209d39SAndroid Build Coastguard Worker #endif // U_HIDE_DEPRECATED_API 2420*0e209d39SAndroid Build Coastguard Worker } USentenceBreak; 2421*0e209d39SAndroid Build Coastguard Worker 2422*0e209d39SAndroid Build Coastguard Worker /** 2423*0e209d39SAndroid Build Coastguard Worker * Line Break constants. 2424*0e209d39SAndroid Build Coastguard Worker * 2425*0e209d39SAndroid Build Coastguard Worker * @see UCHAR_LINE_BREAK 2426*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.2 2427*0e209d39SAndroid Build Coastguard Worker */ 2428*0e209d39SAndroid Build Coastguard Worker typedef enum ULineBreak { 2429*0e209d39SAndroid Build Coastguard Worker /* 2430*0e209d39SAndroid Build Coastguard Worker * Note: ULineBreak constants are parsed by preparseucd.py. 2431*0e209d39SAndroid Build Coastguard Worker * It matches lines like 2432*0e209d39SAndroid Build Coastguard Worker * U_LB_<Unicode Line_Break value name> 2433*0e209d39SAndroid Build Coastguard Worker */ 2434*0e209d39SAndroid Build Coastguard Worker 2435*0e209d39SAndroid Build Coastguard Worker U_LB_UNKNOWN = 0, /*[XX]*/ 2436*0e209d39SAndroid Build Coastguard Worker U_LB_AMBIGUOUS = 1, /*[AI]*/ 2437*0e209d39SAndroid Build Coastguard Worker U_LB_ALPHABETIC = 2, /*[AL]*/ 2438*0e209d39SAndroid Build Coastguard Worker U_LB_BREAK_BOTH = 3, /*[B2]*/ 2439*0e209d39SAndroid Build Coastguard Worker U_LB_BREAK_AFTER = 4, /*[BA]*/ 2440*0e209d39SAndroid Build Coastguard Worker U_LB_BREAK_BEFORE = 5, /*[BB]*/ 2441*0e209d39SAndroid Build Coastguard Worker U_LB_MANDATORY_BREAK = 6, /*[BK]*/ 2442*0e209d39SAndroid Build Coastguard Worker U_LB_CONTINGENT_BREAK = 7, /*[CB]*/ 2443*0e209d39SAndroid Build Coastguard Worker U_LB_CLOSE_PUNCTUATION = 8, /*[CL]*/ 2444*0e209d39SAndroid Build Coastguard Worker U_LB_COMBINING_MARK = 9, /*[CM]*/ 2445*0e209d39SAndroid Build Coastguard Worker U_LB_CARRIAGE_RETURN = 10, /*[CR]*/ 2446*0e209d39SAndroid Build Coastguard Worker U_LB_EXCLAMATION = 11, /*[EX]*/ 2447*0e209d39SAndroid Build Coastguard Worker U_LB_GLUE = 12, /*[GL]*/ 2448*0e209d39SAndroid Build Coastguard Worker U_LB_HYPHEN = 13, /*[HY]*/ 2449*0e209d39SAndroid Build Coastguard Worker U_LB_IDEOGRAPHIC = 14, /*[ID]*/ 2450*0e209d39SAndroid Build Coastguard Worker /** Renamed from the misspelled "inseperable" in Unicode 4.0.1/ICU 3.0 @stable ICU 3.0 */ 2451*0e209d39SAndroid Build Coastguard Worker U_LB_INSEPARABLE = 15, /*[IN]*/ 2452*0e209d39SAndroid Build Coastguard Worker U_LB_INSEPERABLE = U_LB_INSEPARABLE, 2453*0e209d39SAndroid Build Coastguard Worker U_LB_INFIX_NUMERIC = 16, /*[IS]*/ 2454*0e209d39SAndroid Build Coastguard Worker U_LB_LINE_FEED = 17, /*[LF]*/ 2455*0e209d39SAndroid Build Coastguard Worker U_LB_NONSTARTER = 18, /*[NS]*/ 2456*0e209d39SAndroid Build Coastguard Worker U_LB_NUMERIC = 19, /*[NU]*/ 2457*0e209d39SAndroid Build Coastguard Worker U_LB_OPEN_PUNCTUATION = 20, /*[OP]*/ 2458*0e209d39SAndroid Build Coastguard Worker U_LB_POSTFIX_NUMERIC = 21, /*[PO]*/ 2459*0e209d39SAndroid Build Coastguard Worker U_LB_PREFIX_NUMERIC = 22, /*[PR]*/ 2460*0e209d39SAndroid Build Coastguard Worker U_LB_QUOTATION = 23, /*[QU]*/ 2461*0e209d39SAndroid Build Coastguard Worker U_LB_COMPLEX_CONTEXT = 24, /*[SA]*/ 2462*0e209d39SAndroid Build Coastguard Worker U_LB_SURROGATE = 25, /*[SG]*/ 2463*0e209d39SAndroid Build Coastguard Worker U_LB_SPACE = 26, /*[SP]*/ 2464*0e209d39SAndroid Build Coastguard Worker U_LB_BREAK_SYMBOLS = 27, /*[SY]*/ 2465*0e209d39SAndroid Build Coastguard Worker U_LB_ZWSPACE = 28, /*[ZW]*/ 2466*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.6 */ 2467*0e209d39SAndroid Build Coastguard Worker U_LB_NEXT_LINE = 29, /*[NL]*/ /* from here on: new in Unicode 4/ICU 2.6 */ 2468*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 2.6 */ 2469*0e209d39SAndroid Build Coastguard Worker U_LB_WORD_JOINER = 30, /*[WJ]*/ 2470*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 3.4 */ 2471*0e209d39SAndroid Build Coastguard Worker U_LB_H2 = 31, /*[H2]*/ /* from here on: new in Unicode 4.1/ICU 3.4 */ 2472*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 3.4 */ 2473*0e209d39SAndroid Build Coastguard Worker U_LB_H3 = 32, /*[H3]*/ 2474*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 3.4 */ 2475*0e209d39SAndroid Build Coastguard Worker U_LB_JL = 33, /*[JL]*/ 2476*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 3.4 */ 2477*0e209d39SAndroid Build Coastguard Worker U_LB_JT = 34, /*[JT]*/ 2478*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 3.4 */ 2479*0e209d39SAndroid Build Coastguard Worker U_LB_JV = 35, /*[JV]*/ 2480*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 4.4 */ 2481*0e209d39SAndroid Build Coastguard Worker U_LB_CLOSE_PARENTHESIS = 36, /*[CP]*/ /* new in Unicode 5.2/ICU 4.4 */ 2482*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 49 */ 2483*0e209d39SAndroid Build Coastguard Worker U_LB_CONDITIONAL_JAPANESE_STARTER = 37,/*[CJ]*/ /* new in Unicode 6.1/ICU 49 */ 2484*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 49 */ 2485*0e209d39SAndroid Build Coastguard Worker U_LB_HEBREW_LETTER = 38, /*[HL]*/ /* new in Unicode 6.1/ICU 49 */ 2486*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 50 */ 2487*0e209d39SAndroid Build Coastguard Worker U_LB_REGIONAL_INDICATOR = 39,/*[RI]*/ /* new in Unicode 6.2/ICU 50 */ 2488*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 58 */ 2489*0e209d39SAndroid Build Coastguard Worker U_LB_E_BASE = 40, /*[EB]*/ /* from here on: new in Unicode 9.0/ICU 58 */ 2490*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 58 */ 2491*0e209d39SAndroid Build Coastguard Worker U_LB_E_MODIFIER = 41, /*[EM]*/ 2492*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 58 */ 2493*0e209d39SAndroid Build Coastguard Worker U_LB_ZWJ = 42, /*[ZWJ]*/ 2494*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 74 */ 2495*0e209d39SAndroid Build Coastguard Worker U_LB_AKSARA = 43, /*[AK]*/ 2496*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 74 */ 2497*0e209d39SAndroid Build Coastguard Worker U_LB_AKSARA_PREBASE = 44, /*[AP]*/ 2498*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 74 */ 2499*0e209d39SAndroid Build Coastguard Worker U_LB_AKSARA_START = 45, /*[AS]*/ 2500*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 74 */ 2501*0e209d39SAndroid Build Coastguard Worker U_LB_VIRAMA_FINAL = 46, /*[VF]*/ 2502*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 74 */ 2503*0e209d39SAndroid Build Coastguard Worker U_LB_VIRAMA = 47, /*[VI]*/ 2504*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_DEPRECATED_API 2505*0e209d39SAndroid Build Coastguard Worker /** 2506*0e209d39SAndroid Build Coastguard Worker * One more than the highest normal ULineBreak value. 2507*0e209d39SAndroid Build Coastguard Worker * The highest value is available via u_getIntPropertyMaxValue(UCHAR_LINE_BREAK). 2508*0e209d39SAndroid Build Coastguard Worker * 2509*0e209d39SAndroid Build Coastguard Worker * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. 2510*0e209d39SAndroid Build Coastguard Worker */ 2511*0e209d39SAndroid Build Coastguard Worker U_LB_COUNT = 48 2512*0e209d39SAndroid Build Coastguard Worker #endif // U_HIDE_DEPRECATED_API 2513*0e209d39SAndroid Build Coastguard Worker } ULineBreak; 2514*0e209d39SAndroid Build Coastguard Worker 2515*0e209d39SAndroid Build Coastguard Worker /** 2516*0e209d39SAndroid Build Coastguard Worker * Numeric Type constants. 2517*0e209d39SAndroid Build Coastguard Worker * 2518*0e209d39SAndroid Build Coastguard Worker * @see UCHAR_NUMERIC_TYPE 2519*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.2 2520*0e209d39SAndroid Build Coastguard Worker */ 2521*0e209d39SAndroid Build Coastguard Worker typedef enum UNumericType { 2522*0e209d39SAndroid Build Coastguard Worker /* 2523*0e209d39SAndroid Build Coastguard Worker * Note: UNumericType constants are parsed by preparseucd.py. 2524*0e209d39SAndroid Build Coastguard Worker * It matches lines like 2525*0e209d39SAndroid Build Coastguard Worker * U_NT_<Unicode Numeric_Type value name> 2526*0e209d39SAndroid Build Coastguard Worker */ 2527*0e209d39SAndroid Build Coastguard Worker 2528*0e209d39SAndroid Build Coastguard Worker U_NT_NONE, /*[None]*/ 2529*0e209d39SAndroid Build Coastguard Worker U_NT_DECIMAL, /*[de]*/ 2530*0e209d39SAndroid Build Coastguard Worker U_NT_DIGIT, /*[di]*/ 2531*0e209d39SAndroid Build Coastguard Worker U_NT_NUMERIC, /*[nu]*/ 2532*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_DEPRECATED_API 2533*0e209d39SAndroid Build Coastguard Worker /** 2534*0e209d39SAndroid Build Coastguard Worker * One more than the highest normal UNumericType value. 2535*0e209d39SAndroid Build Coastguard Worker * The highest value is available via u_getIntPropertyMaxValue(UCHAR_NUMERIC_TYPE). 2536*0e209d39SAndroid Build Coastguard Worker * 2537*0e209d39SAndroid Build Coastguard Worker * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. 2538*0e209d39SAndroid Build Coastguard Worker */ 2539*0e209d39SAndroid Build Coastguard Worker U_NT_COUNT 2540*0e209d39SAndroid Build Coastguard Worker #endif // U_HIDE_DEPRECATED_API 2541*0e209d39SAndroid Build Coastguard Worker } UNumericType; 2542*0e209d39SAndroid Build Coastguard Worker 2543*0e209d39SAndroid Build Coastguard Worker /** 2544*0e209d39SAndroid Build Coastguard Worker * Hangul Syllable Type constants. 2545*0e209d39SAndroid Build Coastguard Worker * 2546*0e209d39SAndroid Build Coastguard Worker * @see UCHAR_HANGUL_SYLLABLE_TYPE 2547*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.6 2548*0e209d39SAndroid Build Coastguard Worker */ 2549*0e209d39SAndroid Build Coastguard Worker typedef enum UHangulSyllableType { 2550*0e209d39SAndroid Build Coastguard Worker /* 2551*0e209d39SAndroid Build Coastguard Worker * Note: UHangulSyllableType constants are parsed by preparseucd.py. 2552*0e209d39SAndroid Build Coastguard Worker * It matches lines like 2553*0e209d39SAndroid Build Coastguard Worker * U_HST_<Unicode Hangul_Syllable_Type value name> 2554*0e209d39SAndroid Build Coastguard Worker */ 2555*0e209d39SAndroid Build Coastguard Worker 2556*0e209d39SAndroid Build Coastguard Worker U_HST_NOT_APPLICABLE, /*[NA]*/ 2557*0e209d39SAndroid Build Coastguard Worker U_HST_LEADING_JAMO, /*[L]*/ 2558*0e209d39SAndroid Build Coastguard Worker U_HST_VOWEL_JAMO, /*[V]*/ 2559*0e209d39SAndroid Build Coastguard Worker U_HST_TRAILING_JAMO, /*[T]*/ 2560*0e209d39SAndroid Build Coastguard Worker U_HST_LV_SYLLABLE, /*[LV]*/ 2561*0e209d39SAndroid Build Coastguard Worker U_HST_LVT_SYLLABLE, /*[LVT]*/ 2562*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_DEPRECATED_API 2563*0e209d39SAndroid Build Coastguard Worker /** 2564*0e209d39SAndroid Build Coastguard Worker * One more than the highest normal UHangulSyllableType value. 2565*0e209d39SAndroid Build Coastguard Worker * The highest value is available via u_getIntPropertyMaxValue(UCHAR_HANGUL_SYLLABLE_TYPE). 2566*0e209d39SAndroid Build Coastguard Worker * 2567*0e209d39SAndroid Build Coastguard Worker * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. 2568*0e209d39SAndroid Build Coastguard Worker */ 2569*0e209d39SAndroid Build Coastguard Worker U_HST_COUNT 2570*0e209d39SAndroid Build Coastguard Worker #endif // U_HIDE_DEPRECATED_API 2571*0e209d39SAndroid Build Coastguard Worker } UHangulSyllableType; 2572*0e209d39SAndroid Build Coastguard Worker 2573*0e209d39SAndroid Build Coastguard Worker /** 2574*0e209d39SAndroid Build Coastguard Worker * Indic Positional Category constants. 2575*0e209d39SAndroid Build Coastguard Worker * 2576*0e209d39SAndroid Build Coastguard Worker * @see UCHAR_INDIC_POSITIONAL_CATEGORY 2577*0e209d39SAndroid Build Coastguard Worker * @stable ICU 63 2578*0e209d39SAndroid Build Coastguard Worker */ 2579*0e209d39SAndroid Build Coastguard Worker typedef enum UIndicPositionalCategory { 2580*0e209d39SAndroid Build Coastguard Worker /* 2581*0e209d39SAndroid Build Coastguard Worker * Note: UIndicPositionalCategory constants are parsed by preparseucd.py. 2582*0e209d39SAndroid Build Coastguard Worker * It matches lines like 2583*0e209d39SAndroid Build Coastguard Worker * U_INPC_<Unicode Indic_Positional_Category value name> 2584*0e209d39SAndroid Build Coastguard Worker */ 2585*0e209d39SAndroid Build Coastguard Worker 2586*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2587*0e209d39SAndroid Build Coastguard Worker U_INPC_NA, 2588*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2589*0e209d39SAndroid Build Coastguard Worker U_INPC_BOTTOM, 2590*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2591*0e209d39SAndroid Build Coastguard Worker U_INPC_BOTTOM_AND_LEFT, 2592*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2593*0e209d39SAndroid Build Coastguard Worker U_INPC_BOTTOM_AND_RIGHT, 2594*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2595*0e209d39SAndroid Build Coastguard Worker U_INPC_LEFT, 2596*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2597*0e209d39SAndroid Build Coastguard Worker U_INPC_LEFT_AND_RIGHT, 2598*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2599*0e209d39SAndroid Build Coastguard Worker U_INPC_OVERSTRUCK, 2600*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2601*0e209d39SAndroid Build Coastguard Worker U_INPC_RIGHT, 2602*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2603*0e209d39SAndroid Build Coastguard Worker U_INPC_TOP, 2604*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2605*0e209d39SAndroid Build Coastguard Worker U_INPC_TOP_AND_BOTTOM, 2606*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2607*0e209d39SAndroid Build Coastguard Worker U_INPC_TOP_AND_BOTTOM_AND_RIGHT, 2608*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2609*0e209d39SAndroid Build Coastguard Worker U_INPC_TOP_AND_LEFT, 2610*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2611*0e209d39SAndroid Build Coastguard Worker U_INPC_TOP_AND_LEFT_AND_RIGHT, 2612*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2613*0e209d39SAndroid Build Coastguard Worker U_INPC_TOP_AND_RIGHT, 2614*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2615*0e209d39SAndroid Build Coastguard Worker U_INPC_VISUAL_ORDER_LEFT, 2616*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 66 */ 2617*0e209d39SAndroid Build Coastguard Worker U_INPC_TOP_AND_BOTTOM_AND_LEFT, 2618*0e209d39SAndroid Build Coastguard Worker } UIndicPositionalCategory; 2619*0e209d39SAndroid Build Coastguard Worker 2620*0e209d39SAndroid Build Coastguard Worker /** 2621*0e209d39SAndroid Build Coastguard Worker * Indic Syllabic Category constants. 2622*0e209d39SAndroid Build Coastguard Worker * 2623*0e209d39SAndroid Build Coastguard Worker * @see UCHAR_INDIC_SYLLABIC_CATEGORY 2624*0e209d39SAndroid Build Coastguard Worker * @stable ICU 63 2625*0e209d39SAndroid Build Coastguard Worker */ 2626*0e209d39SAndroid Build Coastguard Worker typedef enum UIndicSyllabicCategory { 2627*0e209d39SAndroid Build Coastguard Worker /* 2628*0e209d39SAndroid Build Coastguard Worker * Note: UIndicSyllabicCategory constants are parsed by preparseucd.py. 2629*0e209d39SAndroid Build Coastguard Worker * It matches lines like 2630*0e209d39SAndroid Build Coastguard Worker * U_INSC_<Unicode Indic_Syllabic_Category value name> 2631*0e209d39SAndroid Build Coastguard Worker */ 2632*0e209d39SAndroid Build Coastguard Worker 2633*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2634*0e209d39SAndroid Build Coastguard Worker U_INSC_OTHER, 2635*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2636*0e209d39SAndroid Build Coastguard Worker U_INSC_AVAGRAHA, 2637*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2638*0e209d39SAndroid Build Coastguard Worker U_INSC_BINDU, 2639*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2640*0e209d39SAndroid Build Coastguard Worker U_INSC_BRAHMI_JOINING_NUMBER, 2641*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2642*0e209d39SAndroid Build Coastguard Worker U_INSC_CANTILLATION_MARK, 2643*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2644*0e209d39SAndroid Build Coastguard Worker U_INSC_CONSONANT, 2645*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2646*0e209d39SAndroid Build Coastguard Worker U_INSC_CONSONANT_DEAD, 2647*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2648*0e209d39SAndroid Build Coastguard Worker U_INSC_CONSONANT_FINAL, 2649*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2650*0e209d39SAndroid Build Coastguard Worker U_INSC_CONSONANT_HEAD_LETTER, 2651*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2652*0e209d39SAndroid Build Coastguard Worker U_INSC_CONSONANT_INITIAL_POSTFIXED, 2653*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2654*0e209d39SAndroid Build Coastguard Worker U_INSC_CONSONANT_KILLER, 2655*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2656*0e209d39SAndroid Build Coastguard Worker U_INSC_CONSONANT_MEDIAL, 2657*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2658*0e209d39SAndroid Build Coastguard Worker U_INSC_CONSONANT_PLACEHOLDER, 2659*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2660*0e209d39SAndroid Build Coastguard Worker U_INSC_CONSONANT_PRECEDING_REPHA, 2661*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2662*0e209d39SAndroid Build Coastguard Worker U_INSC_CONSONANT_PREFIXED, 2663*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2664*0e209d39SAndroid Build Coastguard Worker U_INSC_CONSONANT_SUBJOINED, 2665*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2666*0e209d39SAndroid Build Coastguard Worker U_INSC_CONSONANT_SUCCEEDING_REPHA, 2667*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2668*0e209d39SAndroid Build Coastguard Worker U_INSC_CONSONANT_WITH_STACKER, 2669*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2670*0e209d39SAndroid Build Coastguard Worker U_INSC_GEMINATION_MARK, 2671*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2672*0e209d39SAndroid Build Coastguard Worker U_INSC_INVISIBLE_STACKER, 2673*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2674*0e209d39SAndroid Build Coastguard Worker U_INSC_JOINER, 2675*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2676*0e209d39SAndroid Build Coastguard Worker U_INSC_MODIFYING_LETTER, 2677*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2678*0e209d39SAndroid Build Coastguard Worker U_INSC_NON_JOINER, 2679*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2680*0e209d39SAndroid Build Coastguard Worker U_INSC_NUKTA, 2681*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2682*0e209d39SAndroid Build Coastguard Worker U_INSC_NUMBER, 2683*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2684*0e209d39SAndroid Build Coastguard Worker U_INSC_NUMBER_JOINER, 2685*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2686*0e209d39SAndroid Build Coastguard Worker U_INSC_PURE_KILLER, 2687*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2688*0e209d39SAndroid Build Coastguard Worker U_INSC_REGISTER_SHIFTER, 2689*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2690*0e209d39SAndroid Build Coastguard Worker U_INSC_SYLLABLE_MODIFIER, 2691*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2692*0e209d39SAndroid Build Coastguard Worker U_INSC_TONE_LETTER, 2693*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2694*0e209d39SAndroid Build Coastguard Worker U_INSC_TONE_MARK, 2695*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2696*0e209d39SAndroid Build Coastguard Worker U_INSC_VIRAMA, 2697*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2698*0e209d39SAndroid Build Coastguard Worker U_INSC_VISARGA, 2699*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2700*0e209d39SAndroid Build Coastguard Worker U_INSC_VOWEL, 2701*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2702*0e209d39SAndroid Build Coastguard Worker U_INSC_VOWEL_DEPENDENT, 2703*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2704*0e209d39SAndroid Build Coastguard Worker U_INSC_VOWEL_INDEPENDENT, 2705*0e209d39SAndroid Build Coastguard Worker } UIndicSyllabicCategory; 2706*0e209d39SAndroid Build Coastguard Worker 2707*0e209d39SAndroid Build Coastguard Worker /** 2708*0e209d39SAndroid Build Coastguard Worker * Vertical Orientation constants. 2709*0e209d39SAndroid Build Coastguard Worker * 2710*0e209d39SAndroid Build Coastguard Worker * @see UCHAR_VERTICAL_ORIENTATION 2711*0e209d39SAndroid Build Coastguard Worker * @stable ICU 63 2712*0e209d39SAndroid Build Coastguard Worker */ 2713*0e209d39SAndroid Build Coastguard Worker typedef enum UVerticalOrientation { 2714*0e209d39SAndroid Build Coastguard Worker /* 2715*0e209d39SAndroid Build Coastguard Worker * Note: UVerticalOrientation constants are parsed by preparseucd.py. 2716*0e209d39SAndroid Build Coastguard Worker * It matches lines like 2717*0e209d39SAndroid Build Coastguard Worker * U_VO_<Unicode Vertical_Orientation value name> 2718*0e209d39SAndroid Build Coastguard Worker */ 2719*0e209d39SAndroid Build Coastguard Worker 2720*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2721*0e209d39SAndroid Build Coastguard Worker U_VO_ROTATED, 2722*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2723*0e209d39SAndroid Build Coastguard Worker U_VO_TRANSFORMED_ROTATED, 2724*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2725*0e209d39SAndroid Build Coastguard Worker U_VO_TRANSFORMED_UPRIGHT, 2726*0e209d39SAndroid Build Coastguard Worker /** @stable ICU 63 */ 2727*0e209d39SAndroid Build Coastguard Worker U_VO_UPRIGHT, 2728*0e209d39SAndroid Build Coastguard Worker } UVerticalOrientation; 2729*0e209d39SAndroid Build Coastguard Worker 2730*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_DRAFT_API 2731*0e209d39SAndroid Build Coastguard Worker /** 2732*0e209d39SAndroid Build Coastguard Worker * Identifier Status constants. 2733*0e209d39SAndroid Build Coastguard Worker * See https://www.unicode.org/reports/tr39/#Identifier_Status_and_Type. 2734*0e209d39SAndroid Build Coastguard Worker * 2735*0e209d39SAndroid Build Coastguard Worker * @see UCHAR_IDENTIFIER_STATUS 2736*0e209d39SAndroid Build Coastguard Worker * @draft ICU 75 2737*0e209d39SAndroid Build Coastguard Worker */ 2738*0e209d39SAndroid Build Coastguard Worker typedef enum UIdentifierStatus { 2739*0e209d39SAndroid Build Coastguard Worker /* 2740*0e209d39SAndroid Build Coastguard Worker * Note: UIdentifierStatus constants are parsed by preparseucd.py. 2741*0e209d39SAndroid Build Coastguard Worker * It matches lines like 2742*0e209d39SAndroid Build Coastguard Worker * U_ID_STATUS_<Unicode Identifier_Status value name> 2743*0e209d39SAndroid Build Coastguard Worker */ 2744*0e209d39SAndroid Build Coastguard Worker 2745*0e209d39SAndroid Build Coastguard Worker /** @draft ICU 75 */ 2746*0e209d39SAndroid Build Coastguard Worker U_ID_STATUS_RESTRICTED, 2747*0e209d39SAndroid Build Coastguard Worker /** @draft ICU 75 */ 2748*0e209d39SAndroid Build Coastguard Worker U_ID_STATUS_ALLOWED, 2749*0e209d39SAndroid Build Coastguard Worker } UIdentifierStatus; 2750*0e209d39SAndroid Build Coastguard Worker 2751*0e209d39SAndroid Build Coastguard Worker /** 2752*0e209d39SAndroid Build Coastguard Worker * Identifier Type constants. 2753*0e209d39SAndroid Build Coastguard Worker * See https://www.unicode.org/reports/tr39/#Identifier_Status_and_Type. 2754*0e209d39SAndroid Build Coastguard Worker * 2755*0e209d39SAndroid Build Coastguard Worker * @see UCHAR_IDENTIFIER_TYPE 2756*0e209d39SAndroid Build Coastguard Worker * @draft ICU 75 2757*0e209d39SAndroid Build Coastguard Worker */ 2758*0e209d39SAndroid Build Coastguard Worker typedef enum UIdentifierType { 2759*0e209d39SAndroid Build Coastguard Worker /* 2760*0e209d39SAndroid Build Coastguard Worker * Note: UIdentifierType constants are parsed by preparseucd.py. 2761*0e209d39SAndroid Build Coastguard Worker * It matches lines like 2762*0e209d39SAndroid Build Coastguard Worker * U_ID_TYPE_<Unicode Identifier_Type value name> 2763*0e209d39SAndroid Build Coastguard Worker */ 2764*0e209d39SAndroid Build Coastguard Worker 2765*0e209d39SAndroid Build Coastguard Worker /** @draft ICU 75 */ 2766*0e209d39SAndroid Build Coastguard Worker U_ID_TYPE_NOT_CHARACTER, 2767*0e209d39SAndroid Build Coastguard Worker /** @draft ICU 75 */ 2768*0e209d39SAndroid Build Coastguard Worker U_ID_TYPE_DEPRECATED, 2769*0e209d39SAndroid Build Coastguard Worker /** @draft ICU 75 */ 2770*0e209d39SAndroid Build Coastguard Worker U_ID_TYPE_DEFAULT_IGNORABLE, 2771*0e209d39SAndroid Build Coastguard Worker /** @draft ICU 75 */ 2772*0e209d39SAndroid Build Coastguard Worker U_ID_TYPE_NOT_NFKC, 2773*0e209d39SAndroid Build Coastguard Worker /** @draft ICU 75 */ 2774*0e209d39SAndroid Build Coastguard Worker U_ID_TYPE_NOT_XID, 2775*0e209d39SAndroid Build Coastguard Worker /** @draft ICU 75 */ 2776*0e209d39SAndroid Build Coastguard Worker U_ID_TYPE_EXCLUSION, 2777*0e209d39SAndroid Build Coastguard Worker /** @draft ICU 75 */ 2778*0e209d39SAndroid Build Coastguard Worker U_ID_TYPE_OBSOLETE, 2779*0e209d39SAndroid Build Coastguard Worker /** @draft ICU 75 */ 2780*0e209d39SAndroid Build Coastguard Worker U_ID_TYPE_TECHNICAL, 2781*0e209d39SAndroid Build Coastguard Worker /** @draft ICU 75 */ 2782*0e209d39SAndroid Build Coastguard Worker U_ID_TYPE_UNCOMMON_USE, 2783*0e209d39SAndroid Build Coastguard Worker /** @draft ICU 75 */ 2784*0e209d39SAndroid Build Coastguard Worker U_ID_TYPE_LIMITED_USE, 2785*0e209d39SAndroid Build Coastguard Worker /** @draft ICU 75 */ 2786*0e209d39SAndroid Build Coastguard Worker U_ID_TYPE_INCLUSION, 2787*0e209d39SAndroid Build Coastguard Worker /** @draft ICU 75 */ 2788*0e209d39SAndroid Build Coastguard Worker U_ID_TYPE_RECOMMENDED, 2789*0e209d39SAndroid Build Coastguard Worker } UIdentifierType; 2790*0e209d39SAndroid Build Coastguard Worker #endif // U_HIDE_DRAFT_API 2791*0e209d39SAndroid Build Coastguard Worker 2792*0e209d39SAndroid Build Coastguard Worker /** 2793*0e209d39SAndroid Build Coastguard Worker * Check a binary Unicode property for a code point. 2794*0e209d39SAndroid Build Coastguard Worker * 2795*0e209d39SAndroid Build Coastguard Worker * Unicode, especially in version 3.2, defines many more properties than the 2796*0e209d39SAndroid Build Coastguard Worker * original set in UnicodeData.txt. 2797*0e209d39SAndroid Build Coastguard Worker * 2798*0e209d39SAndroid Build Coastguard Worker * The properties APIs are intended to reflect Unicode properties as defined 2799*0e209d39SAndroid Build Coastguard Worker * in the Unicode Character Database (UCD) and Unicode Technical Reports (UTR). 2800*0e209d39SAndroid Build Coastguard Worker * For details about the properties see http://www.unicode.org/ucd/ . 2801*0e209d39SAndroid Build Coastguard Worker * For names of Unicode properties see the UCD file PropertyAliases.txt. 2802*0e209d39SAndroid Build Coastguard Worker * 2803*0e209d39SAndroid Build Coastguard Worker * Important: If ICU is built with UCD files from Unicode versions below 3.2, 2804*0e209d39SAndroid Build Coastguard Worker * then properties marked with "new in Unicode 3.2" are not or not fully available. 2805*0e209d39SAndroid Build Coastguard Worker * 2806*0e209d39SAndroid Build Coastguard Worker * @param c Code point to test. 2807*0e209d39SAndroid Build Coastguard Worker * @param which UProperty selector constant, identifies which binary property to check. 2808*0e209d39SAndroid Build Coastguard Worker * Must be UCHAR_BINARY_START<=which<UCHAR_BINARY_LIMIT. 2809*0e209d39SAndroid Build Coastguard Worker * @return true or false according to the binary Unicode property value for c. 2810*0e209d39SAndroid Build Coastguard Worker * Also false if 'which' is out of bounds or if the Unicode version 2811*0e209d39SAndroid Build Coastguard Worker * does not have data for the property at all. 2812*0e209d39SAndroid Build Coastguard Worker * 2813*0e209d39SAndroid Build Coastguard Worker * @see UProperty 2814*0e209d39SAndroid Build Coastguard Worker * @see u_getBinaryPropertySet 2815*0e209d39SAndroid Build Coastguard Worker * @see u_getIntPropertyValue 2816*0e209d39SAndroid Build Coastguard Worker * @see u_getUnicodeVersion 2817*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.1 2818*0e209d39SAndroid Build Coastguard Worker */ 2819*0e209d39SAndroid Build Coastguard Worker U_CAPI UBool U_EXPORT2 2820*0e209d39SAndroid Build Coastguard Worker u_hasBinaryProperty(UChar32 c, UProperty which); 2821*0e209d39SAndroid Build Coastguard Worker 2822*0e209d39SAndroid Build Coastguard Worker /** 2823*0e209d39SAndroid Build Coastguard Worker * Returns true if the property is true for the string. 2824*0e209d39SAndroid Build Coastguard Worker * Same as u_hasBinaryProperty(single code point, which) 2825*0e209d39SAndroid Build Coastguard Worker * if the string contains exactly one code point. 2826*0e209d39SAndroid Build Coastguard Worker * 2827*0e209d39SAndroid Build Coastguard Worker * Most properties apply only to single code points. 2828*0e209d39SAndroid Build Coastguard Worker * <a href="https://www.unicode.org/reports/tr51/#Emoji_Sets">UTS #51 Unicode Emoji</a> 2829*0e209d39SAndroid Build Coastguard Worker * defines several properties of strings. 2830*0e209d39SAndroid Build Coastguard Worker * 2831*0e209d39SAndroid Build Coastguard Worker * @param s String to test. 2832*0e209d39SAndroid Build Coastguard Worker * @param length Length of the string, or negative if NUL-terminated. 2833*0e209d39SAndroid Build Coastguard Worker * @param which UProperty selector constant, identifies which binary property to check. 2834*0e209d39SAndroid Build Coastguard Worker * Must be UCHAR_BINARY_START<=which<UCHAR_BINARY_LIMIT. 2835*0e209d39SAndroid Build Coastguard Worker * @return true or false according to the binary Unicode property value for the string. 2836*0e209d39SAndroid Build Coastguard Worker * Also false if 'which' is out of bounds or if the Unicode version 2837*0e209d39SAndroid Build Coastguard Worker * does not have data for the property at all. 2838*0e209d39SAndroid Build Coastguard Worker * 2839*0e209d39SAndroid Build Coastguard Worker * @see UProperty 2840*0e209d39SAndroid Build Coastguard Worker * @see u_hasBinaryProperty 2841*0e209d39SAndroid Build Coastguard Worker * @see u_getBinaryPropertySet 2842*0e209d39SAndroid Build Coastguard Worker * @see u_getIntPropertyValue 2843*0e209d39SAndroid Build Coastguard Worker * @see u_getUnicodeVersion 2844*0e209d39SAndroid Build Coastguard Worker * @stable ICU 70 2845*0e209d39SAndroid Build Coastguard Worker */ 2846*0e209d39SAndroid Build Coastguard Worker U_CAPI UBool U_EXPORT2 2847*0e209d39SAndroid Build Coastguard Worker u_stringHasBinaryProperty(const UChar *s, int32_t length, UProperty which); 2848*0e209d39SAndroid Build Coastguard Worker 2849*0e209d39SAndroid Build Coastguard Worker /** 2850*0e209d39SAndroid Build Coastguard Worker * Returns a frozen USet for a binary property. 2851*0e209d39SAndroid Build Coastguard Worker * The library retains ownership over the returned object. 2852*0e209d39SAndroid Build Coastguard Worker * Sets an error code if the property number is not one for a binary property. 2853*0e209d39SAndroid Build Coastguard Worker * 2854*0e209d39SAndroid Build Coastguard Worker * The returned set contains all code points for which the property is true. 2855*0e209d39SAndroid Build Coastguard Worker * 2856*0e209d39SAndroid Build Coastguard Worker * @param property UCHAR_BINARY_START..UCHAR_BINARY_LIMIT-1 2857*0e209d39SAndroid Build Coastguard Worker * @param pErrorCode an in/out ICU UErrorCode 2858*0e209d39SAndroid Build Coastguard Worker * @return the property as a set 2859*0e209d39SAndroid Build Coastguard Worker * @see UProperty 2860*0e209d39SAndroid Build Coastguard Worker * @see u_hasBinaryProperty 2861*0e209d39SAndroid Build Coastguard Worker * @see Unicode::fromUSet 2862*0e209d39SAndroid Build Coastguard Worker * @stable ICU 63 2863*0e209d39SAndroid Build Coastguard Worker */ 2864*0e209d39SAndroid Build Coastguard Worker U_CAPI const USet * U_EXPORT2 2865*0e209d39SAndroid Build Coastguard Worker u_getBinaryPropertySet(UProperty property, UErrorCode *pErrorCode); 2866*0e209d39SAndroid Build Coastguard Worker 2867*0e209d39SAndroid Build Coastguard Worker /** 2868*0e209d39SAndroid Build Coastguard Worker * Check if a code point has the Alphabetic Unicode property. 2869*0e209d39SAndroid Build Coastguard Worker * Same as u_hasBinaryProperty(c, UCHAR_ALPHABETIC). 2870*0e209d39SAndroid Build Coastguard Worker * This is different from u_isalpha! 2871*0e209d39SAndroid Build Coastguard Worker * @param c Code point to test 2872*0e209d39SAndroid Build Coastguard Worker * @return true if the code point has the Alphabetic Unicode property, false otherwise 2873*0e209d39SAndroid Build Coastguard Worker * 2874*0e209d39SAndroid Build Coastguard Worker * @see UCHAR_ALPHABETIC 2875*0e209d39SAndroid Build Coastguard Worker * @see u_isalpha 2876*0e209d39SAndroid Build Coastguard Worker * @see u_hasBinaryProperty 2877*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.1 2878*0e209d39SAndroid Build Coastguard Worker */ 2879*0e209d39SAndroid Build Coastguard Worker U_CAPI UBool U_EXPORT2 2880*0e209d39SAndroid Build Coastguard Worker u_isUAlphabetic(UChar32 c); 2881*0e209d39SAndroid Build Coastguard Worker 2882*0e209d39SAndroid Build Coastguard Worker /** 2883*0e209d39SAndroid Build Coastguard Worker * Check if a code point has the Lowercase Unicode property. 2884*0e209d39SAndroid Build Coastguard Worker * Same as u_hasBinaryProperty(c, UCHAR_LOWERCASE). 2885*0e209d39SAndroid Build Coastguard Worker * This is different from u_islower! 2886*0e209d39SAndroid Build Coastguard Worker * @param c Code point to test 2887*0e209d39SAndroid Build Coastguard Worker * @return true if the code point has the Lowercase Unicode property, false otherwise 2888*0e209d39SAndroid Build Coastguard Worker * 2889*0e209d39SAndroid Build Coastguard Worker * @see UCHAR_LOWERCASE 2890*0e209d39SAndroid Build Coastguard Worker * @see u_islower 2891*0e209d39SAndroid Build Coastguard Worker * @see u_hasBinaryProperty 2892*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.1 2893*0e209d39SAndroid Build Coastguard Worker */ 2894*0e209d39SAndroid Build Coastguard Worker U_CAPI UBool U_EXPORT2 2895*0e209d39SAndroid Build Coastguard Worker u_isULowercase(UChar32 c); 2896*0e209d39SAndroid Build Coastguard Worker 2897*0e209d39SAndroid Build Coastguard Worker /** 2898*0e209d39SAndroid Build Coastguard Worker * Check if a code point has the Uppercase Unicode property. 2899*0e209d39SAndroid Build Coastguard Worker * Same as u_hasBinaryProperty(c, UCHAR_UPPERCASE). 2900*0e209d39SAndroid Build Coastguard Worker * This is different from u_isupper! 2901*0e209d39SAndroid Build Coastguard Worker * @param c Code point to test 2902*0e209d39SAndroid Build Coastguard Worker * @return true if the code point has the Uppercase Unicode property, false otherwise 2903*0e209d39SAndroid Build Coastguard Worker * 2904*0e209d39SAndroid Build Coastguard Worker * @see UCHAR_UPPERCASE 2905*0e209d39SAndroid Build Coastguard Worker * @see u_isupper 2906*0e209d39SAndroid Build Coastguard Worker * @see u_hasBinaryProperty 2907*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.1 2908*0e209d39SAndroid Build Coastguard Worker */ 2909*0e209d39SAndroid Build Coastguard Worker U_CAPI UBool U_EXPORT2 2910*0e209d39SAndroid Build Coastguard Worker u_isUUppercase(UChar32 c); 2911*0e209d39SAndroid Build Coastguard Worker 2912*0e209d39SAndroid Build Coastguard Worker /** 2913*0e209d39SAndroid Build Coastguard Worker * Check if a code point has the White_Space Unicode property. 2914*0e209d39SAndroid Build Coastguard Worker * Same as u_hasBinaryProperty(c, UCHAR_WHITE_SPACE). 2915*0e209d39SAndroid Build Coastguard Worker * This is different from both u_isspace and u_isWhitespace! 2916*0e209d39SAndroid Build Coastguard Worker * 2917*0e209d39SAndroid Build Coastguard Worker * Note: There are several ICU whitespace functions; please see the uchar.h 2918*0e209d39SAndroid Build Coastguard Worker * file documentation for a detailed comparison. 2919*0e209d39SAndroid Build Coastguard Worker * 2920*0e209d39SAndroid Build Coastguard Worker * @param c Code point to test 2921*0e209d39SAndroid Build Coastguard Worker * @return true if the code point has the White_Space Unicode property, false otherwise. 2922*0e209d39SAndroid Build Coastguard Worker * 2923*0e209d39SAndroid Build Coastguard Worker * @see UCHAR_WHITE_SPACE 2924*0e209d39SAndroid Build Coastguard Worker * @see u_isWhitespace 2925*0e209d39SAndroid Build Coastguard Worker * @see u_isspace 2926*0e209d39SAndroid Build Coastguard Worker * @see u_isJavaSpaceChar 2927*0e209d39SAndroid Build Coastguard Worker * @see u_hasBinaryProperty 2928*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.1 2929*0e209d39SAndroid Build Coastguard Worker */ 2930*0e209d39SAndroid Build Coastguard Worker U_CAPI UBool U_EXPORT2 2931*0e209d39SAndroid Build Coastguard Worker u_isUWhiteSpace(UChar32 c); 2932*0e209d39SAndroid Build Coastguard Worker 2933*0e209d39SAndroid Build Coastguard Worker /** 2934*0e209d39SAndroid Build Coastguard Worker * Get the property value for an enumerated or integer Unicode property for a code point. 2935*0e209d39SAndroid Build Coastguard Worker * Also returns binary and mask property values. 2936*0e209d39SAndroid Build Coastguard Worker * 2937*0e209d39SAndroid Build Coastguard Worker * Unicode, especially in version 3.2, defines many more properties than the 2938*0e209d39SAndroid Build Coastguard Worker * original set in UnicodeData.txt. 2939*0e209d39SAndroid Build Coastguard Worker * 2940*0e209d39SAndroid Build Coastguard Worker * The properties APIs are intended to reflect Unicode properties as defined 2941*0e209d39SAndroid Build Coastguard Worker * in the Unicode Character Database (UCD) and Unicode Technical Reports (UTR). 2942*0e209d39SAndroid Build Coastguard Worker * For details about the properties see http://www.unicode.org/ . 2943*0e209d39SAndroid Build Coastguard Worker * For names of Unicode properties see the UCD file PropertyAliases.txt. 2944*0e209d39SAndroid Build Coastguard Worker * 2945*0e209d39SAndroid Build Coastguard Worker * Sample usage: 2946*0e209d39SAndroid Build Coastguard Worker * UEastAsianWidth ea=(UEastAsianWidth)u_getIntPropertyValue(c, UCHAR_EAST_ASIAN_WIDTH); 2947*0e209d39SAndroid Build Coastguard Worker * UBool b=(UBool)u_getIntPropertyValue(c, UCHAR_IDEOGRAPHIC); 2948*0e209d39SAndroid Build Coastguard Worker * 2949*0e209d39SAndroid Build Coastguard Worker * @param c Code point to test. 2950*0e209d39SAndroid Build Coastguard Worker * @param which UProperty selector constant, identifies which property to check. 2951*0e209d39SAndroid Build Coastguard Worker * Must be UCHAR_BINARY_START<=which<UCHAR_BINARY_LIMIT 2952*0e209d39SAndroid Build Coastguard Worker * or UCHAR_INT_START<=which<UCHAR_INT_LIMIT 2953*0e209d39SAndroid Build Coastguard Worker * or UCHAR_MASK_START<=which<UCHAR_MASK_LIMIT. 2954*0e209d39SAndroid Build Coastguard Worker * @return Numeric value that is directly the property value or, 2955*0e209d39SAndroid Build Coastguard Worker * for enumerated properties, corresponds to the numeric value of the enumerated 2956*0e209d39SAndroid Build Coastguard Worker * constant of the respective property value enumeration type 2957*0e209d39SAndroid Build Coastguard Worker * (cast to enum type if necessary). 2958*0e209d39SAndroid Build Coastguard Worker * Returns 0 or 1 (for false/true) for binary Unicode properties. 2959*0e209d39SAndroid Build Coastguard Worker * Returns a bit-mask for mask properties. 2960*0e209d39SAndroid Build Coastguard Worker * Returns 0 if 'which' is out of bounds or if the Unicode version 2961*0e209d39SAndroid Build Coastguard Worker * does not have data for the property at all, or not for this code point. 2962*0e209d39SAndroid Build Coastguard Worker * 2963*0e209d39SAndroid Build Coastguard Worker * @see UProperty 2964*0e209d39SAndroid Build Coastguard Worker * @see u_hasBinaryProperty 2965*0e209d39SAndroid Build Coastguard Worker * @see u_getIntPropertyMinValue 2966*0e209d39SAndroid Build Coastguard Worker * @see u_getIntPropertyMaxValue 2967*0e209d39SAndroid Build Coastguard Worker * @see u_getIntPropertyMap 2968*0e209d39SAndroid Build Coastguard Worker * @see u_getUnicodeVersion 2969*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.2 2970*0e209d39SAndroid Build Coastguard Worker */ 2971*0e209d39SAndroid Build Coastguard Worker U_CAPI int32_t U_EXPORT2 2972*0e209d39SAndroid Build Coastguard Worker u_getIntPropertyValue(UChar32 c, UProperty which); 2973*0e209d39SAndroid Build Coastguard Worker 2974*0e209d39SAndroid Build Coastguard Worker /** 2975*0e209d39SAndroid Build Coastguard Worker * Get the minimum value for an enumerated/integer/binary Unicode property. 2976*0e209d39SAndroid Build Coastguard Worker * Can be used together with u_getIntPropertyMaxValue 2977*0e209d39SAndroid Build Coastguard Worker * to allocate arrays of UnicodeSet or similar. 2978*0e209d39SAndroid Build Coastguard Worker * 2979*0e209d39SAndroid Build Coastguard Worker * @param which UProperty selector constant, identifies which binary property to check. 2980*0e209d39SAndroid Build Coastguard Worker * Must be UCHAR_BINARY_START<=which<UCHAR_BINARY_LIMIT 2981*0e209d39SAndroid Build Coastguard Worker * or UCHAR_INT_START<=which<UCHAR_INT_LIMIT. 2982*0e209d39SAndroid Build Coastguard Worker * @return Minimum value returned by u_getIntPropertyValue for a Unicode property. 2983*0e209d39SAndroid Build Coastguard Worker * 0 if the property selector is out of range. 2984*0e209d39SAndroid Build Coastguard Worker * 2985*0e209d39SAndroid Build Coastguard Worker * @see UProperty 2986*0e209d39SAndroid Build Coastguard Worker * @see u_hasBinaryProperty 2987*0e209d39SAndroid Build Coastguard Worker * @see u_getUnicodeVersion 2988*0e209d39SAndroid Build Coastguard Worker * @see u_getIntPropertyMaxValue 2989*0e209d39SAndroid Build Coastguard Worker * @see u_getIntPropertyValue 2990*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.2 2991*0e209d39SAndroid Build Coastguard Worker */ 2992*0e209d39SAndroid Build Coastguard Worker U_CAPI int32_t U_EXPORT2 2993*0e209d39SAndroid Build Coastguard Worker u_getIntPropertyMinValue(UProperty which); 2994*0e209d39SAndroid Build Coastguard Worker 2995*0e209d39SAndroid Build Coastguard Worker /** 2996*0e209d39SAndroid Build Coastguard Worker * Get the maximum value for an enumerated/integer/binary Unicode property. 2997*0e209d39SAndroid Build Coastguard Worker * Can be used together with u_getIntPropertyMinValue 2998*0e209d39SAndroid Build Coastguard Worker * to allocate arrays of UnicodeSet or similar. 2999*0e209d39SAndroid Build Coastguard Worker * 3000*0e209d39SAndroid Build Coastguard Worker * Examples for min/max values (for Unicode 3.2): 3001*0e209d39SAndroid Build Coastguard Worker * 3002*0e209d39SAndroid Build Coastguard Worker * - UCHAR_BIDI_CLASS: 0/18 (U_LEFT_TO_RIGHT/U_BOUNDARY_NEUTRAL) 3003*0e209d39SAndroid Build Coastguard Worker * - UCHAR_SCRIPT: 0/45 (USCRIPT_COMMON/USCRIPT_TAGBANWA) 3004*0e209d39SAndroid Build Coastguard Worker * - UCHAR_IDEOGRAPHIC: 0/1 (false/true) 3005*0e209d39SAndroid Build Coastguard Worker * 3006*0e209d39SAndroid Build Coastguard Worker * For undefined UProperty constant values, min/max values will be 0/-1. 3007*0e209d39SAndroid Build Coastguard Worker * 3008*0e209d39SAndroid Build Coastguard Worker * @param which UProperty selector constant, identifies which binary property to check. 3009*0e209d39SAndroid Build Coastguard Worker * Must be UCHAR_BINARY_START<=which<UCHAR_BINARY_LIMIT 3010*0e209d39SAndroid Build Coastguard Worker * or UCHAR_INT_START<=which<UCHAR_INT_LIMIT. 3011*0e209d39SAndroid Build Coastguard Worker * @return Maximum value returned by u_getIntPropertyValue for a Unicode property. 3012*0e209d39SAndroid Build Coastguard Worker * <=0 if the property selector is out of range. 3013*0e209d39SAndroid Build Coastguard Worker * 3014*0e209d39SAndroid Build Coastguard Worker * @see UProperty 3015*0e209d39SAndroid Build Coastguard Worker * @see u_hasBinaryProperty 3016*0e209d39SAndroid Build Coastguard Worker * @see u_getUnicodeVersion 3017*0e209d39SAndroid Build Coastguard Worker * @see u_getIntPropertyMaxValue 3018*0e209d39SAndroid Build Coastguard Worker * @see u_getIntPropertyValue 3019*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.2 3020*0e209d39SAndroid Build Coastguard Worker */ 3021*0e209d39SAndroid Build Coastguard Worker U_CAPI int32_t U_EXPORT2 3022*0e209d39SAndroid Build Coastguard Worker u_getIntPropertyMaxValue(UProperty which); 3023*0e209d39SAndroid Build Coastguard Worker 3024*0e209d39SAndroid Build Coastguard Worker /** 3025*0e209d39SAndroid Build Coastguard Worker * Returns an immutable UCPMap for an enumerated/catalog/int-valued property. 3026*0e209d39SAndroid Build Coastguard Worker * The library retains ownership over the returned object. 3027*0e209d39SAndroid Build Coastguard Worker * Sets an error code if the property number is not one for an "int property". 3028*0e209d39SAndroid Build Coastguard Worker * 3029*0e209d39SAndroid Build Coastguard Worker * The returned object maps all Unicode code points to their values for that property. 3030*0e209d39SAndroid Build Coastguard Worker * For documentation of the integer values see u_getIntPropertyValue(). 3031*0e209d39SAndroid Build Coastguard Worker * 3032*0e209d39SAndroid Build Coastguard Worker * @param property UCHAR_INT_START..UCHAR_INT_LIMIT-1 3033*0e209d39SAndroid Build Coastguard Worker * @param pErrorCode an in/out ICU UErrorCode 3034*0e209d39SAndroid Build Coastguard Worker * @return the property as a map 3035*0e209d39SAndroid Build Coastguard Worker * @see UProperty 3036*0e209d39SAndroid Build Coastguard Worker * @see u_getIntPropertyValue 3037*0e209d39SAndroid Build Coastguard Worker * @stable ICU 63 3038*0e209d39SAndroid Build Coastguard Worker */ 3039*0e209d39SAndroid Build Coastguard Worker U_CAPI const UCPMap * U_EXPORT2 3040*0e209d39SAndroid Build Coastguard Worker u_getIntPropertyMap(UProperty property, UErrorCode *pErrorCode); 3041*0e209d39SAndroid Build Coastguard Worker 3042*0e209d39SAndroid Build Coastguard Worker /** 3043*0e209d39SAndroid Build Coastguard Worker * Get the numeric value for a Unicode code point as defined in the 3044*0e209d39SAndroid Build Coastguard Worker * Unicode Character Database. 3045*0e209d39SAndroid Build Coastguard Worker * 3046*0e209d39SAndroid Build Coastguard Worker * A "double" return type is necessary because 3047*0e209d39SAndroid Build Coastguard Worker * some numeric values are fractions, negative, or too large for int32_t. 3048*0e209d39SAndroid Build Coastguard Worker * 3049*0e209d39SAndroid Build Coastguard Worker * For characters without any numeric values in the Unicode Character Database, 3050*0e209d39SAndroid Build Coastguard Worker * this function will return U_NO_NUMERIC_VALUE. 3051*0e209d39SAndroid Build Coastguard Worker * Note: This is different from the Unicode Standard which specifies NaN as the default value. 3052*0e209d39SAndroid Build Coastguard Worker * (NaN is not available on all platforms.) 3053*0e209d39SAndroid Build Coastguard Worker * 3054*0e209d39SAndroid Build Coastguard Worker * Similar to java.lang.Character.getNumericValue(), but u_getNumericValue() 3055*0e209d39SAndroid Build Coastguard Worker * also supports negative values, large values, and fractions, 3056*0e209d39SAndroid Build Coastguard Worker * while Java's getNumericValue() returns values 10..35 for ASCII letters. 3057*0e209d39SAndroid Build Coastguard Worker * 3058*0e209d39SAndroid Build Coastguard Worker * @param c Code point to get the numeric value for. 3059*0e209d39SAndroid Build Coastguard Worker * @return Numeric value of c, or U_NO_NUMERIC_VALUE if none is defined. 3060*0e209d39SAndroid Build Coastguard Worker * 3061*0e209d39SAndroid Build Coastguard Worker * @see U_NO_NUMERIC_VALUE 3062*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.2 3063*0e209d39SAndroid Build Coastguard Worker */ 3064*0e209d39SAndroid Build Coastguard Worker U_CAPI double U_EXPORT2 3065*0e209d39SAndroid Build Coastguard Worker u_getNumericValue(UChar32 c); 3066*0e209d39SAndroid Build Coastguard Worker 3067*0e209d39SAndroid Build Coastguard Worker /** 3068*0e209d39SAndroid Build Coastguard Worker * Special value that is returned by u_getNumericValue when 3069*0e209d39SAndroid Build Coastguard Worker * no numeric value is defined for a code point. 3070*0e209d39SAndroid Build Coastguard Worker * 3071*0e209d39SAndroid Build Coastguard Worker * @see u_getNumericValue 3072*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.2 3073*0e209d39SAndroid Build Coastguard Worker */ 3074*0e209d39SAndroid Build Coastguard Worker #define U_NO_NUMERIC_VALUE ((double)-123456789.) 3075*0e209d39SAndroid Build Coastguard Worker 3076*0e209d39SAndroid Build Coastguard Worker /** 3077*0e209d39SAndroid Build Coastguard Worker * Determines whether the specified code point has the general category "Ll" 3078*0e209d39SAndroid Build Coastguard Worker * (lowercase letter). 3079*0e209d39SAndroid Build Coastguard Worker * 3080*0e209d39SAndroid Build Coastguard Worker * Same as java.lang.Character.isLowerCase(). 3081*0e209d39SAndroid Build Coastguard Worker * 3082*0e209d39SAndroid Build Coastguard Worker * This misses some characters that are also lowercase but 3083*0e209d39SAndroid Build Coastguard Worker * have a different general category value. 3084*0e209d39SAndroid Build Coastguard Worker * In order to include those, use UCHAR_LOWERCASE. 3085*0e209d39SAndroid Build Coastguard Worker * 3086*0e209d39SAndroid Build Coastguard Worker * In addition to being equivalent to a Java function, this also serves 3087*0e209d39SAndroid Build Coastguard Worker * as a C/POSIX migration function. 3088*0e209d39SAndroid Build Coastguard Worker * See the comments about C/POSIX character classification functions in the 3089*0e209d39SAndroid Build Coastguard Worker * documentation at the top of this header file. 3090*0e209d39SAndroid Build Coastguard Worker * 3091*0e209d39SAndroid Build Coastguard Worker * @param c the code point to be tested 3092*0e209d39SAndroid Build Coastguard Worker * @return true if the code point is an Ll lowercase letter 3093*0e209d39SAndroid Build Coastguard Worker * 3094*0e209d39SAndroid Build Coastguard Worker * @see UCHAR_LOWERCASE 3095*0e209d39SAndroid Build Coastguard Worker * @see u_isupper 3096*0e209d39SAndroid Build Coastguard Worker * @see u_istitle 3097*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 3098*0e209d39SAndroid Build Coastguard Worker */ 3099*0e209d39SAndroid Build Coastguard Worker U_CAPI UBool U_EXPORT2 3100*0e209d39SAndroid Build Coastguard Worker u_islower(UChar32 c); 3101*0e209d39SAndroid Build Coastguard Worker 3102*0e209d39SAndroid Build Coastguard Worker /** 3103*0e209d39SAndroid Build Coastguard Worker * Determines whether the specified code point has the general category "Lu" 3104*0e209d39SAndroid Build Coastguard Worker * (uppercase letter). 3105*0e209d39SAndroid Build Coastguard Worker * 3106*0e209d39SAndroid Build Coastguard Worker * Same as java.lang.Character.isUpperCase(). 3107*0e209d39SAndroid Build Coastguard Worker * 3108*0e209d39SAndroid Build Coastguard Worker * This misses some characters that are also uppercase but 3109*0e209d39SAndroid Build Coastguard Worker * have a different general category value. 3110*0e209d39SAndroid Build Coastguard Worker * In order to include those, use UCHAR_UPPERCASE. 3111*0e209d39SAndroid Build Coastguard Worker * 3112*0e209d39SAndroid Build Coastguard Worker * In addition to being equivalent to a Java function, this also serves 3113*0e209d39SAndroid Build Coastguard Worker * as a C/POSIX migration function. 3114*0e209d39SAndroid Build Coastguard Worker * See the comments about C/POSIX character classification functions in the 3115*0e209d39SAndroid Build Coastguard Worker * documentation at the top of this header file. 3116*0e209d39SAndroid Build Coastguard Worker * 3117*0e209d39SAndroid Build Coastguard Worker * @param c the code point to be tested 3118*0e209d39SAndroid Build Coastguard Worker * @return true if the code point is an Lu uppercase letter 3119*0e209d39SAndroid Build Coastguard Worker * 3120*0e209d39SAndroid Build Coastguard Worker * @see UCHAR_UPPERCASE 3121*0e209d39SAndroid Build Coastguard Worker * @see u_islower 3122*0e209d39SAndroid Build Coastguard Worker * @see u_istitle 3123*0e209d39SAndroid Build Coastguard Worker * @see u_tolower 3124*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 3125*0e209d39SAndroid Build Coastguard Worker */ 3126*0e209d39SAndroid Build Coastguard Worker U_CAPI UBool U_EXPORT2 3127*0e209d39SAndroid Build Coastguard Worker u_isupper(UChar32 c); 3128*0e209d39SAndroid Build Coastguard Worker 3129*0e209d39SAndroid Build Coastguard Worker /** 3130*0e209d39SAndroid Build Coastguard Worker * Determines whether the specified code point is a titlecase letter. 3131*0e209d39SAndroid Build Coastguard Worker * True for general category "Lt" (titlecase letter). 3132*0e209d39SAndroid Build Coastguard Worker * 3133*0e209d39SAndroid Build Coastguard Worker * Same as java.lang.Character.isTitleCase(). 3134*0e209d39SAndroid Build Coastguard Worker * 3135*0e209d39SAndroid Build Coastguard Worker * @param c the code point to be tested 3136*0e209d39SAndroid Build Coastguard Worker * @return true if the code point is an Lt titlecase letter 3137*0e209d39SAndroid Build Coastguard Worker * 3138*0e209d39SAndroid Build Coastguard Worker * @see u_isupper 3139*0e209d39SAndroid Build Coastguard Worker * @see u_islower 3140*0e209d39SAndroid Build Coastguard Worker * @see u_totitle 3141*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 3142*0e209d39SAndroid Build Coastguard Worker */ 3143*0e209d39SAndroid Build Coastguard Worker U_CAPI UBool U_EXPORT2 3144*0e209d39SAndroid Build Coastguard Worker u_istitle(UChar32 c); 3145*0e209d39SAndroid Build Coastguard Worker 3146*0e209d39SAndroid Build Coastguard Worker /** 3147*0e209d39SAndroid Build Coastguard Worker * Determines whether the specified code point is a digit character according to Java. 3148*0e209d39SAndroid Build Coastguard Worker * True for characters with general category "Nd" (decimal digit numbers). 3149*0e209d39SAndroid Build Coastguard Worker * Beginning with Unicode 4, this is the same as 3150*0e209d39SAndroid Build Coastguard Worker * testing for the Numeric_Type of Decimal. 3151*0e209d39SAndroid Build Coastguard Worker * 3152*0e209d39SAndroid Build Coastguard Worker * Same as java.lang.Character.isDigit(). 3153*0e209d39SAndroid Build Coastguard Worker * 3154*0e209d39SAndroid Build Coastguard Worker * In addition to being equivalent to a Java function, this also serves 3155*0e209d39SAndroid Build Coastguard Worker * as a C/POSIX migration function. 3156*0e209d39SAndroid Build Coastguard Worker * See the comments about C/POSIX character classification functions in the 3157*0e209d39SAndroid Build Coastguard Worker * documentation at the top of this header file. 3158*0e209d39SAndroid Build Coastguard Worker * 3159*0e209d39SAndroid Build Coastguard Worker * @param c the code point to be tested 3160*0e209d39SAndroid Build Coastguard Worker * @return true if the code point is a digit character according to Character.isDigit() 3161*0e209d39SAndroid Build Coastguard Worker * 3162*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 3163*0e209d39SAndroid Build Coastguard Worker */ 3164*0e209d39SAndroid Build Coastguard Worker U_CAPI UBool U_EXPORT2 3165*0e209d39SAndroid Build Coastguard Worker u_isdigit(UChar32 c); 3166*0e209d39SAndroid Build Coastguard Worker 3167*0e209d39SAndroid Build Coastguard Worker /** 3168*0e209d39SAndroid Build Coastguard Worker * Determines whether the specified code point is a letter character. 3169*0e209d39SAndroid Build Coastguard Worker * True for general categories "L" (letters). 3170*0e209d39SAndroid Build Coastguard Worker * 3171*0e209d39SAndroid Build Coastguard Worker * Same as java.lang.Character.isLetter(). 3172*0e209d39SAndroid Build Coastguard Worker * 3173*0e209d39SAndroid Build Coastguard Worker * In addition to being equivalent to a Java function, this also serves 3174*0e209d39SAndroid Build Coastguard Worker * as a C/POSIX migration function. 3175*0e209d39SAndroid Build Coastguard Worker * See the comments about C/POSIX character classification functions in the 3176*0e209d39SAndroid Build Coastguard Worker * documentation at the top of this header file. 3177*0e209d39SAndroid Build Coastguard Worker * 3178*0e209d39SAndroid Build Coastguard Worker * @param c the code point to be tested 3179*0e209d39SAndroid Build Coastguard Worker * @return true if the code point is a letter character 3180*0e209d39SAndroid Build Coastguard Worker * 3181*0e209d39SAndroid Build Coastguard Worker * @see u_isdigit 3182*0e209d39SAndroid Build Coastguard Worker * @see u_isalnum 3183*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 3184*0e209d39SAndroid Build Coastguard Worker */ 3185*0e209d39SAndroid Build Coastguard Worker U_CAPI UBool U_EXPORT2 3186*0e209d39SAndroid Build Coastguard Worker u_isalpha(UChar32 c); 3187*0e209d39SAndroid Build Coastguard Worker 3188*0e209d39SAndroid Build Coastguard Worker /** 3189*0e209d39SAndroid Build Coastguard Worker * Determines whether the specified code point is an alphanumeric character 3190*0e209d39SAndroid Build Coastguard Worker * (letter or digit) according to Java. 3191*0e209d39SAndroid Build Coastguard Worker * True for characters with general categories 3192*0e209d39SAndroid Build Coastguard Worker * "L" (letters) and "Nd" (decimal digit numbers). 3193*0e209d39SAndroid Build Coastguard Worker * 3194*0e209d39SAndroid Build Coastguard Worker * Same as java.lang.Character.isLetterOrDigit(). 3195*0e209d39SAndroid Build Coastguard Worker * 3196*0e209d39SAndroid Build Coastguard Worker * In addition to being equivalent to a Java function, this also serves 3197*0e209d39SAndroid Build Coastguard Worker * as a C/POSIX migration function. 3198*0e209d39SAndroid Build Coastguard Worker * See the comments about C/POSIX character classification functions in the 3199*0e209d39SAndroid Build Coastguard Worker * documentation at the top of this header file. 3200*0e209d39SAndroid Build Coastguard Worker * 3201*0e209d39SAndroid Build Coastguard Worker * @param c the code point to be tested 3202*0e209d39SAndroid Build Coastguard Worker * @return true if the code point is an alphanumeric character according to Character.isLetterOrDigit() 3203*0e209d39SAndroid Build Coastguard Worker * 3204*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 3205*0e209d39SAndroid Build Coastguard Worker */ 3206*0e209d39SAndroid Build Coastguard Worker U_CAPI UBool U_EXPORT2 3207*0e209d39SAndroid Build Coastguard Worker u_isalnum(UChar32 c); 3208*0e209d39SAndroid Build Coastguard Worker 3209*0e209d39SAndroid Build Coastguard Worker /** 3210*0e209d39SAndroid Build Coastguard Worker * Determines whether the specified code point is a hexadecimal digit. 3211*0e209d39SAndroid Build Coastguard Worker * This is equivalent to u_digit(c, 16)>=0. 3212*0e209d39SAndroid Build Coastguard Worker * True for characters with general category "Nd" (decimal digit numbers) 3213*0e209d39SAndroid Build Coastguard Worker * as well as Latin letters a-f and A-F in both ASCII and Fullwidth ASCII. 3214*0e209d39SAndroid Build Coastguard Worker * (That is, for letters with code points 3215*0e209d39SAndroid Build Coastguard Worker * 0041..0046, 0061..0066, FF21..FF26, FF41..FF46.) 3216*0e209d39SAndroid Build Coastguard Worker * 3217*0e209d39SAndroid Build Coastguard Worker * In order to narrow the definition of hexadecimal digits to only ASCII 3218*0e209d39SAndroid Build Coastguard Worker * characters, use (c<=0x7f && u_isxdigit(c)). 3219*0e209d39SAndroid Build Coastguard Worker * 3220*0e209d39SAndroid Build Coastguard Worker * This is a C/POSIX migration function. 3221*0e209d39SAndroid Build Coastguard Worker * See the comments about C/POSIX character classification functions in the 3222*0e209d39SAndroid Build Coastguard Worker * documentation at the top of this header file. 3223*0e209d39SAndroid Build Coastguard Worker * 3224*0e209d39SAndroid Build Coastguard Worker * @param c the code point to be tested 3225*0e209d39SAndroid Build Coastguard Worker * @return true if the code point is a hexadecimal digit 3226*0e209d39SAndroid Build Coastguard Worker * 3227*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.6 3228*0e209d39SAndroid Build Coastguard Worker */ 3229*0e209d39SAndroid Build Coastguard Worker U_CAPI UBool U_EXPORT2 3230*0e209d39SAndroid Build Coastguard Worker u_isxdigit(UChar32 c); 3231*0e209d39SAndroid Build Coastguard Worker 3232*0e209d39SAndroid Build Coastguard Worker /** 3233*0e209d39SAndroid Build Coastguard Worker * Determines whether the specified code point is a punctuation character. 3234*0e209d39SAndroid Build Coastguard Worker * True for characters with general categories "P" (punctuation). 3235*0e209d39SAndroid Build Coastguard Worker * 3236*0e209d39SAndroid Build Coastguard Worker * This is a C/POSIX migration function. 3237*0e209d39SAndroid Build Coastguard Worker * See the comments about C/POSIX character classification functions in the 3238*0e209d39SAndroid Build Coastguard Worker * documentation at the top of this header file. 3239*0e209d39SAndroid Build Coastguard Worker * 3240*0e209d39SAndroid Build Coastguard Worker * @param c the code point to be tested 3241*0e209d39SAndroid Build Coastguard Worker * @return true if the code point is a punctuation character 3242*0e209d39SAndroid Build Coastguard Worker * 3243*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.6 3244*0e209d39SAndroid Build Coastguard Worker */ 3245*0e209d39SAndroid Build Coastguard Worker U_CAPI UBool U_EXPORT2 3246*0e209d39SAndroid Build Coastguard Worker u_ispunct(UChar32 c); 3247*0e209d39SAndroid Build Coastguard Worker 3248*0e209d39SAndroid Build Coastguard Worker /** 3249*0e209d39SAndroid Build Coastguard Worker * Determines whether the specified code point is a "graphic" character 3250*0e209d39SAndroid Build Coastguard Worker * (printable, excluding spaces). 3251*0e209d39SAndroid Build Coastguard Worker * true for all characters except those with general categories 3252*0e209d39SAndroid Build Coastguard Worker * "Cc" (control codes), "Cf" (format controls), "Cs" (surrogates), 3253*0e209d39SAndroid Build Coastguard Worker * "Cn" (unassigned), and "Z" (separators). 3254*0e209d39SAndroid Build Coastguard Worker * 3255*0e209d39SAndroid Build Coastguard Worker * This is a C/POSIX migration function. 3256*0e209d39SAndroid Build Coastguard Worker * See the comments about C/POSIX character classification functions in the 3257*0e209d39SAndroid Build Coastguard Worker * documentation at the top of this header file. 3258*0e209d39SAndroid Build Coastguard Worker * 3259*0e209d39SAndroid Build Coastguard Worker * @param c the code point to be tested 3260*0e209d39SAndroid Build Coastguard Worker * @return true if the code point is a "graphic" character 3261*0e209d39SAndroid Build Coastguard Worker * 3262*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.6 3263*0e209d39SAndroid Build Coastguard Worker */ 3264*0e209d39SAndroid Build Coastguard Worker U_CAPI UBool U_EXPORT2 3265*0e209d39SAndroid Build Coastguard Worker u_isgraph(UChar32 c); 3266*0e209d39SAndroid Build Coastguard Worker 3267*0e209d39SAndroid Build Coastguard Worker /** 3268*0e209d39SAndroid Build Coastguard Worker * Determines whether the specified code point is a "blank" or "horizontal space", 3269*0e209d39SAndroid Build Coastguard Worker * a character that visibly separates words on a line. 3270*0e209d39SAndroid Build Coastguard Worker * The following are equivalent definitions: 3271*0e209d39SAndroid Build Coastguard Worker * 3272*0e209d39SAndroid Build Coastguard Worker * true for Unicode White_Space characters except for "vertical space controls" 3273*0e209d39SAndroid Build Coastguard Worker * where "vertical space controls" are the following characters: 3274*0e209d39SAndroid Build Coastguard Worker * U+000A (LF) U+000B (VT) U+000C (FF) U+000D (CR) U+0085 (NEL) U+2028 (LS) U+2029 (PS) 3275*0e209d39SAndroid Build Coastguard Worker * 3276*0e209d39SAndroid Build Coastguard Worker * same as 3277*0e209d39SAndroid Build Coastguard Worker * 3278*0e209d39SAndroid Build Coastguard Worker * true for U+0009 (TAB) and characters with general category "Zs" (space separators). 3279*0e209d39SAndroid Build Coastguard Worker * 3280*0e209d39SAndroid Build Coastguard Worker * Note: There are several ICU whitespace functions; please see the uchar.h 3281*0e209d39SAndroid Build Coastguard Worker * file documentation for a detailed comparison. 3282*0e209d39SAndroid Build Coastguard Worker * 3283*0e209d39SAndroid Build Coastguard Worker * This is a C/POSIX migration function. 3284*0e209d39SAndroid Build Coastguard Worker * See the comments about C/POSIX character classification functions in the 3285*0e209d39SAndroid Build Coastguard Worker * documentation at the top of this header file. 3286*0e209d39SAndroid Build Coastguard Worker * 3287*0e209d39SAndroid Build Coastguard Worker * @param c the code point to be tested 3288*0e209d39SAndroid Build Coastguard Worker * @return true if the code point is a "blank" 3289*0e209d39SAndroid Build Coastguard Worker * 3290*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.6 3291*0e209d39SAndroid Build Coastguard Worker */ 3292*0e209d39SAndroid Build Coastguard Worker U_CAPI UBool U_EXPORT2 3293*0e209d39SAndroid Build Coastguard Worker u_isblank(UChar32 c); 3294*0e209d39SAndroid Build Coastguard Worker 3295*0e209d39SAndroid Build Coastguard Worker /** 3296*0e209d39SAndroid Build Coastguard Worker * Determines whether the specified code point is "defined", 3297*0e209d39SAndroid Build Coastguard Worker * which usually means that it is assigned a character. 3298*0e209d39SAndroid Build Coastguard Worker * True for general categories other than "Cn" (other, not assigned), 3299*0e209d39SAndroid Build Coastguard Worker * i.e., true for all code points mentioned in UnicodeData.txt. 3300*0e209d39SAndroid Build Coastguard Worker * 3301*0e209d39SAndroid Build Coastguard Worker * Note that non-character code points (e.g., U+FDD0) are not "defined" 3302*0e209d39SAndroid Build Coastguard Worker * (they are Cn), but surrogate code points are "defined" (Cs). 3303*0e209d39SAndroid Build Coastguard Worker * 3304*0e209d39SAndroid Build Coastguard Worker * Same as java.lang.Character.isDefined(). 3305*0e209d39SAndroid Build Coastguard Worker * 3306*0e209d39SAndroid Build Coastguard Worker * @param c the code point to be tested 3307*0e209d39SAndroid Build Coastguard Worker * @return true if the code point is assigned a character 3308*0e209d39SAndroid Build Coastguard Worker * 3309*0e209d39SAndroid Build Coastguard Worker * @see u_isdigit 3310*0e209d39SAndroid Build Coastguard Worker * @see u_isalpha 3311*0e209d39SAndroid Build Coastguard Worker * @see u_isalnum 3312*0e209d39SAndroid Build Coastguard Worker * @see u_isupper 3313*0e209d39SAndroid Build Coastguard Worker * @see u_islower 3314*0e209d39SAndroid Build Coastguard Worker * @see u_istitle 3315*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 3316*0e209d39SAndroid Build Coastguard Worker */ 3317*0e209d39SAndroid Build Coastguard Worker U_CAPI UBool U_EXPORT2 3318*0e209d39SAndroid Build Coastguard Worker u_isdefined(UChar32 c); 3319*0e209d39SAndroid Build Coastguard Worker 3320*0e209d39SAndroid Build Coastguard Worker /** 3321*0e209d39SAndroid Build Coastguard Worker * Determines if the specified character is a space character or not. 3322*0e209d39SAndroid Build Coastguard Worker * 3323*0e209d39SAndroid Build Coastguard Worker * Note: There are several ICU whitespace functions; please see the uchar.h 3324*0e209d39SAndroid Build Coastguard Worker * file documentation for a detailed comparison. 3325*0e209d39SAndroid Build Coastguard Worker * 3326*0e209d39SAndroid Build Coastguard Worker * This is a C/POSIX migration function. 3327*0e209d39SAndroid Build Coastguard Worker * See the comments about C/POSIX character classification functions in the 3328*0e209d39SAndroid Build Coastguard Worker * documentation at the top of this header file. 3329*0e209d39SAndroid Build Coastguard Worker * 3330*0e209d39SAndroid Build Coastguard Worker * @param c the character to be tested 3331*0e209d39SAndroid Build Coastguard Worker * @return true if the character is a space character; false otherwise. 3332*0e209d39SAndroid Build Coastguard Worker * 3333*0e209d39SAndroid Build Coastguard Worker * @see u_isJavaSpaceChar 3334*0e209d39SAndroid Build Coastguard Worker * @see u_isWhitespace 3335*0e209d39SAndroid Build Coastguard Worker * @see u_isUWhiteSpace 3336*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 3337*0e209d39SAndroid Build Coastguard Worker */ 3338*0e209d39SAndroid Build Coastguard Worker U_CAPI UBool U_EXPORT2 3339*0e209d39SAndroid Build Coastguard Worker u_isspace(UChar32 c); 3340*0e209d39SAndroid Build Coastguard Worker 3341*0e209d39SAndroid Build Coastguard Worker /** 3342*0e209d39SAndroid Build Coastguard Worker * Determine if the specified code point is a space character according to Java. 3343*0e209d39SAndroid Build Coastguard Worker * True for characters with general categories "Z" (separators), 3344*0e209d39SAndroid Build Coastguard Worker * which does not include control codes (e.g., TAB or Line Feed). 3345*0e209d39SAndroid Build Coastguard Worker * 3346*0e209d39SAndroid Build Coastguard Worker * Same as java.lang.Character.isSpaceChar(). 3347*0e209d39SAndroid Build Coastguard Worker * 3348*0e209d39SAndroid Build Coastguard Worker * Note: There are several ICU whitespace functions; please see the uchar.h 3349*0e209d39SAndroid Build Coastguard Worker * file documentation for a detailed comparison. 3350*0e209d39SAndroid Build Coastguard Worker * 3351*0e209d39SAndroid Build Coastguard Worker * @param c the code point to be tested 3352*0e209d39SAndroid Build Coastguard Worker * @return true if the code point is a space character according to Character.isSpaceChar() 3353*0e209d39SAndroid Build Coastguard Worker * 3354*0e209d39SAndroid Build Coastguard Worker * @see u_isspace 3355*0e209d39SAndroid Build Coastguard Worker * @see u_isWhitespace 3356*0e209d39SAndroid Build Coastguard Worker * @see u_isUWhiteSpace 3357*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.6 3358*0e209d39SAndroid Build Coastguard Worker */ 3359*0e209d39SAndroid Build Coastguard Worker U_CAPI UBool U_EXPORT2 3360*0e209d39SAndroid Build Coastguard Worker u_isJavaSpaceChar(UChar32 c); 3361*0e209d39SAndroid Build Coastguard Worker 3362*0e209d39SAndroid Build Coastguard Worker /** 3363*0e209d39SAndroid Build Coastguard Worker * Determines if the specified code point is a whitespace character according to Java/ICU. 3364*0e209d39SAndroid Build Coastguard Worker * A character is considered to be a Java whitespace character if and only 3365*0e209d39SAndroid Build Coastguard Worker * if it satisfies one of the following criteria: 3366*0e209d39SAndroid Build Coastguard Worker * 3367*0e209d39SAndroid Build Coastguard Worker * - It is a Unicode Separator character (categories "Z" = "Zs" or "Zl" or "Zp"), but is not 3368*0e209d39SAndroid Build Coastguard Worker * also a non-breaking space (U+00A0 NBSP or U+2007 Figure Space or U+202F Narrow NBSP). 3369*0e209d39SAndroid Build Coastguard Worker * - It is U+0009 HORIZONTAL TABULATION. 3370*0e209d39SAndroid Build Coastguard Worker * - It is U+000A LINE FEED. 3371*0e209d39SAndroid Build Coastguard Worker * - It is U+000B VERTICAL TABULATION. 3372*0e209d39SAndroid Build Coastguard Worker * - It is U+000C FORM FEED. 3373*0e209d39SAndroid Build Coastguard Worker * - It is U+000D CARRIAGE RETURN. 3374*0e209d39SAndroid Build Coastguard Worker * - It is U+001C FILE SEPARATOR. 3375*0e209d39SAndroid Build Coastguard Worker * - It is U+001D GROUP SEPARATOR. 3376*0e209d39SAndroid Build Coastguard Worker * - It is U+001E RECORD SEPARATOR. 3377*0e209d39SAndroid Build Coastguard Worker * - It is U+001F UNIT SEPARATOR. 3378*0e209d39SAndroid Build Coastguard Worker * 3379*0e209d39SAndroid Build Coastguard Worker * This API tries to sync with the semantics of Java's 3380*0e209d39SAndroid Build Coastguard Worker * java.lang.Character.isWhitespace(), but it may not return 3381*0e209d39SAndroid Build Coastguard Worker * the exact same results because of the Unicode version 3382*0e209d39SAndroid Build Coastguard Worker * difference. 3383*0e209d39SAndroid Build Coastguard Worker * 3384*0e209d39SAndroid Build Coastguard Worker * Note: Unicode 4.0.1 changed U+200B ZERO WIDTH SPACE from a Space Separator (Zs) 3385*0e209d39SAndroid Build Coastguard Worker * to a Format Control (Cf). Since then, isWhitespace(0x200b) returns false. 3386*0e209d39SAndroid Build Coastguard Worker * See http://www.unicode.org/versions/Unicode4.0.1/ 3387*0e209d39SAndroid Build Coastguard Worker * 3388*0e209d39SAndroid Build Coastguard Worker * Note: There are several ICU whitespace functions; please see the uchar.h 3389*0e209d39SAndroid Build Coastguard Worker * file documentation for a detailed comparison. 3390*0e209d39SAndroid Build Coastguard Worker * 3391*0e209d39SAndroid Build Coastguard Worker * @param c the code point to be tested 3392*0e209d39SAndroid Build Coastguard Worker * @return true if the code point is a whitespace character according to Java/ICU 3393*0e209d39SAndroid Build Coastguard Worker * 3394*0e209d39SAndroid Build Coastguard Worker * @see u_isspace 3395*0e209d39SAndroid Build Coastguard Worker * @see u_isJavaSpaceChar 3396*0e209d39SAndroid Build Coastguard Worker * @see u_isUWhiteSpace 3397*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 3398*0e209d39SAndroid Build Coastguard Worker */ 3399*0e209d39SAndroid Build Coastguard Worker U_CAPI UBool U_EXPORT2 3400*0e209d39SAndroid Build Coastguard Worker u_isWhitespace(UChar32 c); 3401*0e209d39SAndroid Build Coastguard Worker 3402*0e209d39SAndroid Build Coastguard Worker /** 3403*0e209d39SAndroid Build Coastguard Worker * Determines whether the specified code point is a control character 3404*0e209d39SAndroid Build Coastguard Worker * (as defined by this function). 3405*0e209d39SAndroid Build Coastguard Worker * A control character is one of the following: 3406*0e209d39SAndroid Build Coastguard Worker * - ISO 8-bit control character (U+0000..U+001f and U+007f..U+009f) 3407*0e209d39SAndroid Build Coastguard Worker * - U_CONTROL_CHAR (Cc) 3408*0e209d39SAndroid Build Coastguard Worker * - U_FORMAT_CHAR (Cf) 3409*0e209d39SAndroid Build Coastguard Worker * - U_LINE_SEPARATOR (Zl) 3410*0e209d39SAndroid Build Coastguard Worker * - U_PARAGRAPH_SEPARATOR (Zp) 3411*0e209d39SAndroid Build Coastguard Worker * 3412*0e209d39SAndroid Build Coastguard Worker * This is a C/POSIX migration function. 3413*0e209d39SAndroid Build Coastguard Worker * See the comments about C/POSIX character classification functions in the 3414*0e209d39SAndroid Build Coastguard Worker * documentation at the top of this header file. 3415*0e209d39SAndroid Build Coastguard Worker * 3416*0e209d39SAndroid Build Coastguard Worker * @param c the code point to be tested 3417*0e209d39SAndroid Build Coastguard Worker * @return true if the code point is a control character 3418*0e209d39SAndroid Build Coastguard Worker * 3419*0e209d39SAndroid Build Coastguard Worker * @see UCHAR_DEFAULT_IGNORABLE_CODE_POINT 3420*0e209d39SAndroid Build Coastguard Worker * @see u_isprint 3421*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 3422*0e209d39SAndroid Build Coastguard Worker */ 3423*0e209d39SAndroid Build Coastguard Worker U_CAPI UBool U_EXPORT2 3424*0e209d39SAndroid Build Coastguard Worker u_iscntrl(UChar32 c); 3425*0e209d39SAndroid Build Coastguard Worker 3426*0e209d39SAndroid Build Coastguard Worker /** 3427*0e209d39SAndroid Build Coastguard Worker * Determines whether the specified code point is an ISO control code. 3428*0e209d39SAndroid Build Coastguard Worker * True for U+0000..U+001f and U+007f..U+009f (general category "Cc"). 3429*0e209d39SAndroid Build Coastguard Worker * 3430*0e209d39SAndroid Build Coastguard Worker * Same as java.lang.Character.isISOControl(). 3431*0e209d39SAndroid Build Coastguard Worker * 3432*0e209d39SAndroid Build Coastguard Worker * @param c the code point to be tested 3433*0e209d39SAndroid Build Coastguard Worker * @return true if the code point is an ISO control code 3434*0e209d39SAndroid Build Coastguard Worker * 3435*0e209d39SAndroid Build Coastguard Worker * @see u_iscntrl 3436*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.6 3437*0e209d39SAndroid Build Coastguard Worker */ 3438*0e209d39SAndroid Build Coastguard Worker U_CAPI UBool U_EXPORT2 3439*0e209d39SAndroid Build Coastguard Worker u_isISOControl(UChar32 c); 3440*0e209d39SAndroid Build Coastguard Worker 3441*0e209d39SAndroid Build Coastguard Worker /** 3442*0e209d39SAndroid Build Coastguard Worker * Determines whether the specified code point is a printable character. 3443*0e209d39SAndroid Build Coastguard Worker * True for general categories <em>other</em> than "C" (controls). 3444*0e209d39SAndroid Build Coastguard Worker * 3445*0e209d39SAndroid Build Coastguard Worker * This is a C/POSIX migration function. 3446*0e209d39SAndroid Build Coastguard Worker * See the comments about C/POSIX character classification functions in the 3447*0e209d39SAndroid Build Coastguard Worker * documentation at the top of this header file. 3448*0e209d39SAndroid Build Coastguard Worker * 3449*0e209d39SAndroid Build Coastguard Worker * @param c the code point to be tested 3450*0e209d39SAndroid Build Coastguard Worker * @return true if the code point is a printable character 3451*0e209d39SAndroid Build Coastguard Worker * 3452*0e209d39SAndroid Build Coastguard Worker * @see UCHAR_DEFAULT_IGNORABLE_CODE_POINT 3453*0e209d39SAndroid Build Coastguard Worker * @see u_iscntrl 3454*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 3455*0e209d39SAndroid Build Coastguard Worker */ 3456*0e209d39SAndroid Build Coastguard Worker U_CAPI UBool U_EXPORT2 3457*0e209d39SAndroid Build Coastguard Worker u_isprint(UChar32 c); 3458*0e209d39SAndroid Build Coastguard Worker 3459*0e209d39SAndroid Build Coastguard Worker /** 3460*0e209d39SAndroid Build Coastguard Worker * Non-standard: Determines whether the specified code point is a base character. 3461*0e209d39SAndroid Build Coastguard Worker * True for general categories "L" (letters), "N" (numbers), 3462*0e209d39SAndroid Build Coastguard Worker * "Mc" (spacing combining marks), and "Me" (enclosing marks). 3463*0e209d39SAndroid Build Coastguard Worker * 3464*0e209d39SAndroid Build Coastguard Worker * Note that this is different from the Unicode Standard definition in 3465*0e209d39SAndroid Build Coastguard Worker * chapter 3.6, conformance clause D51 “Base character”, 3466*0e209d39SAndroid Build Coastguard Worker * which defines base characters as the code points with general categories 3467*0e209d39SAndroid Build Coastguard Worker * Letter (L), Number (N), Punctuation (P), Symbol (S), or Space Separator (Zs). 3468*0e209d39SAndroid Build Coastguard Worker * 3469*0e209d39SAndroid Build Coastguard Worker * @param c the code point to be tested 3470*0e209d39SAndroid Build Coastguard Worker * @return true if the code point is a base character according to this function 3471*0e209d39SAndroid Build Coastguard Worker * 3472*0e209d39SAndroid Build Coastguard Worker * @see u_isalpha 3473*0e209d39SAndroid Build Coastguard Worker * @see u_isdigit 3474*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 3475*0e209d39SAndroid Build Coastguard Worker */ 3476*0e209d39SAndroid Build Coastguard Worker U_CAPI UBool U_EXPORT2 3477*0e209d39SAndroid Build Coastguard Worker u_isbase(UChar32 c); 3478*0e209d39SAndroid Build Coastguard Worker 3479*0e209d39SAndroid Build Coastguard Worker /** 3480*0e209d39SAndroid Build Coastguard Worker * Returns the bidirectional category value for the code point, 3481*0e209d39SAndroid Build Coastguard Worker * which is used in the Unicode bidirectional algorithm 3482*0e209d39SAndroid Build Coastguard Worker * (UAX #9 http://www.unicode.org/reports/tr9/). 3483*0e209d39SAndroid Build Coastguard Worker * Note that some <em>unassigned</em> code points have bidi values 3484*0e209d39SAndroid Build Coastguard Worker * of R or AL because they are in blocks that are reserved 3485*0e209d39SAndroid Build Coastguard Worker * for Right-To-Left scripts. 3486*0e209d39SAndroid Build Coastguard Worker * 3487*0e209d39SAndroid Build Coastguard Worker * Same as java.lang.Character.getDirectionality() 3488*0e209d39SAndroid Build Coastguard Worker * 3489*0e209d39SAndroid Build Coastguard Worker * @param c the code point to be tested 3490*0e209d39SAndroid Build Coastguard Worker * @return the bidirectional category (UCharDirection) value 3491*0e209d39SAndroid Build Coastguard Worker * 3492*0e209d39SAndroid Build Coastguard Worker * @see UCharDirection 3493*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 3494*0e209d39SAndroid Build Coastguard Worker */ 3495*0e209d39SAndroid Build Coastguard Worker U_CAPI UCharDirection U_EXPORT2 3496*0e209d39SAndroid Build Coastguard Worker u_charDirection(UChar32 c); 3497*0e209d39SAndroid Build Coastguard Worker 3498*0e209d39SAndroid Build Coastguard Worker /** 3499*0e209d39SAndroid Build Coastguard Worker * Determines whether the code point has the Bidi_Mirrored property. 3500*0e209d39SAndroid Build Coastguard Worker * This property is set for characters that are commonly used in 3501*0e209d39SAndroid Build Coastguard Worker * Right-To-Left contexts and need to be displayed with a "mirrored" 3502*0e209d39SAndroid Build Coastguard Worker * glyph. 3503*0e209d39SAndroid Build Coastguard Worker * 3504*0e209d39SAndroid Build Coastguard Worker * Same as java.lang.Character.isMirrored(). 3505*0e209d39SAndroid Build Coastguard Worker * Same as UCHAR_BIDI_MIRRORED 3506*0e209d39SAndroid Build Coastguard Worker * 3507*0e209d39SAndroid Build Coastguard Worker * @param c the code point to be tested 3508*0e209d39SAndroid Build Coastguard Worker * @return true if the character has the Bidi_Mirrored property 3509*0e209d39SAndroid Build Coastguard Worker * 3510*0e209d39SAndroid Build Coastguard Worker * @see UCHAR_BIDI_MIRRORED 3511*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 3512*0e209d39SAndroid Build Coastguard Worker */ 3513*0e209d39SAndroid Build Coastguard Worker U_CAPI UBool U_EXPORT2 3514*0e209d39SAndroid Build Coastguard Worker u_isMirrored(UChar32 c); 3515*0e209d39SAndroid Build Coastguard Worker 3516*0e209d39SAndroid Build Coastguard Worker /** 3517*0e209d39SAndroid Build Coastguard Worker * Maps the specified character to a "mirror-image" character. 3518*0e209d39SAndroid Build Coastguard Worker * For characters with the Bidi_Mirrored property, implementations 3519*0e209d39SAndroid Build Coastguard Worker * sometimes need a "poor man's" mapping to another Unicode 3520*0e209d39SAndroid Build Coastguard Worker * character (code point) such that the default glyph may serve 3521*0e209d39SAndroid Build Coastguard Worker * as the mirror-image of the default glyph of the specified 3522*0e209d39SAndroid Build Coastguard Worker * character. This is useful for text conversion to and from 3523*0e209d39SAndroid Build Coastguard Worker * codepages with visual order, and for displays without glyph 3524*0e209d39SAndroid Build Coastguard Worker * selection capabilities. 3525*0e209d39SAndroid Build Coastguard Worker * 3526*0e209d39SAndroid Build Coastguard Worker * @param c the code point to be mapped 3527*0e209d39SAndroid Build Coastguard Worker * @return another Unicode code point that may serve as a mirror-image 3528*0e209d39SAndroid Build Coastguard Worker * substitute, or c itself if there is no such mapping or c 3529*0e209d39SAndroid Build Coastguard Worker * does not have the Bidi_Mirrored property 3530*0e209d39SAndroid Build Coastguard Worker * 3531*0e209d39SAndroid Build Coastguard Worker * @see UCHAR_BIDI_MIRRORED 3532*0e209d39SAndroid Build Coastguard Worker * @see u_isMirrored 3533*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 3534*0e209d39SAndroid Build Coastguard Worker */ 3535*0e209d39SAndroid Build Coastguard Worker U_CAPI UChar32 U_EXPORT2 3536*0e209d39SAndroid Build Coastguard Worker u_charMirror(UChar32 c); 3537*0e209d39SAndroid Build Coastguard Worker 3538*0e209d39SAndroid Build Coastguard Worker /** 3539*0e209d39SAndroid Build Coastguard Worker * Maps the specified character to its paired bracket character. 3540*0e209d39SAndroid Build Coastguard Worker * For Bidi_Paired_Bracket_Type!=None, this is the same as u_charMirror(). 3541*0e209d39SAndroid Build Coastguard Worker * Otherwise c itself is returned. 3542*0e209d39SAndroid Build Coastguard Worker * See http://www.unicode.org/reports/tr9/ 3543*0e209d39SAndroid Build Coastguard Worker * 3544*0e209d39SAndroid Build Coastguard Worker * @param c the code point to be mapped 3545*0e209d39SAndroid Build Coastguard Worker * @return the paired bracket code point, 3546*0e209d39SAndroid Build Coastguard Worker * or c itself if there is no such mapping 3547*0e209d39SAndroid Build Coastguard Worker * (Bidi_Paired_Bracket_Type=None) 3548*0e209d39SAndroid Build Coastguard Worker * 3549*0e209d39SAndroid Build Coastguard Worker * @see UCHAR_BIDI_PAIRED_BRACKET 3550*0e209d39SAndroid Build Coastguard Worker * @see UCHAR_BIDI_PAIRED_BRACKET_TYPE 3551*0e209d39SAndroid Build Coastguard Worker * @see u_charMirror 3552*0e209d39SAndroid Build Coastguard Worker * @stable ICU 52 3553*0e209d39SAndroid Build Coastguard Worker */ 3554*0e209d39SAndroid Build Coastguard Worker U_CAPI UChar32 U_EXPORT2 3555*0e209d39SAndroid Build Coastguard Worker u_getBidiPairedBracket(UChar32 c); 3556*0e209d39SAndroid Build Coastguard Worker 3557*0e209d39SAndroid Build Coastguard Worker /** 3558*0e209d39SAndroid Build Coastguard Worker * Returns the general category value for the code point. 3559*0e209d39SAndroid Build Coastguard Worker * 3560*0e209d39SAndroid Build Coastguard Worker * Same as java.lang.Character.getType(). 3561*0e209d39SAndroid Build Coastguard Worker * 3562*0e209d39SAndroid Build Coastguard Worker * @param c the code point to be tested 3563*0e209d39SAndroid Build Coastguard Worker * @return the general category (UCharCategory) value 3564*0e209d39SAndroid Build Coastguard Worker * 3565*0e209d39SAndroid Build Coastguard Worker * @see UCharCategory 3566*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 3567*0e209d39SAndroid Build Coastguard Worker */ 3568*0e209d39SAndroid Build Coastguard Worker U_CAPI int8_t U_EXPORT2 3569*0e209d39SAndroid Build Coastguard Worker u_charType(UChar32 c); 3570*0e209d39SAndroid Build Coastguard Worker 3571*0e209d39SAndroid Build Coastguard Worker /** 3572*0e209d39SAndroid Build Coastguard Worker * Get a single-bit bit set for the general category of a character. 3573*0e209d39SAndroid Build Coastguard Worker * This bit set can be compared bitwise with U_GC_SM_MASK, U_GC_L_MASK, etc. 3574*0e209d39SAndroid Build Coastguard Worker * Same as U_MASK(u_charType(c)). 3575*0e209d39SAndroid Build Coastguard Worker * 3576*0e209d39SAndroid Build Coastguard Worker * @param c the code point to be tested 3577*0e209d39SAndroid Build Coastguard Worker * @return a single-bit mask corresponding to the general category (UCharCategory) value 3578*0e209d39SAndroid Build Coastguard Worker * 3579*0e209d39SAndroid Build Coastguard Worker * @see u_charType 3580*0e209d39SAndroid Build Coastguard Worker * @see UCharCategory 3581*0e209d39SAndroid Build Coastguard Worker * @see U_GC_CN_MASK 3582*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.1 3583*0e209d39SAndroid Build Coastguard Worker */ 3584*0e209d39SAndroid Build Coastguard Worker #define U_GET_GC_MASK(c) U_MASK(u_charType(c)) 3585*0e209d39SAndroid Build Coastguard Worker 3586*0e209d39SAndroid Build Coastguard Worker /** 3587*0e209d39SAndroid Build Coastguard Worker * Callback from u_enumCharTypes(), is called for each contiguous range 3588*0e209d39SAndroid Build Coastguard Worker * of code points c (where start<=c<limit) 3589*0e209d39SAndroid Build Coastguard Worker * with the same Unicode general category ("character type"). 3590*0e209d39SAndroid Build Coastguard Worker * 3591*0e209d39SAndroid Build Coastguard Worker * The callback function can stop the enumeration by returning false. 3592*0e209d39SAndroid Build Coastguard Worker * 3593*0e209d39SAndroid Build Coastguard Worker * @param context an opaque pointer, as passed into utrie_enum() 3594*0e209d39SAndroid Build Coastguard Worker * @param start the first code point in a contiguous range with value 3595*0e209d39SAndroid Build Coastguard Worker * @param limit one past the last code point in a contiguous range with value 3596*0e209d39SAndroid Build Coastguard Worker * @param type the general category for all code points in [start..limit[ 3597*0e209d39SAndroid Build Coastguard Worker * @return false to stop the enumeration 3598*0e209d39SAndroid Build Coastguard Worker * 3599*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.1 3600*0e209d39SAndroid Build Coastguard Worker * @see UCharCategory 3601*0e209d39SAndroid Build Coastguard Worker * @see u_enumCharTypes 3602*0e209d39SAndroid Build Coastguard Worker */ 3603*0e209d39SAndroid Build Coastguard Worker typedef UBool U_CALLCONV 3604*0e209d39SAndroid Build Coastguard Worker UCharEnumTypeRange(const void *context, UChar32 start, UChar32 limit, UCharCategory type); 3605*0e209d39SAndroid Build Coastguard Worker 3606*0e209d39SAndroid Build Coastguard Worker /** 3607*0e209d39SAndroid Build Coastguard Worker * Enumerate efficiently all code points with their Unicode general categories. 3608*0e209d39SAndroid Build Coastguard Worker * 3609*0e209d39SAndroid Build Coastguard Worker * This is useful for building data structures (e.g., UnicodeSet's), 3610*0e209d39SAndroid Build Coastguard Worker * for enumerating all assigned code points (type!=U_UNASSIGNED), etc. 3611*0e209d39SAndroid Build Coastguard Worker * 3612*0e209d39SAndroid Build Coastguard Worker * For each contiguous range of code points with a given general category ("character type"), 3613*0e209d39SAndroid Build Coastguard Worker * the UCharEnumTypeRange function is called. 3614*0e209d39SAndroid Build Coastguard Worker * Adjacent ranges have different types. 3615*0e209d39SAndroid Build Coastguard Worker * The Unicode Standard guarantees that the numeric value of the type is 0..31. 3616*0e209d39SAndroid Build Coastguard Worker * 3617*0e209d39SAndroid Build Coastguard Worker * @param enumRange a pointer to a function that is called for each contiguous range 3618*0e209d39SAndroid Build Coastguard Worker * of code points with the same general category 3619*0e209d39SAndroid Build Coastguard Worker * @param context an opaque pointer that is passed on to the callback function 3620*0e209d39SAndroid Build Coastguard Worker * 3621*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.1 3622*0e209d39SAndroid Build Coastguard Worker * @see UCharCategory 3623*0e209d39SAndroid Build Coastguard Worker * @see UCharEnumTypeRange 3624*0e209d39SAndroid Build Coastguard Worker */ 3625*0e209d39SAndroid Build Coastguard Worker U_CAPI void U_EXPORT2 3626*0e209d39SAndroid Build Coastguard Worker u_enumCharTypes(UCharEnumTypeRange *enumRange, const void *context); 3627*0e209d39SAndroid Build Coastguard Worker 3628*0e209d39SAndroid Build Coastguard Worker #if !UCONFIG_NO_NORMALIZATION 3629*0e209d39SAndroid Build Coastguard Worker 3630*0e209d39SAndroid Build Coastguard Worker /** 3631*0e209d39SAndroid Build Coastguard Worker * Returns the combining class of the code point as specified in UnicodeData.txt. 3632*0e209d39SAndroid Build Coastguard Worker * 3633*0e209d39SAndroid Build Coastguard Worker * @param c the code point of the character 3634*0e209d39SAndroid Build Coastguard Worker * @return the combining class of the character 3635*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 3636*0e209d39SAndroid Build Coastguard Worker */ 3637*0e209d39SAndroid Build Coastguard Worker U_CAPI uint8_t U_EXPORT2 3638*0e209d39SAndroid Build Coastguard Worker u_getCombiningClass(UChar32 c); 3639*0e209d39SAndroid Build Coastguard Worker 3640*0e209d39SAndroid Build Coastguard Worker #endif 3641*0e209d39SAndroid Build Coastguard Worker 3642*0e209d39SAndroid Build Coastguard Worker /** 3643*0e209d39SAndroid Build Coastguard Worker * Returns the decimal digit value of a decimal digit character. 3644*0e209d39SAndroid Build Coastguard Worker * Such characters have the general category "Nd" (decimal digit numbers) 3645*0e209d39SAndroid Build Coastguard Worker * and a Numeric_Type of Decimal. 3646*0e209d39SAndroid Build Coastguard Worker * 3647*0e209d39SAndroid Build Coastguard Worker * Unlike ICU releases before 2.6, no digit values are returned for any 3648*0e209d39SAndroid Build Coastguard Worker * Han characters because Han number characters are often used with a special 3649*0e209d39SAndroid Build Coastguard Worker * Chinese-style number format (with characters for powers of 10 in between) 3650*0e209d39SAndroid Build Coastguard Worker * instead of in decimal-positional notation. 3651*0e209d39SAndroid Build Coastguard Worker * Unicode 4 explicitly assigns Han number characters the Numeric_Type 3652*0e209d39SAndroid Build Coastguard Worker * Numeric instead of Decimal. 3653*0e209d39SAndroid Build Coastguard Worker * See Jitterbug 1483 for more details. 3654*0e209d39SAndroid Build Coastguard Worker * 3655*0e209d39SAndroid Build Coastguard Worker * Use u_getIntPropertyValue(c, UCHAR_NUMERIC_TYPE) and u_getNumericValue() 3656*0e209d39SAndroid Build Coastguard Worker * for complete numeric Unicode properties. 3657*0e209d39SAndroid Build Coastguard Worker * 3658*0e209d39SAndroid Build Coastguard Worker * @param c the code point for which to get the decimal digit value 3659*0e209d39SAndroid Build Coastguard Worker * @return the decimal digit value of c, 3660*0e209d39SAndroid Build Coastguard Worker * or -1 if c is not a decimal digit character 3661*0e209d39SAndroid Build Coastguard Worker * 3662*0e209d39SAndroid Build Coastguard Worker * @see u_getNumericValue 3663*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 3664*0e209d39SAndroid Build Coastguard Worker */ 3665*0e209d39SAndroid Build Coastguard Worker U_CAPI int32_t U_EXPORT2 3666*0e209d39SAndroid Build Coastguard Worker u_charDigitValue(UChar32 c); 3667*0e209d39SAndroid Build Coastguard Worker 3668*0e209d39SAndroid Build Coastguard Worker /** 3669*0e209d39SAndroid Build Coastguard Worker * Returns the Unicode allocation block that contains the character. 3670*0e209d39SAndroid Build Coastguard Worker * 3671*0e209d39SAndroid Build Coastguard Worker * @param c the code point to be tested 3672*0e209d39SAndroid Build Coastguard Worker * @return the block value (UBlockCode) for c 3673*0e209d39SAndroid Build Coastguard Worker * 3674*0e209d39SAndroid Build Coastguard Worker * @see UBlockCode 3675*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 3676*0e209d39SAndroid Build Coastguard Worker */ 3677*0e209d39SAndroid Build Coastguard Worker U_CAPI UBlockCode U_EXPORT2 3678*0e209d39SAndroid Build Coastguard Worker ublock_getCode(UChar32 c); 3679*0e209d39SAndroid Build Coastguard Worker 3680*0e209d39SAndroid Build Coastguard Worker /** 3681*0e209d39SAndroid Build Coastguard Worker * Retrieve the name of a Unicode character. 3682*0e209d39SAndroid Build Coastguard Worker * Depending on <code>nameChoice</code>, the character name written 3683*0e209d39SAndroid Build Coastguard Worker * into the buffer is the "modern" name or the name that was defined 3684*0e209d39SAndroid Build Coastguard Worker * in Unicode version 1.0. 3685*0e209d39SAndroid Build Coastguard Worker * The name contains only "invariant" characters 3686*0e209d39SAndroid Build Coastguard Worker * like A-Z, 0-9, space, and '-'. 3687*0e209d39SAndroid Build Coastguard Worker * Unicode 1.0 names are only retrieved if they are different from the modern 3688*0e209d39SAndroid Build Coastguard Worker * names and if the data file contains the data for them. gennames may or may 3689*0e209d39SAndroid Build Coastguard Worker * not be called with a command line option to include 1.0 names in unames.dat. 3690*0e209d39SAndroid Build Coastguard Worker * 3691*0e209d39SAndroid Build Coastguard Worker * @param code The character (code point) for which to get the name. 3692*0e209d39SAndroid Build Coastguard Worker * It must be <code>0<=code<=0x10ffff</code>. 3693*0e209d39SAndroid Build Coastguard Worker * @param nameChoice Selector for which name to get. 3694*0e209d39SAndroid Build Coastguard Worker * @param buffer Destination address for copying the name. 3695*0e209d39SAndroid Build Coastguard Worker * The name will always be zero-terminated. 3696*0e209d39SAndroid Build Coastguard Worker * If there is no name, then the buffer will be set to the empty string. 3697*0e209d39SAndroid Build Coastguard Worker * @param bufferLength <code>==sizeof(buffer)</code> 3698*0e209d39SAndroid Build Coastguard Worker * @param pErrorCode Pointer to a UErrorCode variable; 3699*0e209d39SAndroid Build Coastguard Worker * check for <code>U_SUCCESS()</code> after <code>u_charName()</code> 3700*0e209d39SAndroid Build Coastguard Worker * returns. 3701*0e209d39SAndroid Build Coastguard Worker * @return The length of the name, or 0 if there is no name for this character. 3702*0e209d39SAndroid Build Coastguard Worker * If the bufferLength is less than or equal to the length, then the buffer 3703*0e209d39SAndroid Build Coastguard Worker * contains the truncated name and the returned length indicates the full 3704*0e209d39SAndroid Build Coastguard Worker * length of the name. 3705*0e209d39SAndroid Build Coastguard Worker * The length does not include the zero-termination. 3706*0e209d39SAndroid Build Coastguard Worker * 3707*0e209d39SAndroid Build Coastguard Worker * @see UCharNameChoice 3708*0e209d39SAndroid Build Coastguard Worker * @see u_charFromName 3709*0e209d39SAndroid Build Coastguard Worker * @see u_enumCharNames 3710*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 3711*0e209d39SAndroid Build Coastguard Worker */ 3712*0e209d39SAndroid Build Coastguard Worker U_CAPI int32_t U_EXPORT2 3713*0e209d39SAndroid Build Coastguard Worker u_charName(UChar32 code, UCharNameChoice nameChoice, 3714*0e209d39SAndroid Build Coastguard Worker char *buffer, int32_t bufferLength, 3715*0e209d39SAndroid Build Coastguard Worker UErrorCode *pErrorCode); 3716*0e209d39SAndroid Build Coastguard Worker 3717*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_DEPRECATED_API 3718*0e209d39SAndroid Build Coastguard Worker /** 3719*0e209d39SAndroid Build Coastguard Worker * Returns an empty string. 3720*0e209d39SAndroid Build Coastguard Worker * Used to return the ISO 10646 comment for a character. 3721*0e209d39SAndroid Build Coastguard Worker * The Unicode ISO_Comment property is deprecated and has no values. 3722*0e209d39SAndroid Build Coastguard Worker * 3723*0e209d39SAndroid Build Coastguard Worker * @param c The character (code point) for which to get the ISO comment. 3724*0e209d39SAndroid Build Coastguard Worker * It must be <code>0<=c<=0x10ffff</code>. 3725*0e209d39SAndroid Build Coastguard Worker * @param dest Destination address for copying the comment. 3726*0e209d39SAndroid Build Coastguard Worker * The comment will be zero-terminated if possible. 3727*0e209d39SAndroid Build Coastguard Worker * If there is no comment, then the buffer will be set to the empty string. 3728*0e209d39SAndroid Build Coastguard Worker * @param destCapacity <code>==sizeof(dest)</code> 3729*0e209d39SAndroid Build Coastguard Worker * @param pErrorCode Pointer to a UErrorCode variable; 3730*0e209d39SAndroid Build Coastguard Worker * check for <code>U_SUCCESS()</code> after <code>u_getISOComment()</code> 3731*0e209d39SAndroid Build Coastguard Worker * returns. 3732*0e209d39SAndroid Build Coastguard Worker * @return 0 3733*0e209d39SAndroid Build Coastguard Worker * 3734*0e209d39SAndroid Build Coastguard Worker * @deprecated ICU 49 3735*0e209d39SAndroid Build Coastguard Worker */ 3736*0e209d39SAndroid Build Coastguard Worker U_DEPRECATED int32_t U_EXPORT2 3737*0e209d39SAndroid Build Coastguard Worker u_getISOComment(UChar32 c, 3738*0e209d39SAndroid Build Coastguard Worker char *dest, int32_t destCapacity, 3739*0e209d39SAndroid Build Coastguard Worker UErrorCode *pErrorCode); 3740*0e209d39SAndroid Build Coastguard Worker #endif /* U_HIDE_DEPRECATED_API */ 3741*0e209d39SAndroid Build Coastguard Worker 3742*0e209d39SAndroid Build Coastguard Worker /** 3743*0e209d39SAndroid Build Coastguard Worker * Find a Unicode character by its name and return its code point value. 3744*0e209d39SAndroid Build Coastguard Worker * The name is matched exactly and completely. 3745*0e209d39SAndroid Build Coastguard Worker * If the name does not correspond to a code point, <i>pErrorCode</i> 3746*0e209d39SAndroid Build Coastguard Worker * is set to <code>U_INVALID_CHAR_FOUND</code>. 3747*0e209d39SAndroid Build Coastguard Worker * A Unicode 1.0 name is matched only if it differs from the modern name. 3748*0e209d39SAndroid Build Coastguard Worker * Unicode names are all uppercase. Extended names are lowercase followed 3749*0e209d39SAndroid Build Coastguard Worker * by an uppercase hexadecimal number, and within angle brackets. 3750*0e209d39SAndroid Build Coastguard Worker * 3751*0e209d39SAndroid Build Coastguard Worker * @param nameChoice Selector for which name to match. 3752*0e209d39SAndroid Build Coastguard Worker * @param name The name to match. 3753*0e209d39SAndroid Build Coastguard Worker * @param pErrorCode Pointer to a UErrorCode variable 3754*0e209d39SAndroid Build Coastguard Worker * @return The Unicode value of the code point with the given name, 3755*0e209d39SAndroid Build Coastguard Worker * or an undefined value if there is no such code point. 3756*0e209d39SAndroid Build Coastguard Worker * 3757*0e209d39SAndroid Build Coastguard Worker * @see UCharNameChoice 3758*0e209d39SAndroid Build Coastguard Worker * @see u_charName 3759*0e209d39SAndroid Build Coastguard Worker * @see u_enumCharNames 3760*0e209d39SAndroid Build Coastguard Worker * @stable ICU 1.7 3761*0e209d39SAndroid Build Coastguard Worker */ 3762*0e209d39SAndroid Build Coastguard Worker U_CAPI UChar32 U_EXPORT2 3763*0e209d39SAndroid Build Coastguard Worker u_charFromName(UCharNameChoice nameChoice, 3764*0e209d39SAndroid Build Coastguard Worker const char *name, 3765*0e209d39SAndroid Build Coastguard Worker UErrorCode *pErrorCode); 3766*0e209d39SAndroid Build Coastguard Worker 3767*0e209d39SAndroid Build Coastguard Worker /** 3768*0e209d39SAndroid Build Coastguard Worker * Type of a callback function for u_enumCharNames() that gets called 3769*0e209d39SAndroid Build Coastguard Worker * for each Unicode character with the code point value and 3770*0e209d39SAndroid Build Coastguard Worker * the character name. 3771*0e209d39SAndroid Build Coastguard Worker * If such a function returns false, then the enumeration is stopped. 3772*0e209d39SAndroid Build Coastguard Worker * 3773*0e209d39SAndroid Build Coastguard Worker * @param context The context pointer that was passed to u_enumCharNames(). 3774*0e209d39SAndroid Build Coastguard Worker * @param code The Unicode code point for the character with this name. 3775*0e209d39SAndroid Build Coastguard Worker * @param nameChoice Selector for which kind of names is enumerated. 3776*0e209d39SAndroid Build Coastguard Worker * @param name The character's name, zero-terminated. 3777*0e209d39SAndroid Build Coastguard Worker * @param length The length of the name. 3778*0e209d39SAndroid Build Coastguard Worker * @return true if the enumeration should continue, false to stop it. 3779*0e209d39SAndroid Build Coastguard Worker * 3780*0e209d39SAndroid Build Coastguard Worker * @see UCharNameChoice 3781*0e209d39SAndroid Build Coastguard Worker * @see u_enumCharNames 3782*0e209d39SAndroid Build Coastguard Worker * @stable ICU 1.7 3783*0e209d39SAndroid Build Coastguard Worker */ 3784*0e209d39SAndroid Build Coastguard Worker typedef UBool U_CALLCONV UEnumCharNamesFn(void *context, 3785*0e209d39SAndroid Build Coastguard Worker UChar32 code, 3786*0e209d39SAndroid Build Coastguard Worker UCharNameChoice nameChoice, 3787*0e209d39SAndroid Build Coastguard Worker const char *name, 3788*0e209d39SAndroid Build Coastguard Worker int32_t length); 3789*0e209d39SAndroid Build Coastguard Worker 3790*0e209d39SAndroid Build Coastguard Worker /** 3791*0e209d39SAndroid Build Coastguard Worker * Enumerate all assigned Unicode characters between the start and limit 3792*0e209d39SAndroid Build Coastguard Worker * code points (start inclusive, limit exclusive) and call a function 3793*0e209d39SAndroid Build Coastguard Worker * for each, passing the code point value and the character name. 3794*0e209d39SAndroid Build Coastguard Worker * For Unicode 1.0 names, only those are enumerated that differ from the 3795*0e209d39SAndroid Build Coastguard Worker * modern names. 3796*0e209d39SAndroid Build Coastguard Worker * 3797*0e209d39SAndroid Build Coastguard Worker * @param start The first code point in the enumeration range. 3798*0e209d39SAndroid Build Coastguard Worker * @param limit One more than the last code point in the enumeration range 3799*0e209d39SAndroid Build Coastguard Worker * (the first one after the range). 3800*0e209d39SAndroid Build Coastguard Worker * @param fn The function that is to be called for each character name. 3801*0e209d39SAndroid Build Coastguard Worker * @param context An arbitrary pointer that is passed to the function. 3802*0e209d39SAndroid Build Coastguard Worker * @param nameChoice Selector for which kind of names to enumerate. 3803*0e209d39SAndroid Build Coastguard Worker * @param pErrorCode Pointer to a UErrorCode variable 3804*0e209d39SAndroid Build Coastguard Worker * 3805*0e209d39SAndroid Build Coastguard Worker * @see UCharNameChoice 3806*0e209d39SAndroid Build Coastguard Worker * @see UEnumCharNamesFn 3807*0e209d39SAndroid Build Coastguard Worker * @see u_charName 3808*0e209d39SAndroid Build Coastguard Worker * @see u_charFromName 3809*0e209d39SAndroid Build Coastguard Worker * @stable ICU 1.7 3810*0e209d39SAndroid Build Coastguard Worker */ 3811*0e209d39SAndroid Build Coastguard Worker U_CAPI void U_EXPORT2 3812*0e209d39SAndroid Build Coastguard Worker u_enumCharNames(UChar32 start, UChar32 limit, 3813*0e209d39SAndroid Build Coastguard Worker UEnumCharNamesFn *fn, 3814*0e209d39SAndroid Build Coastguard Worker void *context, 3815*0e209d39SAndroid Build Coastguard Worker UCharNameChoice nameChoice, 3816*0e209d39SAndroid Build Coastguard Worker UErrorCode *pErrorCode); 3817*0e209d39SAndroid Build Coastguard Worker 3818*0e209d39SAndroid Build Coastguard Worker /** 3819*0e209d39SAndroid Build Coastguard Worker * Return the Unicode name for a given property, as given in the 3820*0e209d39SAndroid Build Coastguard Worker * Unicode database file PropertyAliases.txt. 3821*0e209d39SAndroid Build Coastguard Worker * 3822*0e209d39SAndroid Build Coastguard Worker * In addition, this function maps the property 3823*0e209d39SAndroid Build Coastguard Worker * UCHAR_GENERAL_CATEGORY_MASK to the synthetic names "gcm" / 3824*0e209d39SAndroid Build Coastguard Worker * "General_Category_Mask". These names are not in 3825*0e209d39SAndroid Build Coastguard Worker * PropertyAliases.txt. 3826*0e209d39SAndroid Build Coastguard Worker * 3827*0e209d39SAndroid Build Coastguard Worker * @param property UProperty selector other than UCHAR_INVALID_CODE. 3828*0e209d39SAndroid Build Coastguard Worker * If out of range, NULL is returned. 3829*0e209d39SAndroid Build Coastguard Worker * 3830*0e209d39SAndroid Build Coastguard Worker * @param nameChoice selector for which name to get. If out of range, 3831*0e209d39SAndroid Build Coastguard Worker * NULL is returned. All properties have a long name. Most 3832*0e209d39SAndroid Build Coastguard Worker * have a short name, but some do not. Unicode allows for 3833*0e209d39SAndroid Build Coastguard Worker * additional names; if present these will be returned by 3834*0e209d39SAndroid Build Coastguard Worker * U_LONG_PROPERTY_NAME + i, where i=1, 2,... 3835*0e209d39SAndroid Build Coastguard Worker * 3836*0e209d39SAndroid Build Coastguard Worker * @return a pointer to the name, or NULL if either the 3837*0e209d39SAndroid Build Coastguard Worker * property or the nameChoice is out of range. If a given 3838*0e209d39SAndroid Build Coastguard Worker * nameChoice returns NULL, then all larger values of 3839*0e209d39SAndroid Build Coastguard Worker * nameChoice will return NULL, with one exception: if NULL is 3840*0e209d39SAndroid Build Coastguard Worker * returned for U_SHORT_PROPERTY_NAME, then 3841*0e209d39SAndroid Build Coastguard Worker * U_LONG_PROPERTY_NAME (and higher) may still return a 3842*0e209d39SAndroid Build Coastguard Worker * non-NULL value. The returned pointer is valid until 3843*0e209d39SAndroid Build Coastguard Worker * u_cleanup() is called. 3844*0e209d39SAndroid Build Coastguard Worker * 3845*0e209d39SAndroid Build Coastguard Worker * @see UProperty 3846*0e209d39SAndroid Build Coastguard Worker * @see UPropertyNameChoice 3847*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.4 3848*0e209d39SAndroid Build Coastguard Worker */ 3849*0e209d39SAndroid Build Coastguard Worker U_CAPI const char* U_EXPORT2 3850*0e209d39SAndroid Build Coastguard Worker u_getPropertyName(UProperty property, 3851*0e209d39SAndroid Build Coastguard Worker UPropertyNameChoice nameChoice); 3852*0e209d39SAndroid Build Coastguard Worker 3853*0e209d39SAndroid Build Coastguard Worker /** 3854*0e209d39SAndroid Build Coastguard Worker * Return the UProperty enum for a given property name, as specified 3855*0e209d39SAndroid Build Coastguard Worker * in the Unicode database file PropertyAliases.txt. Short, long, and 3856*0e209d39SAndroid Build Coastguard Worker * any other variants are recognized. 3857*0e209d39SAndroid Build Coastguard Worker * 3858*0e209d39SAndroid Build Coastguard Worker * In addition, this function maps the synthetic names "gcm" / 3859*0e209d39SAndroid Build Coastguard Worker * "General_Category_Mask" to the property 3860*0e209d39SAndroid Build Coastguard Worker * UCHAR_GENERAL_CATEGORY_MASK. These names are not in 3861*0e209d39SAndroid Build Coastguard Worker * PropertyAliases.txt. 3862*0e209d39SAndroid Build Coastguard Worker * 3863*0e209d39SAndroid Build Coastguard Worker * @param alias the property name to be matched. The name is compared 3864*0e209d39SAndroid Build Coastguard Worker * using "loose matching" as described in PropertyAliases.txt. 3865*0e209d39SAndroid Build Coastguard Worker * 3866*0e209d39SAndroid Build Coastguard Worker * @return a UProperty enum, or UCHAR_INVALID_CODE if the given name 3867*0e209d39SAndroid Build Coastguard Worker * does not match any property. 3868*0e209d39SAndroid Build Coastguard Worker * 3869*0e209d39SAndroid Build Coastguard Worker * @see UProperty 3870*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.4 3871*0e209d39SAndroid Build Coastguard Worker */ 3872*0e209d39SAndroid Build Coastguard Worker U_CAPI UProperty U_EXPORT2 3873*0e209d39SAndroid Build Coastguard Worker u_getPropertyEnum(const char* alias); 3874*0e209d39SAndroid Build Coastguard Worker 3875*0e209d39SAndroid Build Coastguard Worker /** 3876*0e209d39SAndroid Build Coastguard Worker * Return the Unicode name for a given property value, as given in the 3877*0e209d39SAndroid Build Coastguard Worker * Unicode database file PropertyValueAliases.txt. 3878*0e209d39SAndroid Build Coastguard Worker * 3879*0e209d39SAndroid Build Coastguard Worker * Note: Some of the names in PropertyValueAliases.txt can only be 3880*0e209d39SAndroid Build Coastguard Worker * retrieved using UCHAR_GENERAL_CATEGORY_MASK, not 3881*0e209d39SAndroid Build Coastguard Worker * UCHAR_GENERAL_CATEGORY. These include: "C" / "Other", "L" / 3882*0e209d39SAndroid Build Coastguard Worker * "Letter", "LC" / "Cased_Letter", "M" / "Mark", "N" / "Number", "P" 3883*0e209d39SAndroid Build Coastguard Worker * / "Punctuation", "S" / "Symbol", and "Z" / "Separator". 3884*0e209d39SAndroid Build Coastguard Worker * 3885*0e209d39SAndroid Build Coastguard Worker * @param property UProperty selector constant. 3886*0e209d39SAndroid Build Coastguard Worker * Must be UCHAR_BINARY_START<=which<UCHAR_BINARY_LIMIT 3887*0e209d39SAndroid Build Coastguard Worker * or UCHAR_INT_START<=which<UCHAR_INT_LIMIT 3888*0e209d39SAndroid Build Coastguard Worker * or UCHAR_MASK_START<=which<UCHAR_MASK_LIMIT. 3889*0e209d39SAndroid Build Coastguard Worker * If out of range, NULL is returned. 3890*0e209d39SAndroid Build Coastguard Worker * 3891*0e209d39SAndroid Build Coastguard Worker * @param value selector for a value for the given property. If out 3892*0e209d39SAndroid Build Coastguard Worker * of range, NULL is returned. In general, valid values range 3893*0e209d39SAndroid Build Coastguard Worker * from 0 up to some maximum. There are a few exceptions: 3894*0e209d39SAndroid Build Coastguard Worker * (1.) UCHAR_BLOCK values begin at the non-zero value 3895*0e209d39SAndroid Build Coastguard Worker * UBLOCK_BASIC_LATIN. (2.) UCHAR_CANONICAL_COMBINING_CLASS 3896*0e209d39SAndroid Build Coastguard Worker * values are not contiguous and range from 0..240. (3.) 3897*0e209d39SAndroid Build Coastguard Worker * UCHAR_GENERAL_CATEGORY_MASK values are not values of 3898*0e209d39SAndroid Build Coastguard Worker * UCharCategory, but rather mask values produced by 3899*0e209d39SAndroid Build Coastguard Worker * U_GET_GC_MASK(). This allows grouped categories such as 3900*0e209d39SAndroid Build Coastguard Worker * [:L:] to be represented. Mask values range 3901*0e209d39SAndroid Build Coastguard Worker * non-contiguously from 1..U_GC_P_MASK. 3902*0e209d39SAndroid Build Coastguard Worker * 3903*0e209d39SAndroid Build Coastguard Worker * @param nameChoice selector for which name to get. If out of range, 3904*0e209d39SAndroid Build Coastguard Worker * NULL is returned. All values have a long name. Most have 3905*0e209d39SAndroid Build Coastguard Worker * a short name, but some do not. Unicode allows for 3906*0e209d39SAndroid Build Coastguard Worker * additional names; if present these will be returned by 3907*0e209d39SAndroid Build Coastguard Worker * U_LONG_PROPERTY_NAME + i, where i=1, 2,... 3908*0e209d39SAndroid Build Coastguard Worker 3909*0e209d39SAndroid Build Coastguard Worker * @return a pointer to the name, or NULL if either the 3910*0e209d39SAndroid Build Coastguard Worker * property or the nameChoice is out of range. If a given 3911*0e209d39SAndroid Build Coastguard Worker * nameChoice returns NULL, then all larger values of 3912*0e209d39SAndroid Build Coastguard Worker * nameChoice will return NULL, with one exception: if NULL is 3913*0e209d39SAndroid Build Coastguard Worker * returned for U_SHORT_PROPERTY_NAME, then 3914*0e209d39SAndroid Build Coastguard Worker * U_LONG_PROPERTY_NAME (and higher) may still return a 3915*0e209d39SAndroid Build Coastguard Worker * non-NULL value. The returned pointer is valid until 3916*0e209d39SAndroid Build Coastguard Worker * u_cleanup() is called. 3917*0e209d39SAndroid Build Coastguard Worker * 3918*0e209d39SAndroid Build Coastguard Worker * @see UProperty 3919*0e209d39SAndroid Build Coastguard Worker * @see UPropertyNameChoice 3920*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.4 3921*0e209d39SAndroid Build Coastguard Worker */ 3922*0e209d39SAndroid Build Coastguard Worker U_CAPI const char* U_EXPORT2 3923*0e209d39SAndroid Build Coastguard Worker u_getPropertyValueName(UProperty property, 3924*0e209d39SAndroid Build Coastguard Worker int32_t value, 3925*0e209d39SAndroid Build Coastguard Worker UPropertyNameChoice nameChoice); 3926*0e209d39SAndroid Build Coastguard Worker 3927*0e209d39SAndroid Build Coastguard Worker /** 3928*0e209d39SAndroid Build Coastguard Worker * Return the property value integer for a given value name, as 3929*0e209d39SAndroid Build Coastguard Worker * specified in the Unicode database file PropertyValueAliases.txt. 3930*0e209d39SAndroid Build Coastguard Worker * Short, long, and any other variants are recognized. 3931*0e209d39SAndroid Build Coastguard Worker * 3932*0e209d39SAndroid Build Coastguard Worker * Note: Some of the names in PropertyValueAliases.txt will only be 3933*0e209d39SAndroid Build Coastguard Worker * recognized with UCHAR_GENERAL_CATEGORY_MASK, not 3934*0e209d39SAndroid Build Coastguard Worker * UCHAR_GENERAL_CATEGORY. These include: "C" / "Other", "L" / 3935*0e209d39SAndroid Build Coastguard Worker * "Letter", "LC" / "Cased_Letter", "M" / "Mark", "N" / "Number", "P" 3936*0e209d39SAndroid Build Coastguard Worker * / "Punctuation", "S" / "Symbol", and "Z" / "Separator". 3937*0e209d39SAndroid Build Coastguard Worker * 3938*0e209d39SAndroid Build Coastguard Worker * @param property UProperty selector constant. 3939*0e209d39SAndroid Build Coastguard Worker * Must be UCHAR_BINARY_START<=which<UCHAR_BINARY_LIMIT 3940*0e209d39SAndroid Build Coastguard Worker * or UCHAR_INT_START<=which<UCHAR_INT_LIMIT 3941*0e209d39SAndroid Build Coastguard Worker * or UCHAR_MASK_START<=which<UCHAR_MASK_LIMIT. 3942*0e209d39SAndroid Build Coastguard Worker * If out of range, UCHAR_INVALID_CODE is returned. 3943*0e209d39SAndroid Build Coastguard Worker * 3944*0e209d39SAndroid Build Coastguard Worker * @param alias the value name to be matched. The name is compared 3945*0e209d39SAndroid Build Coastguard Worker * using "loose matching" as described in 3946*0e209d39SAndroid Build Coastguard Worker * PropertyValueAliases.txt. 3947*0e209d39SAndroid Build Coastguard Worker * 3948*0e209d39SAndroid Build Coastguard Worker * @return a value integer or UCHAR_INVALID_CODE if the given name 3949*0e209d39SAndroid Build Coastguard Worker * does not match any value of the given property, or if the 3950*0e209d39SAndroid Build Coastguard Worker * property is invalid. Note: UCHAR_GENERAL_CATEGORY_MASK values 3951*0e209d39SAndroid Build Coastguard Worker * are not values of UCharCategory, but rather mask values 3952*0e209d39SAndroid Build Coastguard Worker * produced by U_GET_GC_MASK(). This allows grouped 3953*0e209d39SAndroid Build Coastguard Worker * categories such as [:L:] to be represented. 3954*0e209d39SAndroid Build Coastguard Worker * 3955*0e209d39SAndroid Build Coastguard Worker * @see UProperty 3956*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.4 3957*0e209d39SAndroid Build Coastguard Worker */ 3958*0e209d39SAndroid Build Coastguard Worker U_CAPI int32_t U_EXPORT2 3959*0e209d39SAndroid Build Coastguard Worker u_getPropertyValueEnum(UProperty property, 3960*0e209d39SAndroid Build Coastguard Worker const char* alias); 3961*0e209d39SAndroid Build Coastguard Worker 3962*0e209d39SAndroid Build Coastguard Worker /** 3963*0e209d39SAndroid Build Coastguard Worker * Determines if the specified character is permissible as the first character in an identifier 3964*0e209d39SAndroid Build Coastguard Worker * according to UAX #31 Unicode Identifier and Pattern Syntax. 3965*0e209d39SAndroid Build Coastguard Worker * 3966*0e209d39SAndroid Build Coastguard Worker * Same as Unicode ID_Start (UCHAR_ID_START). 3967*0e209d39SAndroid Build Coastguard Worker * 3968*0e209d39SAndroid Build Coastguard Worker * @param c the code point to be tested 3969*0e209d39SAndroid Build Coastguard Worker * @return true if the code point may start an identifier 3970*0e209d39SAndroid Build Coastguard Worker * 3971*0e209d39SAndroid Build Coastguard Worker * @see UCHAR_ID_START 3972*0e209d39SAndroid Build Coastguard Worker * @see u_isalpha 3973*0e209d39SAndroid Build Coastguard Worker * @see u_isIDPart 3974*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 3975*0e209d39SAndroid Build Coastguard Worker */ 3976*0e209d39SAndroid Build Coastguard Worker U_CAPI UBool U_EXPORT2 3977*0e209d39SAndroid Build Coastguard Worker u_isIDStart(UChar32 c); 3978*0e209d39SAndroid Build Coastguard Worker 3979*0e209d39SAndroid Build Coastguard Worker /** 3980*0e209d39SAndroid Build Coastguard Worker * Determines if the specified character is permissible as a non-initial character of an identifier 3981*0e209d39SAndroid Build Coastguard Worker * according to UAX #31 Unicode Identifier and Pattern Syntax. 3982*0e209d39SAndroid Build Coastguard Worker * 3983*0e209d39SAndroid Build Coastguard Worker * Same as Unicode ID_Continue (UCHAR_ID_CONTINUE). 3984*0e209d39SAndroid Build Coastguard Worker * 3985*0e209d39SAndroid Build Coastguard Worker * @param c the code point to be tested 3986*0e209d39SAndroid Build Coastguard Worker * @return true if the code point may occur as a non-initial character of an identifier 3987*0e209d39SAndroid Build Coastguard Worker * 3988*0e209d39SAndroid Build Coastguard Worker * @see UCHAR_ID_CONTINUE 3989*0e209d39SAndroid Build Coastguard Worker * @see u_isIDStart 3990*0e209d39SAndroid Build Coastguard Worker * @see u_isIDIgnorable 3991*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 3992*0e209d39SAndroid Build Coastguard Worker */ 3993*0e209d39SAndroid Build Coastguard Worker U_CAPI UBool U_EXPORT2 3994*0e209d39SAndroid Build Coastguard Worker u_isIDPart(UChar32 c); 3995*0e209d39SAndroid Build Coastguard Worker 3996*0e209d39SAndroid Build Coastguard Worker #ifndef U_HIDE_DRAFT_API 3997*0e209d39SAndroid Build Coastguard Worker /** 3998*0e209d39SAndroid Build Coastguard Worker * Does the set of Identifier_Type values code point c contain the given type? 3999*0e209d39SAndroid Build Coastguard Worker * 4000*0e209d39SAndroid Build Coastguard Worker * Used for UTS #39 General Security Profile for Identifiers 4001*0e209d39SAndroid Build Coastguard Worker * (https://www.unicode.org/reports/tr39/#General_Security_Profile). 4002*0e209d39SAndroid Build Coastguard Worker * 4003*0e209d39SAndroid Build Coastguard Worker * Each code point maps to a <i>set</i> of UIdentifierType values. 4004*0e209d39SAndroid Build Coastguard Worker * 4005*0e209d39SAndroid Build Coastguard Worker * @param c code point 4006*0e209d39SAndroid Build Coastguard Worker * @param type Identifier_Type to check 4007*0e209d39SAndroid Build Coastguard Worker * @return true if type is in Identifier_Type(c) 4008*0e209d39SAndroid Build Coastguard Worker * @draft ICU 75 4009*0e209d39SAndroid Build Coastguard Worker */ 4010*0e209d39SAndroid Build Coastguard Worker U_CAPI bool U_EXPORT2 4011*0e209d39SAndroid Build Coastguard Worker u_hasIDType(UChar32 c, UIdentifierType type); 4012*0e209d39SAndroid Build Coastguard Worker 4013*0e209d39SAndroid Build Coastguard Worker /** 4014*0e209d39SAndroid Build Coastguard Worker * Writes code point c's Identifier_Type as a list of UIdentifierType values 4015*0e209d39SAndroid Build Coastguard Worker * to the output types array and returns the number of types. 4016*0e209d39SAndroid Build Coastguard Worker * 4017*0e209d39SAndroid Build Coastguard Worker * Used for UTS #39 General Security Profile for Identifiers 4018*0e209d39SAndroid Build Coastguard Worker * (https://www.unicode.org/reports/tr39/#General_Security_Profile). 4019*0e209d39SAndroid Build Coastguard Worker * 4020*0e209d39SAndroid Build Coastguard Worker * Each code point maps to a <i>set</i> of UIdentifierType values. 4021*0e209d39SAndroid Build Coastguard Worker * There is always at least one type. 4022*0e209d39SAndroid Build Coastguard Worker * The order of output values is undefined. 4023*0e209d39SAndroid Build Coastguard Worker * Each type is output at most once; 4024*0e209d39SAndroid Build Coastguard Worker * there cannot be more output values than UIdentifierType constants. 4025*0e209d39SAndroid Build Coastguard Worker * In addition, only some of the types can be combined with others, 4026*0e209d39SAndroid Build Coastguard Worker * and usually only a small number of types occur together. 4027*0e209d39SAndroid Build Coastguard Worker * Future versions might add additional types. 4028*0e209d39SAndroid Build Coastguard Worker * See UTS #39 and its data files for details. 4029*0e209d39SAndroid Build Coastguard Worker * 4030*0e209d39SAndroid Build Coastguard Worker * If there are more than capacity types to be written, then 4031*0e209d39SAndroid Build Coastguard Worker * U_BUFFER_OVERFLOW_ERROR is set and the number of types is returned. 4032*0e209d39SAndroid Build Coastguard Worker * (Usual ICU buffer handling behavior.) 4033*0e209d39SAndroid Build Coastguard Worker * 4034*0e209d39SAndroid Build Coastguard Worker * @param c code point 4035*0e209d39SAndroid Build Coastguard Worker * @param types output array 4036*0e209d39SAndroid Build Coastguard Worker * @param capacity capacity of the array 4037*0e209d39SAndroid Build Coastguard Worker * @param pErrorCode Standard ICU error code. Its input value must 4038*0e209d39SAndroid Build Coastguard Worker * pass the U_SUCCESS() test, or else the function returns 4039*0e209d39SAndroid Build Coastguard Worker * immediately. Check for U_FAILURE() on output or use with 4040*0e209d39SAndroid Build Coastguard Worker * function chaining. (See User Guide for details.) 4041*0e209d39SAndroid Build Coastguard Worker * @return number of values in c's Identifier_Type, 4042*0e209d39SAndroid Build Coastguard Worker * written to types unless U_BUFFER_OVERFLOW_ERROR indicates insufficient capacity 4043*0e209d39SAndroid Build Coastguard Worker * @draft ICU 75 4044*0e209d39SAndroid Build Coastguard Worker */ 4045*0e209d39SAndroid Build Coastguard Worker U_CAPI int32_t U_EXPORT2 4046*0e209d39SAndroid Build Coastguard Worker u_getIDTypes(UChar32 c, UIdentifierType *types, int32_t capacity, UErrorCode *pErrorCode); 4047*0e209d39SAndroid Build Coastguard Worker #endif // U_HIDE_DRAFT_API 4048*0e209d39SAndroid Build Coastguard Worker 4049*0e209d39SAndroid Build Coastguard Worker /** 4050*0e209d39SAndroid Build Coastguard Worker * Determines if the specified character should be regarded 4051*0e209d39SAndroid Build Coastguard Worker * as an ignorable character in an identifier, 4052*0e209d39SAndroid Build Coastguard Worker * according to Java. 4053*0e209d39SAndroid Build Coastguard Worker * True for characters with general category "Cf" (format controls) as well as 4054*0e209d39SAndroid Build Coastguard Worker * non-whitespace ISO controls 4055*0e209d39SAndroid Build Coastguard Worker * (U+0000..U+0008, U+000E..U+001B, U+007F..U+009F). 4056*0e209d39SAndroid Build Coastguard Worker * 4057*0e209d39SAndroid Build Coastguard Worker * Same as java.lang.Character.isIdentifierIgnorable(). 4058*0e209d39SAndroid Build Coastguard Worker * 4059*0e209d39SAndroid Build Coastguard Worker * Note that Unicode just recommends to ignore Cf (format controls). 4060*0e209d39SAndroid Build Coastguard Worker * 4061*0e209d39SAndroid Build Coastguard Worker * @param c the code point to be tested 4062*0e209d39SAndroid Build Coastguard Worker * @return true if the code point is ignorable in identifiers according to Java 4063*0e209d39SAndroid Build Coastguard Worker * 4064*0e209d39SAndroid Build Coastguard Worker * @see UCHAR_DEFAULT_IGNORABLE_CODE_POINT 4065*0e209d39SAndroid Build Coastguard Worker * @see u_isIDStart 4066*0e209d39SAndroid Build Coastguard Worker * @see u_isIDPart 4067*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 4068*0e209d39SAndroid Build Coastguard Worker */ 4069*0e209d39SAndroid Build Coastguard Worker U_CAPI UBool U_EXPORT2 4070*0e209d39SAndroid Build Coastguard Worker u_isIDIgnorable(UChar32 c); 4071*0e209d39SAndroid Build Coastguard Worker 4072*0e209d39SAndroid Build Coastguard Worker /** 4073*0e209d39SAndroid Build Coastguard Worker * Determines if the specified character is permissible as the 4074*0e209d39SAndroid Build Coastguard Worker * first character in a Java identifier. 4075*0e209d39SAndroid Build Coastguard Worker * In addition to u_isIDStart(c), true for characters with 4076*0e209d39SAndroid Build Coastguard Worker * general categories "Sc" (currency symbols) and "Pc" (connecting punctuation). 4077*0e209d39SAndroid Build Coastguard Worker * 4078*0e209d39SAndroid Build Coastguard Worker * Same as java.lang.Character.isJavaIdentifierStart(). 4079*0e209d39SAndroid Build Coastguard Worker * 4080*0e209d39SAndroid Build Coastguard Worker * @param c the code point to be tested 4081*0e209d39SAndroid Build Coastguard Worker * @return true if the code point may start a Java identifier 4082*0e209d39SAndroid Build Coastguard Worker * 4083*0e209d39SAndroid Build Coastguard Worker * @see u_isJavaIDPart 4084*0e209d39SAndroid Build Coastguard Worker * @see u_isalpha 4085*0e209d39SAndroid Build Coastguard Worker * @see u_isIDStart 4086*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 4087*0e209d39SAndroid Build Coastguard Worker */ 4088*0e209d39SAndroid Build Coastguard Worker U_CAPI UBool U_EXPORT2 4089*0e209d39SAndroid Build Coastguard Worker u_isJavaIDStart(UChar32 c); 4090*0e209d39SAndroid Build Coastguard Worker 4091*0e209d39SAndroid Build Coastguard Worker /** 4092*0e209d39SAndroid Build Coastguard Worker * Determines if the specified character is permissible 4093*0e209d39SAndroid Build Coastguard Worker * in a Java identifier. 4094*0e209d39SAndroid Build Coastguard Worker * In addition to u_isIDPart(c), true for characters with 4095*0e209d39SAndroid Build Coastguard Worker * general category "Sc" (currency symbols). 4096*0e209d39SAndroid Build Coastguard Worker * 4097*0e209d39SAndroid Build Coastguard Worker * Same as java.lang.Character.isJavaIdentifierPart(). 4098*0e209d39SAndroid Build Coastguard Worker * 4099*0e209d39SAndroid Build Coastguard Worker * @param c the code point to be tested 4100*0e209d39SAndroid Build Coastguard Worker * @return true if the code point may occur in a Java identifier 4101*0e209d39SAndroid Build Coastguard Worker * 4102*0e209d39SAndroid Build Coastguard Worker * @see u_isIDIgnorable 4103*0e209d39SAndroid Build Coastguard Worker * @see u_isJavaIDStart 4104*0e209d39SAndroid Build Coastguard Worker * @see u_isalpha 4105*0e209d39SAndroid Build Coastguard Worker * @see u_isdigit 4106*0e209d39SAndroid Build Coastguard Worker * @see u_isIDPart 4107*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 4108*0e209d39SAndroid Build Coastguard Worker */ 4109*0e209d39SAndroid Build Coastguard Worker U_CAPI UBool U_EXPORT2 4110*0e209d39SAndroid Build Coastguard Worker u_isJavaIDPart(UChar32 c); 4111*0e209d39SAndroid Build Coastguard Worker 4112*0e209d39SAndroid Build Coastguard Worker /** 4113*0e209d39SAndroid Build Coastguard Worker * The given character is mapped to its lowercase equivalent according to 4114*0e209d39SAndroid Build Coastguard Worker * UnicodeData.txt; if the character has no lowercase equivalent, the character 4115*0e209d39SAndroid Build Coastguard Worker * itself is returned. 4116*0e209d39SAndroid Build Coastguard Worker * 4117*0e209d39SAndroid Build Coastguard Worker * Same as java.lang.Character.toLowerCase(). 4118*0e209d39SAndroid Build Coastguard Worker * 4119*0e209d39SAndroid Build Coastguard Worker * This function only returns the simple, single-code point case mapping. 4120*0e209d39SAndroid Build Coastguard Worker * Full case mappings should be used whenever possible because they produce 4121*0e209d39SAndroid Build Coastguard Worker * better results by working on whole strings. 4122*0e209d39SAndroid Build Coastguard Worker * They take into account the string context and the language and can map 4123*0e209d39SAndroid Build Coastguard Worker * to a result string with a different length as appropriate. 4124*0e209d39SAndroid Build Coastguard Worker * Full case mappings are applied by the string case mapping functions, 4125*0e209d39SAndroid Build Coastguard Worker * see ustring.h and the UnicodeString class. 4126*0e209d39SAndroid Build Coastguard Worker * See also the User Guide chapter on C/POSIX migration: 4127*0e209d39SAndroid Build Coastguard Worker * https://unicode-org.github.io/icu/userguide/icu/posix#case-mappings 4128*0e209d39SAndroid Build Coastguard Worker * 4129*0e209d39SAndroid Build Coastguard Worker * @param c the code point to be mapped 4130*0e209d39SAndroid Build Coastguard Worker * @return the Simple_Lowercase_Mapping of the code point, if any; 4131*0e209d39SAndroid Build Coastguard Worker * otherwise the code point itself. 4132*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 4133*0e209d39SAndroid Build Coastguard Worker */ 4134*0e209d39SAndroid Build Coastguard Worker U_CAPI UChar32 U_EXPORT2 4135*0e209d39SAndroid Build Coastguard Worker u_tolower(UChar32 c); 4136*0e209d39SAndroid Build Coastguard Worker 4137*0e209d39SAndroid Build Coastguard Worker /** 4138*0e209d39SAndroid Build Coastguard Worker * The given character is mapped to its uppercase equivalent according to UnicodeData.txt; 4139*0e209d39SAndroid Build Coastguard Worker * if the character has no uppercase equivalent, the character itself is 4140*0e209d39SAndroid Build Coastguard Worker * returned. 4141*0e209d39SAndroid Build Coastguard Worker * 4142*0e209d39SAndroid Build Coastguard Worker * Same as java.lang.Character.toUpperCase(). 4143*0e209d39SAndroid Build Coastguard Worker * 4144*0e209d39SAndroid Build Coastguard Worker * This function only returns the simple, single-code point case mapping. 4145*0e209d39SAndroid Build Coastguard Worker * Full case mappings should be used whenever possible because they produce 4146*0e209d39SAndroid Build Coastguard Worker * better results by working on whole strings. 4147*0e209d39SAndroid Build Coastguard Worker * They take into account the string context and the language and can map 4148*0e209d39SAndroid Build Coastguard Worker * to a result string with a different length as appropriate. 4149*0e209d39SAndroid Build Coastguard Worker * Full case mappings are applied by the string case mapping functions, 4150*0e209d39SAndroid Build Coastguard Worker * see ustring.h and the UnicodeString class. 4151*0e209d39SAndroid Build Coastguard Worker * See also the User Guide chapter on C/POSIX migration: 4152*0e209d39SAndroid Build Coastguard Worker * https://unicode-org.github.io/icu/userguide/icu/posix#case-mappings 4153*0e209d39SAndroid Build Coastguard Worker * 4154*0e209d39SAndroid Build Coastguard Worker * @param c the code point to be mapped 4155*0e209d39SAndroid Build Coastguard Worker * @return the Simple_Uppercase_Mapping of the code point, if any; 4156*0e209d39SAndroid Build Coastguard Worker * otherwise the code point itself. 4157*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 4158*0e209d39SAndroid Build Coastguard Worker */ 4159*0e209d39SAndroid Build Coastguard Worker U_CAPI UChar32 U_EXPORT2 4160*0e209d39SAndroid Build Coastguard Worker u_toupper(UChar32 c); 4161*0e209d39SAndroid Build Coastguard Worker 4162*0e209d39SAndroid Build Coastguard Worker /** 4163*0e209d39SAndroid Build Coastguard Worker * The given character is mapped to its titlecase equivalent 4164*0e209d39SAndroid Build Coastguard Worker * according to UnicodeData.txt; 4165*0e209d39SAndroid Build Coastguard Worker * if none is defined, the character itself is returned. 4166*0e209d39SAndroid Build Coastguard Worker * 4167*0e209d39SAndroid Build Coastguard Worker * Same as java.lang.Character.toTitleCase(). 4168*0e209d39SAndroid Build Coastguard Worker * 4169*0e209d39SAndroid Build Coastguard Worker * This function only returns the simple, single-code point case mapping. 4170*0e209d39SAndroid Build Coastguard Worker * Full case mappings should be used whenever possible because they produce 4171*0e209d39SAndroid Build Coastguard Worker * better results by working on whole strings. 4172*0e209d39SAndroid Build Coastguard Worker * They take into account the string context and the language and can map 4173*0e209d39SAndroid Build Coastguard Worker * to a result string with a different length as appropriate. 4174*0e209d39SAndroid Build Coastguard Worker * Full case mappings are applied by the string case mapping functions, 4175*0e209d39SAndroid Build Coastguard Worker * see ustring.h and the UnicodeString class. 4176*0e209d39SAndroid Build Coastguard Worker * See also the User Guide chapter on C/POSIX migration: 4177*0e209d39SAndroid Build Coastguard Worker * https://unicode-org.github.io/icu/userguide/icu/posix#case-mappings 4178*0e209d39SAndroid Build Coastguard Worker * 4179*0e209d39SAndroid Build Coastguard Worker * @param c the code point to be mapped 4180*0e209d39SAndroid Build Coastguard Worker * @return the Simple_Titlecase_Mapping of the code point, if any; 4181*0e209d39SAndroid Build Coastguard Worker * otherwise the code point itself. 4182*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 4183*0e209d39SAndroid Build Coastguard Worker */ 4184*0e209d39SAndroid Build Coastguard Worker U_CAPI UChar32 U_EXPORT2 4185*0e209d39SAndroid Build Coastguard Worker u_totitle(UChar32 c); 4186*0e209d39SAndroid Build Coastguard Worker 4187*0e209d39SAndroid Build Coastguard Worker /** 4188*0e209d39SAndroid Build Coastguard Worker * The given character is mapped to its case folding equivalent according to 4189*0e209d39SAndroid Build Coastguard Worker * UnicodeData.txt and CaseFolding.txt; 4190*0e209d39SAndroid Build Coastguard Worker * if the character has no case folding equivalent, the character 4191*0e209d39SAndroid Build Coastguard Worker * itself is returned. 4192*0e209d39SAndroid Build Coastguard Worker * 4193*0e209d39SAndroid Build Coastguard Worker * This function only returns the simple, single-code point case mapping. 4194*0e209d39SAndroid Build Coastguard Worker * Full case mappings should be used whenever possible because they produce 4195*0e209d39SAndroid Build Coastguard Worker * better results by working on whole strings. 4196*0e209d39SAndroid Build Coastguard Worker * They take into account the string context and the language and can map 4197*0e209d39SAndroid Build Coastguard Worker * to a result string with a different length as appropriate. 4198*0e209d39SAndroid Build Coastguard Worker * Full case mappings are applied by the string case mapping functions, 4199*0e209d39SAndroid Build Coastguard Worker * see ustring.h and the UnicodeString class. 4200*0e209d39SAndroid Build Coastguard Worker * See also the User Guide chapter on C/POSIX migration: 4201*0e209d39SAndroid Build Coastguard Worker * https://unicode-org.github.io/icu/userguide/icu/posix#case-mappings 4202*0e209d39SAndroid Build Coastguard Worker * 4203*0e209d39SAndroid Build Coastguard Worker * @param c the code point to be mapped 4204*0e209d39SAndroid Build Coastguard Worker * @param options Either U_FOLD_CASE_DEFAULT or U_FOLD_CASE_EXCLUDE_SPECIAL_I 4205*0e209d39SAndroid Build Coastguard Worker * @return the Simple_Case_Folding of the code point, if any; 4206*0e209d39SAndroid Build Coastguard Worker * otherwise the code point itself. 4207*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 4208*0e209d39SAndroid Build Coastguard Worker */ 4209*0e209d39SAndroid Build Coastguard Worker U_CAPI UChar32 U_EXPORT2 4210*0e209d39SAndroid Build Coastguard Worker u_foldCase(UChar32 c, uint32_t options); 4211*0e209d39SAndroid Build Coastguard Worker 4212*0e209d39SAndroid Build Coastguard Worker /** 4213*0e209d39SAndroid Build Coastguard Worker * Returns the decimal digit value of the code point in the 4214*0e209d39SAndroid Build Coastguard Worker * specified radix. 4215*0e209d39SAndroid Build Coastguard Worker * 4216*0e209d39SAndroid Build Coastguard Worker * If the radix is not in the range <code>2<=radix<=36</code> or if the 4217*0e209d39SAndroid Build Coastguard Worker * value of <code>c</code> is not a valid digit in the specified 4218*0e209d39SAndroid Build Coastguard Worker * radix, <code>-1</code> is returned. A character is a valid digit 4219*0e209d39SAndroid Build Coastguard Worker * if at least one of the following is true: 4220*0e209d39SAndroid Build Coastguard Worker * <ul> 4221*0e209d39SAndroid Build Coastguard Worker * <li>The character has a decimal digit value. 4222*0e209d39SAndroid Build Coastguard Worker * Such characters have the general category "Nd" (decimal digit numbers) 4223*0e209d39SAndroid Build Coastguard Worker * and a Numeric_Type of Decimal. 4224*0e209d39SAndroid Build Coastguard Worker * In this case the value is the character's decimal digit value.</li> 4225*0e209d39SAndroid Build Coastguard Worker * <li>The character is one of the uppercase Latin letters 4226*0e209d39SAndroid Build Coastguard Worker * <code>'A'</code> through <code>'Z'</code>. 4227*0e209d39SAndroid Build Coastguard Worker * In this case the value is <code>c-'A'+10</code>.</li> 4228*0e209d39SAndroid Build Coastguard Worker * <li>The character is one of the lowercase Latin letters 4229*0e209d39SAndroid Build Coastguard Worker * <code>'a'</code> through <code>'z'</code>. 4230*0e209d39SAndroid Build Coastguard Worker * In this case the value is <code>ch-'a'+10</code>.</li> 4231*0e209d39SAndroid Build Coastguard Worker * <li>Latin letters from both the ASCII range (0061..007A, 0041..005A) 4232*0e209d39SAndroid Build Coastguard Worker * as well as from the Fullwidth ASCII range (FF41..FF5A, FF21..FF3A) 4233*0e209d39SAndroid Build Coastguard Worker * are recognized.</li> 4234*0e209d39SAndroid Build Coastguard Worker * </ul> 4235*0e209d39SAndroid Build Coastguard Worker * 4236*0e209d39SAndroid Build Coastguard Worker * Same as java.lang.Character.digit(). 4237*0e209d39SAndroid Build Coastguard Worker * 4238*0e209d39SAndroid Build Coastguard Worker * @param ch the code point to be tested. 4239*0e209d39SAndroid Build Coastguard Worker * @param radix the radix. 4240*0e209d39SAndroid Build Coastguard Worker * @return the numeric value represented by the character in the 4241*0e209d39SAndroid Build Coastguard Worker * specified radix, 4242*0e209d39SAndroid Build Coastguard Worker * or -1 if there is no value or if the value exceeds the radix. 4243*0e209d39SAndroid Build Coastguard Worker * 4244*0e209d39SAndroid Build Coastguard Worker * @see UCHAR_NUMERIC_TYPE 4245*0e209d39SAndroid Build Coastguard Worker * @see u_forDigit 4246*0e209d39SAndroid Build Coastguard Worker * @see u_charDigitValue 4247*0e209d39SAndroid Build Coastguard Worker * @see u_isdigit 4248*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 4249*0e209d39SAndroid Build Coastguard Worker */ 4250*0e209d39SAndroid Build Coastguard Worker U_CAPI int32_t U_EXPORT2 4251*0e209d39SAndroid Build Coastguard Worker u_digit(UChar32 ch, int8_t radix); 4252*0e209d39SAndroid Build Coastguard Worker 4253*0e209d39SAndroid Build Coastguard Worker /** 4254*0e209d39SAndroid Build Coastguard Worker * Determines the character representation for a specific digit in 4255*0e209d39SAndroid Build Coastguard Worker * the specified radix. If the value of <code>radix</code> is not a 4256*0e209d39SAndroid Build Coastguard Worker * valid radix, or the value of <code>digit</code> is not a valid 4257*0e209d39SAndroid Build Coastguard Worker * digit in the specified radix, the null character 4258*0e209d39SAndroid Build Coastguard Worker * (<code>U+0000</code>) is returned. 4259*0e209d39SAndroid Build Coastguard Worker * <p> 4260*0e209d39SAndroid Build Coastguard Worker * The <code>radix</code> argument is valid if it is greater than or 4261*0e209d39SAndroid Build Coastguard Worker * equal to 2 and less than or equal to 36. 4262*0e209d39SAndroid Build Coastguard Worker * The <code>digit</code> argument is valid if 4263*0e209d39SAndroid Build Coastguard Worker * <code>0 <= digit < radix</code>. 4264*0e209d39SAndroid Build Coastguard Worker * <p> 4265*0e209d39SAndroid Build Coastguard Worker * If the digit is less than 10, then 4266*0e209d39SAndroid Build Coastguard Worker * <code>'0' + digit</code> is returned. Otherwise, the value 4267*0e209d39SAndroid Build Coastguard Worker * <code>'a' + digit - 10</code> is returned. 4268*0e209d39SAndroid Build Coastguard Worker * 4269*0e209d39SAndroid Build Coastguard Worker * Same as java.lang.Character.forDigit(). 4270*0e209d39SAndroid Build Coastguard Worker * 4271*0e209d39SAndroid Build Coastguard Worker * @param digit the number to convert to a character. 4272*0e209d39SAndroid Build Coastguard Worker * @param radix the radix. 4273*0e209d39SAndroid Build Coastguard Worker * @return the <code>char</code> representation of the specified digit 4274*0e209d39SAndroid Build Coastguard Worker * in the specified radix. 4275*0e209d39SAndroid Build Coastguard Worker * 4276*0e209d39SAndroid Build Coastguard Worker * @see u_digit 4277*0e209d39SAndroid Build Coastguard Worker * @see u_charDigitValue 4278*0e209d39SAndroid Build Coastguard Worker * @see u_isdigit 4279*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 4280*0e209d39SAndroid Build Coastguard Worker */ 4281*0e209d39SAndroid Build Coastguard Worker U_CAPI UChar32 U_EXPORT2 4282*0e209d39SAndroid Build Coastguard Worker u_forDigit(int32_t digit, int8_t radix); 4283*0e209d39SAndroid Build Coastguard Worker 4284*0e209d39SAndroid Build Coastguard Worker /** 4285*0e209d39SAndroid Build Coastguard Worker * Get the "age" of the code point. 4286*0e209d39SAndroid Build Coastguard Worker * The "age" is the Unicode version when the code point was first 4287*0e209d39SAndroid Build Coastguard Worker * designated (as a non-character or for Private Use) 4288*0e209d39SAndroid Build Coastguard Worker * or assigned a character. 4289*0e209d39SAndroid Build Coastguard Worker * This can be useful to avoid emitting code points to receiving 4290*0e209d39SAndroid Build Coastguard Worker * processes that do not accept newer characters. 4291*0e209d39SAndroid Build Coastguard Worker * The data is from the UCD file DerivedAge.txt. 4292*0e209d39SAndroid Build Coastguard Worker * 4293*0e209d39SAndroid Build Coastguard Worker * @param c The code point. 4294*0e209d39SAndroid Build Coastguard Worker * @param versionArray The Unicode version number array, to be filled in. 4295*0e209d39SAndroid Build Coastguard Worker * 4296*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.1 4297*0e209d39SAndroid Build Coastguard Worker */ 4298*0e209d39SAndroid Build Coastguard Worker U_CAPI void U_EXPORT2 4299*0e209d39SAndroid Build Coastguard Worker u_charAge(UChar32 c, UVersionInfo versionArray); 4300*0e209d39SAndroid Build Coastguard Worker 4301*0e209d39SAndroid Build Coastguard Worker /** 4302*0e209d39SAndroid Build Coastguard Worker * Gets the Unicode version information. 4303*0e209d39SAndroid Build Coastguard Worker * The version array is filled in with the version information 4304*0e209d39SAndroid Build Coastguard Worker * for the Unicode standard that is currently used by ICU. 4305*0e209d39SAndroid Build Coastguard Worker * For example, Unicode version 3.1.1 is represented as an array with 4306*0e209d39SAndroid Build Coastguard Worker * the values { 3, 1, 1, 0 }. 4307*0e209d39SAndroid Build Coastguard Worker * 4308*0e209d39SAndroid Build Coastguard Worker * @param versionArray an output array that will be filled in with 4309*0e209d39SAndroid Build Coastguard Worker * the Unicode version number 4310*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.0 4311*0e209d39SAndroid Build Coastguard Worker */ 4312*0e209d39SAndroid Build Coastguard Worker U_CAPI void U_EXPORT2 4313*0e209d39SAndroid Build Coastguard Worker u_getUnicodeVersion(UVersionInfo versionArray); 4314*0e209d39SAndroid Build Coastguard Worker 4315*0e209d39SAndroid Build Coastguard Worker #if !UCONFIG_NO_NORMALIZATION 4316*0e209d39SAndroid Build Coastguard Worker /** 4317*0e209d39SAndroid Build Coastguard Worker * Get the FC_NFKC_Closure property string for a character. 4318*0e209d39SAndroid Build Coastguard Worker * See Unicode Standard Annex #15 for details, search for "FC_NFKC_Closure" 4319*0e209d39SAndroid Build Coastguard Worker * or for "FNC": http://www.unicode.org/reports/tr15/ 4320*0e209d39SAndroid Build Coastguard Worker * 4321*0e209d39SAndroid Build Coastguard Worker * @param c The character (code point) for which to get the FC_NFKC_Closure string. 4322*0e209d39SAndroid Build Coastguard Worker * It must be <code>0<=c<=0x10ffff</code>. 4323*0e209d39SAndroid Build Coastguard Worker * @param dest Destination address for copying the string. 4324*0e209d39SAndroid Build Coastguard Worker * The string will be zero-terminated if possible. 4325*0e209d39SAndroid Build Coastguard Worker * If there is no FC_NFKC_Closure string, 4326*0e209d39SAndroid Build Coastguard Worker * then the buffer will be set to the empty string. 4327*0e209d39SAndroid Build Coastguard Worker * @param destCapacity <code>==sizeof(dest)</code> 4328*0e209d39SAndroid Build Coastguard Worker * @param pErrorCode Pointer to a UErrorCode variable. 4329*0e209d39SAndroid Build Coastguard Worker * @return The length of the string, or 0 if there is no FC_NFKC_Closure string for this character. 4330*0e209d39SAndroid Build Coastguard Worker * If the destCapacity is less than or equal to the length, then the buffer 4331*0e209d39SAndroid Build Coastguard Worker * contains the truncated name and the returned length indicates the full 4332*0e209d39SAndroid Build Coastguard Worker * length of the name. 4333*0e209d39SAndroid Build Coastguard Worker * The length does not include the zero-termination. 4334*0e209d39SAndroid Build Coastguard Worker * 4335*0e209d39SAndroid Build Coastguard Worker * @stable ICU 2.2 4336*0e209d39SAndroid Build Coastguard Worker */ 4337*0e209d39SAndroid Build Coastguard Worker U_CAPI int32_t U_EXPORT2 4338*0e209d39SAndroid Build Coastguard Worker u_getFC_NFKC_Closure(UChar32 c, UChar *dest, int32_t destCapacity, UErrorCode *pErrorCode); 4339*0e209d39SAndroid Build Coastguard Worker 4340*0e209d39SAndroid Build Coastguard Worker #endif 4341*0e209d39SAndroid Build Coastguard Worker 4342*0e209d39SAndroid Build Coastguard Worker 4343*0e209d39SAndroid Build Coastguard Worker U_CDECL_END 4344*0e209d39SAndroid Build Coastguard Worker 4345*0e209d39SAndroid Build Coastguard Worker #endif /*_UCHAR*/ 4346*0e209d39SAndroid Build Coastguard Worker /*eof*/ 4347