18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project**********************************************************************
38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*   Copyright (C) 1997-2004, International Business Machines
48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*   Corporation and others.  All Rights Reserved.
58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project**********************************************************************
68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*
78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* File UCHAR.H
88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*
98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project* Modification History:
108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*
118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*   Date        Name        Description
128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*   04/02/97    aliu        Creation.
138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*   03/29/99    helena      Updated for C APIs.
148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*   4/15/99     Madhu       Updated for C Implementation and Javadoc
158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*   5/20/99     Madhu       Added the function u_getVersion()
168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*   8/19/1999   srl         Upgraded scripts to Unicode 3.0
178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*   8/27/1999   schererm    UCharDirection constants: U_...
188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*   11/11/1999  weiv        added u_isalnum(), cleaned comments
198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*   01/11/2000  helena      Renamed u_getVersion to u_getUnicodeVersion().
208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project******************************************************************************
218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project*/
228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#ifndef UCHAR_H
248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define UCHAR_H
258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "unicode/utypes.h"
278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_CDECL_BEGIN
298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*==========================================================================*/
318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* Unicode version number                                                   */
328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*==========================================================================*/
338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Unicode version number, default for the current ICU version.
358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The actual Unicode Character Database (UCD) data is stored in uprops.dat
368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * and may be generated from UCD files from a different Unicode version.
378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Call u_getUnicodeVersion to get the actual Unicode version of the data.
388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_getUnicodeVersion
408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_UNICODE_VERSION "4.0.1"
438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \file
468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * \brief C API: Unicode Properties
478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This C API provides low-level access to the Unicode Character Database.
498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * In addition to raw property values, some convenience functions calculate
508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * derived properties, for example for Java-style programming.
518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Unicode assigns each code point (not just assigned character) values for
538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * many properties.
548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Most of them are simple boolean flags, or constants from a small enumerated list.
558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * For some properties, values are strings or other relatively more complex types.
568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * For more information see
588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * "About the Unicode Character Database" (http://www.unicode.org/ucd/)
598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * and the ICU User Guide chapter on Properties (http://oss.software.ibm.com/icu/userguide/properties.html).
608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Many functions are designed to match java.lang.Character functions.
628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * See the individual function documentation,
638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * and see the JDK 1.4.1 java.lang.Character documentation
648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * at http://java.sun.com/j2se/1.4.1/docs/api/java/lang/Character.html
658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * There are also functions that provide easy migration from C/POSIX functions
678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * like isblank(). Their use is generally discouraged because the C/POSIX
688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * standards do not define their semantics beyond the ASCII range, which means
698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * that different implementations exhibit very different behavior.
708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Instead, Unicode properties should be used directly.
718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * There are also only a few, broad C/POSIX character classes, and they tend
738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * to be used for conflicting purposes. For example, the "isalpha()" class
748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * is sometimes used to determine word boundaries, while a more sophisticated
758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * approach would at least distinguish initial letters from continuation
768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * characters (the latter including combining marks).
778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (In ICU, BreakIterator is the most sophisticated API for word boundaries.)
788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Another example: There is no "istitle()" class for titlecase characters.
798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * A summary of the behavior of some C/POSIX character classification implementations
818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * for Unicode is available at http://oss.software.ibm.com/cvs/icu/~checkout~/icuhtml/design/posix_classes.html
828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * <strong>Important</strong>:
848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The behavior of the ICU C/POSIX-style character classification
858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * functions is subject to change according to discussion of the above summary.
868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Note: There are several ICU whitespace functions.
888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Comparison:
898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * - u_isUWhiteSpace=UCHAR_WHITE_SPACE: Unicode White_Space property;
908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *       most of general categories "Z" (separators) + most whitespace ISO controls
918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *       (including no-break spaces, but excluding IS1..IS4 and ZWSP)
928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * - u_isWhitespace: Java isWhitespace; Z + whitespace ISO controls but excluding no-break spaces
938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * - u_isJavaSpaceChar: Java isSpaceChar; just Z (including no-break spaces)
948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * - u_isspace: Z + whitespace ISO controls (including no-break spaces)
958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * - u_isblank: "horizontal spaces" = TAB + Zs - ZWSP
968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Constants.
1008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
1018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** The lowest Unicode code point value. Code points are non-negative. @stable ICU 2.0 */
1038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define UCHAR_MIN_VALUE 0
1048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
1068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The highest Unicode code point value (scalar value) according to
1078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The Unicode Standard. This is a 21-bit value (20.1 bits, rounded up).
1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * For a single character, UChar32 is a simple type that can hold any code point value.
1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UChar32
1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
1128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
1138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define UCHAR_MAX_VALUE 0x10ffff
1148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
1168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Get a single-bit bit set (a flag) from a bit number 0..31.
1178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.1
1188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
1198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_MASK(x) ((uint32_t)1<<(x))
1208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
1228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * !! Note: Several comments in this file are machine-read by the
1238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * genpname tool.  These comments describe the correspondence between
1248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * icu enum constants and UCD entities.  Do not delete them.  Update
1258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * these comments as needed.
1268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
1278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Any comment of the form "/ *[name]* /" (spaces added) is such
1288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * a comment.
1298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
1308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The U_JG_* and U_GC_*_MASK constants are matched by their symbolic
1318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * name, which must match PropertyValueAliases.txt.
1328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
1338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
1358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Selection constants for Unicode properties.
1368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * These constants are used in functions like u_hasBinaryProperty to select
1378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * one of the Unicode properties.
1388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
1398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The properties APIs are intended to reflect Unicode properties as defined
1408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * in the Unicode Character Database (UCD) and Unicode Technical Reports (UTR).
1418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * For details about the properties see http://www.unicode.org/ucd/ .
1428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * For names of Unicode properties see the UCD file PropertyAliases.txt.
1438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
1448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Important: If ICU is built with UCD files from Unicode versions below, e.g., 3.2,
1458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * then properties marked with "new in Unicode 3.2" are not or not fully available.
1468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Check u_getUnicodeVersion to be sure.
1478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
1488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_hasBinaryProperty
1498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_getIntPropertyValue
1508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_getUnicodeVersion
1518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.1
1528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
1538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef enum UProperty {
1548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*  See note !!.  Comments of the form "Binary property Dash",
1558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        "Enumerated property Script", "Double property Numeric_Value",
1568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        and "String property Age" are read by genpname. */
1578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /*  Note: Place UCHAR_ALPHABETIC before UCHAR_BINARY_START so that
1598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    debuggers display UCHAR_ALPHABETIC as the symbolic name for 0,
1608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    rather than UCHAR_BINARY_START.  Likewise for other *_START
1618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    identifiers. */
1628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
1638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property Alphabetic. Same as u_isUAlphabetic, different from u_isalpha.
1648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Lu+Ll+Lt+Lm+Lo+Nl+Other_Alphabetic @stable ICU 2.1 */
1658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_ALPHABETIC=0,
1668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** First constant for binary Unicode properties. @stable ICU 2.1 */
1678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_BINARY_START=UCHAR_ALPHABETIC,
1688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property ASCII_Hex_Digit. 0-9 A-F a-f @stable ICU 2.1 */
1698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_ASCII_HEX_DIGIT,
1708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property Bidi_Control.
1718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Format controls which have specific functions
1728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        in the Bidi Algorithm. @stable ICU 2.1 */
1738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_BIDI_CONTROL,
1748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property Bidi_Mirrored.
1758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Characters that may change display in RTL text.
1768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Same as u_isMirrored.
1778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        See Bidi Algorithm, UTR 9. @stable ICU 2.1 */
1788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_BIDI_MIRRORED,
1798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property Dash. Variations of dashes. @stable ICU 2.1 */
1808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_DASH,
1818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property Default_Ignorable_Code_Point (new in Unicode 3.2).
1828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Ignorable in most processing.
1838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        <2060..206F, FFF0..FFFB, E0000..E0FFF>+Other_Default_Ignorable_Code_Point+(Cf+Cc+Cs-White_Space) @stable ICU 2.1 */
1848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_DEFAULT_IGNORABLE_CODE_POINT,
1858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property Deprecated (new in Unicode 3.2).
1868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        The usage of deprecated characters is strongly discouraged. @stable ICU 2.1 */
1878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_DEPRECATED,
1888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property Diacritic. Characters that linguistically modify
1898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        the meaning of another character to which they apply. @stable ICU 2.1 */
1908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_DIACRITIC,
1918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property Extender.
1928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Extend the value or shape of a preceding alphabetic character,
1938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        e.g., length and iteration marks. @stable ICU 2.1 */
1948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_EXTENDER,
1958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property Full_Composition_Exclusion.
1968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        CompositionExclusions.txt+Singleton Decompositions+
1978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Non-Starter Decompositions. @stable ICU 2.1 */
1988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_FULL_COMPOSITION_EXCLUSION,
1998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property Grapheme_Base (new in Unicode 3.2).
2008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        For programmatic determination of grapheme cluster boundaries.
2018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        [0..10FFFF]-Cc-Cf-Cs-Co-Cn-Zl-Zp-Grapheme_Link-Grapheme_Extend-CGJ @stable ICU 2.1 */
2028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_GRAPHEME_BASE,
2038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property Grapheme_Extend (new in Unicode 3.2).
2048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        For programmatic determination of grapheme cluster boundaries.
2058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Me+Mn+Mc+Other_Grapheme_Extend-Grapheme_Link-CGJ @stable ICU 2.1 */
2068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_GRAPHEME_EXTEND,
2078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property Grapheme_Link (new in Unicode 3.2).
2088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        For programmatic determination of grapheme cluster boundaries. @stable ICU 2.1 */
2098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_GRAPHEME_LINK,
2108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property Hex_Digit.
2118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Characters commonly used for hexadecimal numbers. @stable ICU 2.1 */
2128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_HEX_DIGIT,
2138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property Hyphen. Dashes used to mark connections
2148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        between pieces of words, plus the Katakana middle dot. @stable ICU 2.1 */
2158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_HYPHEN,
2168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property ID_Continue.
2178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Characters that can continue an identifier.
2188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        DerivedCoreProperties.txt also says "NOTE: Cf characters should be filtered out."
2198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        ID_Start+Mn+Mc+Nd+Pc @stable ICU 2.1 */
2208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_ID_CONTINUE,
2218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property ID_Start.
2228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Characters that can start an identifier.
2238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Lu+Ll+Lt+Lm+Lo+Nl @stable ICU 2.1 */
2248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_ID_START,
2258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property Ideographic.
2268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        CJKV ideographs. @stable ICU 2.1 */
2278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_IDEOGRAPHIC,
2288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property IDS_Binary_Operator (new in Unicode 3.2).
2298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        For programmatic determination of
2308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Ideographic Description Sequences. @stable ICU 2.1 */
2318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_IDS_BINARY_OPERATOR,
2328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property IDS_Trinary_Operator (new in Unicode 3.2).
2338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        For programmatic determination of
2348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Ideographic Description Sequences. @stable ICU 2.1 */
2358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_IDS_TRINARY_OPERATOR,
2368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property Join_Control.
2378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Format controls for cursive joining and ligation. @stable ICU 2.1 */
2388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_JOIN_CONTROL,
2398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property Logical_Order_Exception (new in Unicode 3.2).
2408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Characters that do not use logical order and
2418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        require special handling in most processing. @stable ICU 2.1 */
2428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_LOGICAL_ORDER_EXCEPTION,
2438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property Lowercase. Same as u_isULowercase, different from u_islower.
2448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Ll+Other_Lowercase @stable ICU 2.1 */
2458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_LOWERCASE,
2468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property Math. Sm+Other_Math @stable ICU 2.1 */
2478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_MATH,
2488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property Noncharacter_Code_Point.
2498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Code points that are explicitly defined as illegal
2508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        for the encoding of characters. @stable ICU 2.1 */
2518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_NONCHARACTER_CODE_POINT,
2528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property Quotation_Mark. @stable ICU 2.1 */
2538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_QUOTATION_MARK,
2548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property Radical (new in Unicode 3.2).
2558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        For programmatic determination of
2568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Ideographic Description Sequences. @stable ICU 2.1 */
2578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_RADICAL,
2588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property Soft_Dotted (new in Unicode 3.2).
2598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Characters with a "soft dot", like i or j.
2608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        An accent placed on these characters causes
2618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        the dot to disappear. @stable ICU 2.1 */
2628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_SOFT_DOTTED,
2638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property Terminal_Punctuation.
2648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Punctuation characters that generally mark
2658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        the end of textual units. @stable ICU 2.1 */
2668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_TERMINAL_PUNCTUATION,
2678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property Unified_Ideograph (new in Unicode 3.2).
2688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        For programmatic determination of
2698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Ideographic Description Sequences. @stable ICU 2.1 */
2708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_UNIFIED_IDEOGRAPH,
2718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property Uppercase. Same as u_isUUppercase, different from u_isupper.
2728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Lu+Other_Uppercase @stable ICU 2.1 */
2738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_UPPERCASE,
2748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property White_Space.
2758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Same as u_isUWhiteSpace, different from u_isspace and u_isWhitespace.
2768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Space characters+TAB+CR+LF-ZWSP-ZWNBSP @stable ICU 2.1 */
2778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_WHITE_SPACE,
2788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property XID_Continue.
2798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        ID_Continue modified to allow closure under
2808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        normalization forms NFKC and NFKD. @stable ICU 2.1 */
2818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_XID_CONTINUE,
2828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property XID_Start. ID_Start modified to allow
2838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        closure under normalization forms NFKC and NFKD. @stable ICU 2.1 */
2848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_XID_START,
2858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property Case_Sensitive. Either the source of a case
2868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        mapping or _in_ the target of a case mapping. Not the same as
2878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        the general category Cased_Letter. @stable ICU 2.6 */
2888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_CASE_SENSITIVE,
2898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property STerm (new in Unicode 4.0.1).
2908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Sentence Terminal. Used in UAX #29: Text Boundaries
2918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        (http://www.unicode.org/reports/tr29/)
2928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @draft ICU 3.0 */
2938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_S_TERM,
2948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property Variation_Selector (new in Unicode 4.0.1).
2958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Indicates all those characters that qualify as Variation Selectors.
2968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        For details on the behavior of these characters,
2978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        see StandardizedVariants.html and 15.6 Variation Selectors.
2988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @draft ICU 3.0 */
2998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_VARIATION_SELECTOR,
3008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property NFD_Inert.
3018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        ICU-specific property for characters that are inert under NFD,
3028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        i.e., they do not interact with adjacent characters.
3038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Used for example in normalizing transforms in incremental mode
3048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        to find the boundary of safely normalizable text despite possible
3058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        text additions.
3068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
3078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        There is one such property per normalization form.
3088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        These properties are computed as follows - an inert character is:
3098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        a) unassigned, or ALL of the following:
3108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        b) of combining class 0.
3118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        c) not decomposed by this normalization form.
3128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        AND if NFC or NFKC,
3138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        d) can never compose with a previous character.
3148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        e) can never compose with a following character.
3158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        f) can never change if another character is added.
3168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project           Example: a-breve might satisfy all but f, but if you
3178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project           add an ogonek it changes to a-ogonek + breve
3188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
3198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        See also com.ibm.text.UCD.NFSkippable in the ICU4J repository,
3208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        and icu/source/common/unormimp.h .
3218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @draft ICU 3.0 */
3228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_NFD_INERT,
3238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property NFKD_Inert.
3248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        ICU-specific property for characters that are inert under NFKD,
3258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        i.e., they do not interact with adjacent characters.
3268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Used for example in normalizing transforms in incremental mode
3278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        to find the boundary of safely normalizable text despite possible
3288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        text additions.
3298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @see UCHAR_NFD_INERT
3308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @draft ICU 3.0 */
3318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_NFKD_INERT,
3328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property NFC_Inert.
3338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        ICU-specific property for characters that are inert under NFC,
3348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        i.e., they do not interact with adjacent characters.
3358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Used for example in normalizing transforms in incremental mode
3368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        to find the boundary of safely normalizable text despite possible
3378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        text additions.
3388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @see UCHAR_NFD_INERT
3398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @draft ICU 3.0 */
3408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_NFC_INERT,
3418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary property NFKC_Inert.
3428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        ICU-specific property for characters that are inert under NFKC,
3438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        i.e., they do not interact with adjacent characters.
3448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Used for example in normalizing transforms in incremental mode
3458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        to find the boundary of safely normalizable text despite possible
3468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        text additions.
3478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @see UCHAR_NFD_INERT
3488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @draft ICU 3.0 */
3498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_NFKC_INERT,
3508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Binary Property Segment_Starter.
3518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        ICU-specific property for characters that are starters in terms of
3528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Unicode normalization and combining character sequences.
3538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        They have ccc=0 and do not occur in non-initial position of the
3548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        canonical decomposition of any character
3558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        (like " in NFD(a-umlaut) and a Jamo T in an NFD(Hangul LVT)).
3568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        ICU uses this property for segmenting a string for generating a set of
3578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        canonically equivalent strings, e.g. for canonical closure while
3588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        processing collation tailoring rules.
3598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @draft ICU 3.0 */
3608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_SEGMENT_STARTER,
3618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** One more than the last constant for binary Unicode properties. @stable ICU 2.1 */
3628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_BINARY_LIMIT,
3638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
3648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Enumerated property Bidi_Class.
3658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Same as u_charDirection, returns UCharDirection values. @stable ICU 2.2 */
3668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_BIDI_CLASS=0x1000,
3678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** First constant for enumerated/integer Unicode properties. @stable ICU 2.2 */
3688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_INT_START=UCHAR_BIDI_CLASS,
3698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Enumerated property Block.
3708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Same as ublock_getCode, returns UBlockCode values. @stable ICU 2.2 */
3718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_BLOCK,
3728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Enumerated property Canonical_Combining_Class.
3738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Same as u_getCombiningClass, returns 8-bit numeric values. @stable ICU 2.2 */
3748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_CANONICAL_COMBINING_CLASS,
3758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Enumerated property Decomposition_Type.
3768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Returns UDecompositionType values. @stable ICU 2.2 */
3778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_DECOMPOSITION_TYPE,
3788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Enumerated property East_Asian_Width.
3798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        See http://www.unicode.org/reports/tr11/
3808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Returns UEastAsianWidth values. @stable ICU 2.2 */
3818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_EAST_ASIAN_WIDTH,
3828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Enumerated property General_Category.
3838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Same as u_charType, returns UCharCategory values. @stable ICU 2.2 */
3848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_GENERAL_CATEGORY,
3858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Enumerated property Joining_Group.
3868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Returns UJoiningGroup values. @stable ICU 2.2 */
3878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_JOINING_GROUP,
3888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Enumerated property Joining_Type.
3898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Returns UJoiningType values. @stable ICU 2.2 */
3908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_JOINING_TYPE,
3918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Enumerated property Line_Break.
3928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Returns ULineBreak values. @stable ICU 2.2 */
3938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_LINE_BREAK,
3948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Enumerated property Numeric_Type.
3958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Returns UNumericType values. @stable ICU 2.2 */
3968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_NUMERIC_TYPE,
3978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Enumerated property Script.
3988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Same as uscript_getScript, returns UScriptCode values. @stable ICU 2.2 */
3998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_SCRIPT,
4008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Enumerated property Hangul_Syllable_Type, new in Unicode 4.
4018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Returns UHangulSyllableType values. @stable ICU 2.6 */
4028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_HANGUL_SYLLABLE_TYPE,
4038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Enumerated property NFD_Quick_Check.
4048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Returns UNormalizationCheckResult values. @draft ICU 3.0 */
4058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_NFD_QUICK_CHECK,
4068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Enumerated property NFKD_Quick_Check.
4078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Returns UNormalizationCheckResult values. @draft ICU 3.0 */
4088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_NFKD_QUICK_CHECK,
4098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Enumerated property NFC_Quick_Check.
4108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Returns UNormalizationCheckResult values. @draft ICU 3.0 */
4118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_NFC_QUICK_CHECK,
4128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Enumerated property NFKC_Quick_Check.
4138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Returns UNormalizationCheckResult values. @draft ICU 3.0 */
4148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_NFKC_QUICK_CHECK,
4158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Enumerated property Lead_Canonical_Combining_Class.
4168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        ICU-specific property for the ccc of the first code point
4178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        of the decomposition, or lccc(c)=ccc(NFD(c)[0]).
4188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Useful for checking for canonically ordered text;
4198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        see UNORM_FCD and http://www.unicode.org/notes/tn5/#FCD .
4208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Returns 8-bit numeric values like UCHAR_CANONICAL_COMBINING_CLASS. @draft ICU 3.0 */
4218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_LEAD_CANONICAL_COMBINING_CLASS,
4228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Enumerated property Trail_Canonical_Combining_Class.
4238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        ICU-specific property for the ccc of the last code point
4248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        of the decomposition, or tccc(c)=ccc(NFD(c)[last]).
4258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Useful for checking for canonically ordered text;
4268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        see UNORM_FCD and http://www.unicode.org/notes/tn5/#FCD .
4278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Returns 8-bit numeric values like UCHAR_CANONICAL_COMBINING_CLASS. @draft ICU 3.0 */
4288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_TRAIL_CANONICAL_COMBINING_CLASS,
4298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** One more than the last constant for enumerated/integer Unicode properties. @stable ICU 2.2 */
4308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_INT_LIMIT,
4318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
4328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Bitmask property General_Category_Mask.
4338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        This is the General_Category property returned as a bit mask.
4348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        When used in u_getIntPropertyValue(c), same as U_MASK(u_charType(c)),
4358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        returns bit masks for UCharCategory values where exactly one bit is set.
4368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        When used with u_getPropertyValueName() and u_getPropertyValueEnum(),
4378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        a multi-bit mask is used for sets of categories like "Letters".
4388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Mask values should be cast to uint32_t.
4398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        @stable ICU 2.4 */
4408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_GENERAL_CATEGORY_MASK=0x2000,
4418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** First constant for bit-mask Unicode properties. @stable ICU 2.4 */
4428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_MASK_START=UCHAR_GENERAL_CATEGORY_MASK,
4438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** One more than the last constant for bit-mask Unicode properties. @stable ICU 2.4 */
4448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_MASK_LIMIT,
4458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
4468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Double property Numeric_Value.
4478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Corresponds to u_getNumericValue. @stable ICU 2.4 */
4488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_NUMERIC_VALUE=0x3000,
4498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** First constant for double Unicode properties. @stable ICU 2.4 */
4508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_DOUBLE_START=UCHAR_NUMERIC_VALUE,
4518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** One more than the last constant for double Unicode properties. @stable ICU 2.4 */
4528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_DOUBLE_LIMIT,
4538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
4548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** String property Age.
4558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Corresponds to u_charAge. @stable ICU 2.4 */
4568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_AGE=0x4000,
4578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** First constant for string Unicode properties. @stable ICU 2.4 */
4588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_STRING_START=UCHAR_AGE,
4598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** String property Bidi_Mirroring_Glyph.
4608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Corresponds to u_charMirror. @stable ICU 2.4 */
4618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_BIDI_MIRRORING_GLYPH,
4628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** String property Case_Folding.
4638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Corresponds to u_strFoldCase in ustring.h. @stable ICU 2.4 */
4648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_CASE_FOLDING,
4658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** String property ISO_Comment.
4668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Corresponds to u_getISOComment. @stable ICU 2.4 */
4678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_ISO_COMMENT,
4688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** String property Lowercase_Mapping.
4698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Corresponds to u_strToLower in ustring.h. @stable ICU 2.4 */
4708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_LOWERCASE_MAPPING,
4718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** String property Name.
4728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Corresponds to u_charName. @stable ICU 2.4 */
4738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_NAME,
4748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** String property Simple_Case_Folding.
4758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Corresponds to u_foldCase. @stable ICU 2.4 */
4768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_SIMPLE_CASE_FOLDING,
4778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** String property Simple_Lowercase_Mapping.
4788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Corresponds to u_tolower. @stable ICU 2.4 */
4798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_SIMPLE_LOWERCASE_MAPPING,
4808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** String property Simple_Titlecase_Mapping.
4818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Corresponds to u_totitle. @stable ICU 2.4 */
4828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_SIMPLE_TITLECASE_MAPPING,
4838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** String property Simple_Uppercase_Mapping.
4848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Corresponds to u_toupper. @stable ICU 2.4 */
4858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_SIMPLE_UPPERCASE_MAPPING,
4868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** String property Titlecase_Mapping.
4878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Corresponds to u_strToTitle in ustring.h. @stable ICU 2.4 */
4888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_TITLECASE_MAPPING,
4898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** String property Unicode_1_Name.
4908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Corresponds to u_charName. @stable ICU 2.4 */
4918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_UNICODE_1_NAME,
4928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** String property Uppercase_Mapping.
4938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        Corresponds to u_strToUpper in ustring.h. @stable ICU 2.4 */
4948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_UPPERCASE_MAPPING,
4958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** One more than the last constant for string Unicode properties. @stable ICU 2.4 */
4968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_STRING_LIMIT,
4978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
4988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Represents a nonexistent or invalid property or property value. @stable ICU 2.4 */
4998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UCHAR_INVALID_CODE = -1
5008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} UProperty;
5018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
5028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
5038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Data for enumerated Unicode general category types.
5048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * See http://www.unicode.org/Public/UNIDATA/UnicodeData.html .
5058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
5068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
5078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef enum UCharCategory
5088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{
5098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** See note !!.  Comments of the form "Cn" are read by genpname. */
5108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
5118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Non-category for unassigned and non-character code points. @stable ICU 2.0 */
5128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_UNASSIGNED              = 0,
5138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Cn "Other, Not Assigned (no characters in [UnicodeData.txt] have this property)" (same as U_UNASSIGNED!) @stable ICU 2.0 */
5148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_GENERAL_OTHER_TYPES     = 0,
5158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Lu @stable ICU 2.0 */
5168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_UPPERCASE_LETTER        = 1,
5178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Ll @stable ICU 2.0 */
5188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LOWERCASE_LETTER        = 2,
5198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Lt @stable ICU 2.0 */
5208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_TITLECASE_LETTER        = 3,
5218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Lm @stable ICU 2.0 */
5228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_MODIFIER_LETTER         = 4,
5238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Lo @stable ICU 2.0 */
5248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_OTHER_LETTER            = 5,
5258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Mn @stable ICU 2.0 */
5268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_NON_SPACING_MARK        = 6,
5278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Me @stable ICU 2.0 */
5288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_ENCLOSING_MARK          = 7,
5298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Mc @stable ICU 2.0 */
5308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_COMBINING_SPACING_MARK  = 8,
5318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Nd @stable ICU 2.0 */
5328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_DECIMAL_DIGIT_NUMBER    = 9,
5338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Nl @stable ICU 2.0 */
5348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LETTER_NUMBER           = 10,
5358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** No @stable ICU 2.0 */
5368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_OTHER_NUMBER            = 11,
5378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Zs @stable ICU 2.0 */
5388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_SPACE_SEPARATOR         = 12,
5398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Zl @stable ICU 2.0 */
5408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LINE_SEPARATOR          = 13,
5418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Zp @stable ICU 2.0 */
5428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_PARAGRAPH_SEPARATOR     = 14,
5438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Cc @stable ICU 2.0 */
5448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_CONTROL_CHAR            = 15,
5458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Cf @stable ICU 2.0 */
5468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_FORMAT_CHAR             = 16,
5478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Co @stable ICU 2.0 */
5488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_PRIVATE_USE_CHAR        = 17,
5498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Cs @stable ICU 2.0 */
5508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_SURROGATE               = 18,
5518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Pd @stable ICU 2.0 */
5528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_DASH_PUNCTUATION        = 19,
5538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Ps @stable ICU 2.0 */
5548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_START_PUNCTUATION       = 20,
5558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Pe @stable ICU 2.0 */
5568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_END_PUNCTUATION         = 21,
5578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Pc @stable ICU 2.0 */
5588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_CONNECTOR_PUNCTUATION   = 22,
5598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Po @stable ICU 2.0 */
5608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_OTHER_PUNCTUATION       = 23,
5618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Sm @stable ICU 2.0 */
5628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_MATH_SYMBOL             = 24,
5638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Sc @stable ICU 2.0 */
5648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_CURRENCY_SYMBOL         = 25,
5658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Sk @stable ICU 2.0 */
5668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_MODIFIER_SYMBOL         = 26,
5678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** So @stable ICU 2.0 */
5688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_OTHER_SYMBOL            = 27,
5698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Pi @stable ICU 2.0 */
5708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_INITIAL_PUNCTUATION     = 28,
5718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Pf @stable ICU 2.0 */
5728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_FINAL_PUNCTUATION       = 29,
5738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** One higher than the last enum UCharCategory constant. @stable ICU 2.0 */
5748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_CHAR_CATEGORY_COUNT
5758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} UCharCategory;
5768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
5778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
5788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * U_GC_XX_MASK constants are bit flags corresponding to Unicode
5798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * general category values.
5808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * For each category, the nth bit is set if the numeric value of the
5818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * corresponding UCharCategory constant is n.
5828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
5838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * There are also some U_GC_Y_MASK constants for groups of general categories
5848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * like L for all letter categories.
5858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
5868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_charType
5878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see U_GET_GC_MASK
5888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UCharCategory
5898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.1
5908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
5918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_CN_MASK    U_MASK(U_GENERAL_OTHER_TYPES)
5928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
5938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for a UCharCategory. @stable ICU 2.1 */
5948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_LU_MASK    U_MASK(U_UPPERCASE_LETTER)
5958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for a UCharCategory. @stable ICU 2.1 */
5968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_LL_MASK    U_MASK(U_LOWERCASE_LETTER)
5978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for a UCharCategory. @stable ICU 2.1 */
5988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_LT_MASK    U_MASK(U_TITLECASE_LETTER)
5998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_LM_MASK    U_MASK(U_MODIFIER_LETTER)
6018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_LO_MASK    U_MASK(U_OTHER_LETTER)
6038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
6048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_MN_MASK    U_MASK(U_NON_SPACING_MARK)
6068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_ME_MASK    U_MASK(U_ENCLOSING_MARK)
6088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_MC_MASK    U_MASK(U_COMBINING_SPACING_MARK)
6108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
6118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_ND_MASK    U_MASK(U_DECIMAL_DIGIT_NUMBER)
6138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_NL_MASK    U_MASK(U_LETTER_NUMBER)
6158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_NO_MASK    U_MASK(U_OTHER_NUMBER)
6178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
6188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_ZS_MASK    U_MASK(U_SPACE_SEPARATOR)
6208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_ZL_MASK    U_MASK(U_LINE_SEPARATOR)
6228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_ZP_MASK    U_MASK(U_PARAGRAPH_SEPARATOR)
6248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
6258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_CC_MASK    U_MASK(U_CONTROL_CHAR)
6278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_CF_MASK    U_MASK(U_FORMAT_CHAR)
6298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_CO_MASK    U_MASK(U_PRIVATE_USE_CHAR)
6318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_CS_MASK    U_MASK(U_SURROGATE)
6338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
6348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_PD_MASK    U_MASK(U_DASH_PUNCTUATION)
6368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_PS_MASK    U_MASK(U_START_PUNCTUATION)
6388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_PE_MASK    U_MASK(U_END_PUNCTUATION)
6408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_PC_MASK    U_MASK(U_CONNECTOR_PUNCTUATION)
6428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_PO_MASK    U_MASK(U_OTHER_PUNCTUATION)
6448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
6458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_SM_MASK    U_MASK(U_MATH_SYMBOL)
6478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_SC_MASK    U_MASK(U_CURRENCY_SYMBOL)
6498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_SK_MASK    U_MASK(U_MODIFIER_SYMBOL)
6518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_SO_MASK    U_MASK(U_OTHER_SYMBOL)
6538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
6548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_PI_MASK    U_MASK(U_INITIAL_PUNCTUATION)
6568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for a UCharCategory. @stable ICU 2.1 */
6578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_PF_MASK    U_MASK(U_FINAL_PUNCTUATION)
6588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
6598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
6608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for multiple UCharCategory bits (L Letters). @stable ICU 2.1 */
6618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_L_MASK \
6628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            (U_GC_LU_MASK|U_GC_LL_MASK|U_GC_LT_MASK|U_GC_LM_MASK|U_GC_LO_MASK)
6638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
6648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for multiple UCharCategory bits (LC Cased Letters). @stable ICU 2.1 */
6658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_LC_MASK \
6668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            (U_GC_LU_MASK|U_GC_LL_MASK|U_GC_LT_MASK)
6678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
6688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for multiple UCharCategory bits (M Marks). @stable ICU 2.1 */
6698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_M_MASK (U_GC_MN_MASK|U_GC_ME_MASK|U_GC_MC_MASK)
6708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
6718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for multiple UCharCategory bits (N Numbers). @stable ICU 2.1 */
6728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_N_MASK (U_GC_ND_MASK|U_GC_NL_MASK|U_GC_NO_MASK)
6738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
6748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for multiple UCharCategory bits (Z Separators). @stable ICU 2.1 */
6758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_Z_MASK (U_GC_ZS_MASK|U_GC_ZL_MASK|U_GC_ZP_MASK)
6768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
6778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for multiple UCharCategory bits (C Others). @stable ICU 2.1 */
6788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_C_MASK \
6798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            (U_GC_CN_MASK|U_GC_CC_MASK|U_GC_CF_MASK|U_GC_CO_MASK|U_GC_CS_MASK)
6808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
6818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for multiple UCharCategory bits (P Punctuation). @stable ICU 2.1 */
6828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_P_MASK \
6838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            (U_GC_PD_MASK|U_GC_PS_MASK|U_GC_PE_MASK|U_GC_PC_MASK|U_GC_PO_MASK| \
6848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project             U_GC_PI_MASK|U_GC_PF_MASK)
6858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
6868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Mask constant for multiple UCharCategory bits (S Symbols). @stable ICU 2.1 */
6878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GC_S_MASK (U_GC_SM_MASK|U_GC_SC_MASK|U_GC_SK_MASK|U_GC_SO_MASK)
6888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
6898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
6908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This specifies the language directional property of a character set.
6918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
6928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
6938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef enum UCharDirection {
6948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** See note !!.  Comments of the form "EN" are read by genpname. */
6958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
6968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** L @stable ICU 2.0 */
6978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LEFT_TO_RIGHT               = 0,
6988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** R @stable ICU 2.0 */
6998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_RIGHT_TO_LEFT               = 1,
7008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** EN @stable ICU 2.0 */
7018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_EUROPEAN_NUMBER             = 2,
7028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** ES @stable ICU 2.0 */
7038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_EUROPEAN_NUMBER_SEPARATOR   = 3,
7048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** ET @stable ICU 2.0 */
7058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_EUROPEAN_NUMBER_TERMINATOR  = 4,
7068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** AN @stable ICU 2.0 */
7078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_ARABIC_NUMBER               = 5,
7088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** CS @stable ICU 2.0 */
7098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_COMMON_NUMBER_SEPARATOR     = 6,
7108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** B @stable ICU 2.0 */
7118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_BLOCK_SEPARATOR             = 7,
7128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** S @stable ICU 2.0 */
7138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_SEGMENT_SEPARATOR           = 8,
7148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** WS @stable ICU 2.0 */
7158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_WHITE_SPACE_NEUTRAL         = 9,
7168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** ON @stable ICU 2.0 */
7178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_OTHER_NEUTRAL               = 10,
7188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** LRE @stable ICU 2.0 */
7198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LEFT_TO_RIGHT_EMBEDDING     = 11,
7208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** LRO @stable ICU 2.0 */
7218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LEFT_TO_RIGHT_OVERRIDE      = 12,
7228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** AL @stable ICU 2.0 */
7238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_RIGHT_TO_LEFT_ARABIC        = 13,
7248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** RLE @stable ICU 2.0 */
7258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_RIGHT_TO_LEFT_EMBEDDING     = 14,
7268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** RLO @stable ICU 2.0 */
7278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_RIGHT_TO_LEFT_OVERRIDE      = 15,
7288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** PDF @stable ICU 2.0 */
7298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_POP_DIRECTIONAL_FORMAT      = 16,
7308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** NSM @stable ICU 2.0 */
7318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_DIR_NON_SPACING_MARK        = 17,
7328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** BN @stable ICU 2.0 */
7338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_BOUNDARY_NEUTRAL            = 18,
7348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
7358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_CHAR_DIRECTION_COUNT
7368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} UCharDirection;
7378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
7388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
7398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Constants for Unicode blocks, see the Unicode Data file Blocks.txt
7408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
7418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
7428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectenum UBlockCode {
7438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
7448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** New No_Block value in Unicode 4. @stable ICU 2.6 */
7458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_NO_BLOCK = 0, /*[none]*/ /* Special range indicating No_Block */
7468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
7478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
7488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_BASIC_LATIN = 1, /*[0000]*/ /*See note !!*/
7498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
7508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
7518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_LATIN_1_SUPPLEMENT=2, /*[0080]*/
7528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
7538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
7548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_LATIN_EXTENDED_A =3, /*[0100]*/
7558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
7568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
7578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_LATIN_EXTENDED_B =4, /*[0180]*/
7588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
7598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
7608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_IPA_EXTENSIONS =5, /*[0250]*/
7618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
7628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
7638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_SPACING_MODIFIER_LETTERS =6, /*[02B0]*/
7648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
7658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
7668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_COMBINING_DIACRITICAL_MARKS =7, /*[0300]*/
7678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
7688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /**
7698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project     * Unicode 3.2 renames this block to "Greek and Coptic".
7708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project     * @stable ICU 2.0
7718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project     */
7728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_GREEK =8, /*[0370]*/
7738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
7748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
7758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_CYRILLIC =9, /*[0400]*/
7768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
7778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
7788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_ARMENIAN =10, /*[0530]*/
7798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
7808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
7818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_HEBREW =11, /*[0590]*/
7828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
7838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
7848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_ARABIC =12, /*[0600]*/
7858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
7868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
7878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_SYRIAC =13, /*[0700]*/
7888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
7898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
7908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_THAANA =14, /*[0780]*/
7918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
7928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
7938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_DEVANAGARI =15, /*[0900]*/
7948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
7958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
7968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_BENGALI =16, /*[0980]*/
7978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
7988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
7998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_GURMUKHI =17, /*[0A00]*/
8008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
8018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
8028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_GUJARATI =18, /*[0A80]*/
8038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
8048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
8058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_ORIYA =19, /*[0B00]*/
8068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
8078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
8088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_TAMIL =20, /*[0B80]*/
8098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
8108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
8118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_TELUGU =21, /*[0C00]*/
8128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
8138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
8148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_KANNADA =22, /*[0C80]*/
8158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
8168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
8178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_MALAYALAM =23, /*[0D00]*/
8188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
8198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
8208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_SINHALA =24, /*[0D80]*/
8218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
8228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
8238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_THAI =25, /*[0E00]*/
8248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
8258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
8268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_LAO =26, /*[0E80]*/
8278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
8288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
8298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_TIBETAN =27, /*[0F00]*/
8308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
8318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
8328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_MYANMAR =28, /*[1000]*/
8338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
8348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
8358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_GEORGIAN =29, /*[10A0]*/
8368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
8378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
8388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_HANGUL_JAMO =30, /*[1100]*/
8398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
8408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
8418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_ETHIOPIC =31, /*[1200]*/
8428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
8438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
8448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_CHEROKEE =32, /*[13A0]*/
8458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
8468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
8478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS =33, /*[1400]*/
8488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
8498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
8508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_OGHAM =34, /*[1680]*/
8518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
8528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
8538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_RUNIC =35, /*[16A0]*/
8548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
8558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
8568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_KHMER =36, /*[1780]*/
8578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
8588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
8598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_MONGOLIAN =37, /*[1800]*/
8608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
8618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
8628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_LATIN_EXTENDED_ADDITIONAL =38, /*[1E00]*/
8638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
8648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
8658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_GREEK_EXTENDED =39, /*[1F00]*/
8668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
8678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
8688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_GENERAL_PUNCTUATION =40, /*[2000]*/
8698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
8708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
8718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_SUPERSCRIPTS_AND_SUBSCRIPTS =41, /*[2070]*/
8728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
8738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
8748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_CURRENCY_SYMBOLS =42, /*[20A0]*/
8758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
8768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /**
8778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project     * Unicode 3.2 renames this block to "Combining Diacritical Marks for Symbols".
8788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project     * @stable ICU 2.0
8798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project     */
8808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_COMBINING_MARKS_FOR_SYMBOLS =43, /*[20D0]*/
8818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
8828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
8838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_LETTERLIKE_SYMBOLS =44, /*[2100]*/
8848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
8858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
8868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_NUMBER_FORMS =45, /*[2150]*/
8878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
8888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
8898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_ARROWS =46, /*[2190]*/
8908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
8918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
8928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_MATHEMATICAL_OPERATORS =47, /*[2200]*/
8938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
8948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
8958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_MISCELLANEOUS_TECHNICAL =48, /*[2300]*/
8968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
8978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
8988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_CONTROL_PICTURES =49, /*[2400]*/
8998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
9008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
9018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_OPTICAL_CHARACTER_RECOGNITION =50, /*[2440]*/
9028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
9038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
9048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_ENCLOSED_ALPHANUMERICS =51, /*[2460]*/
9058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
9068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
9078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_BOX_DRAWING =52, /*[2500]*/
9088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
9098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
9108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_BLOCK_ELEMENTS =53, /*[2580]*/
9118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
9128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
9138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_GEOMETRIC_SHAPES =54, /*[25A0]*/
9148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
9158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
9168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_MISCELLANEOUS_SYMBOLS =55, /*[2600]*/
9178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
9188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
9198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_DINGBATS =56, /*[2700]*/
9208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
9218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
9228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_BRAILLE_PATTERNS =57, /*[2800]*/
9238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
9248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
9258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_CJK_RADICALS_SUPPLEMENT =58, /*[2E80]*/
9268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
9278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
9288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_KANGXI_RADICALS =59, /*[2F00]*/
9298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
9308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
9318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_IDEOGRAPHIC_DESCRIPTION_CHARACTERS =60, /*[2FF0]*/
9328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
9338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
9348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_CJK_SYMBOLS_AND_PUNCTUATION =61, /*[3000]*/
9358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
9368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
9378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_HIRAGANA =62, /*[3040]*/
9388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
9398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
9408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_KATAKANA =63, /*[30A0]*/
9418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
9428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
9438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_BOPOMOFO =64, /*[3100]*/
9448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
9458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
9468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_HANGUL_COMPATIBILITY_JAMO =65, /*[3130]*/
9478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
9488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
9498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_KANBUN =66, /*[3190]*/
9508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
9518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
9528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_BOPOMOFO_EXTENDED =67, /*[31A0]*/
9538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
9548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
9558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_ENCLOSED_CJK_LETTERS_AND_MONTHS =68, /*[3200]*/
9568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
9578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
9588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_CJK_COMPATIBILITY =69, /*[3300]*/
9598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
9608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
9618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A =70, /*[3400]*/
9628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
9638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
9648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_CJK_UNIFIED_IDEOGRAPHS =71, /*[4E00]*/
9658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
9668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
9678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_YI_SYLLABLES =72, /*[A000]*/
9688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
9698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
9708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_YI_RADICALS =73, /*[A490]*/
9718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
9728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
9738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_HANGUL_SYLLABLES =74, /*[AC00]*/
9748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
9758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
9768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_HIGH_SURROGATES =75, /*[D800]*/
9778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
9788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
9798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_HIGH_PRIVATE_USE_SURROGATES =76, /*[DB80]*/
9808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
9818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
9828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_LOW_SURROGATES =77, /*[DC00]*/
9838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
9848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /**
9858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project     * Same as UBLOCK_PRIVATE_USE_AREA.
9868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project     * Until Unicode 3.1.1, the corresponding block name was "Private Use",
9878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project     * and multiple code point ranges had this block.
9888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project     * Unicode 3.2 renames the block for the BMP PUA to "Private Use Area" and
9898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project     * adds separate blocks for the supplementary PUAs.
9908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project     *
9918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project     * @stable ICU 2.0
9928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project     */
9938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_PRIVATE_USE = 78,
9948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /**
9958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project     * Same as UBLOCK_PRIVATE_USE.
9968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project     * Until Unicode 3.1.1, the corresponding block name was "Private Use",
9978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project     * and multiple code point ranges had this block.
9988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project     * Unicode 3.2 renames the block for the BMP PUA to "Private Use Area" and
9998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project     * adds separate blocks for the supplementary PUAs.
10008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project     *
10018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project     * @stable ICU 2.0
10028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project     */
10038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_PRIVATE_USE_AREA =UBLOCK_PRIVATE_USE, /*[E000]*/
10048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
10058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
10068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS =79, /*[F900]*/
10078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
10088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
10098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_ALPHABETIC_PRESENTATION_FORMS =80, /*[FB00]*/
10108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
10118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
10128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_ARABIC_PRESENTATION_FORMS_A =81, /*[FB50]*/
10138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
10148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
10158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_COMBINING_HALF_MARKS =82, /*[FE20]*/
10168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
10178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
10188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_CJK_COMPATIBILITY_FORMS =83, /*[FE30]*/
10198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
10208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
10218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_SMALL_FORM_VARIANTS =84, /*[FE50]*/
10228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
10238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
10248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_ARABIC_PRESENTATION_FORMS_B =85, /*[FE70]*/
10258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
10268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
10278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_SPECIALS =86, /*[FFF0]*/
10288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
10298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
10308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS =87, /*[FF00]*/
10318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
10328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* New blocks in Unicode 3.1 */
10338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
10348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
10358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_OLD_ITALIC = 88  , /*[10300]*/
10368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
10378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_GOTHIC = 89 , /*[10330]*/
10388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
10398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_DESERET = 90 , /*[10400]*/
10408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
10418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_BYZANTINE_MUSICAL_SYMBOLS = 91 , /*[1D000]*/
10428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
10438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_MUSICAL_SYMBOLS = 92 , /*[1D100]*/
10448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
10458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_MATHEMATICAL_ALPHANUMERIC_SYMBOLS = 93  , /*[1D400]*/
10468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
10478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B  = 94 , /*[20000]*/
10488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
10498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT = 95 , /*[2F800]*/
10508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
10518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_TAGS = 96, /*[E0000]*/
10528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
10538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* New blocks in Unicode 3.2 */
10548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
10558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /**
10568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project     * Unicode 4.0.1 renames the "Cyrillic Supplementary" block to "Cyrillic Supplement".
10578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project     * @stable ICU 2.2
10588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project     */
10598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_CYRILLIC_SUPPLEMENTARY = 97,
10608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @draft ICU 3.0  */
10618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_CYRILLIC_SUPPLEMENT = UBLOCK_CYRILLIC_SUPPLEMENTARY, /*[0500]*/
10628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.2 */
10638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_TAGALOG = 98, /*[1700]*/
10648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.2 */
10658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_HANUNOO = 99, /*[1720]*/
10668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.2 */
10678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_BUHID = 100, /*[1740]*/
10688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.2 */
10698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_TAGBANWA = 101, /*[1760]*/
10708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.2 */
10718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A = 102, /*[27C0]*/
10728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.2 */
10738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_SUPPLEMENTAL_ARROWS_A = 103, /*[27F0]*/
10748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.2 */
10758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_SUPPLEMENTAL_ARROWS_B = 104, /*[2900]*/
10768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.2 */
10778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B = 105, /*[2980]*/
10788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.2 */
10798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_SUPPLEMENTAL_MATHEMATICAL_OPERATORS = 106, /*[2A00]*/
10808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.2 */
10818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_KATAKANA_PHONETIC_EXTENSIONS = 107, /*[31F0]*/
10828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.2 */
10838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_VARIATION_SELECTORS = 108, /*[FE00]*/
10848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.2 */
10858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_A = 109, /*[F0000]*/
10868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.2 */
10878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_B = 110, /*[100000]*/
10888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
10898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /* New blocks in Unicode 4 */
10908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
10918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.6 */
10928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_LIMBU = 111, /*[1900]*/
10938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.6 */
10948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_TAI_LE = 112, /*[1950]*/
10958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.6 */
10968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_KHMER_SYMBOLS = 113, /*[19E0]*/
10978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.6 */
10988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_PHONETIC_EXTENSIONS = 114, /*[1D00]*/
10998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.6 */
11008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_MISCELLANEOUS_SYMBOLS_AND_ARROWS = 115, /*[2B00]*/
11018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.6 */
11028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_YIJING_HEXAGRAM_SYMBOLS = 116, /*[4DC0]*/
11038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.6 */
11048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_LINEAR_B_SYLLABARY = 117, /*[10000]*/
11058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.6 */
11068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_LINEAR_B_IDEOGRAMS = 118, /*[10080]*/
11078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.6 */
11088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_AEGEAN_NUMBERS = 119, /*[10100]*/
11098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.6 */
11108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_UGARITIC = 120, /*[10380]*/
11118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.6 */
11128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_SHAVIAN = 121, /*[10450]*/
11138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.6 */
11148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_OSMANYA = 122, /*[10480]*/
11158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.6 */
11168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_CYPRIOT_SYLLABARY = 123, /*[10800]*/
11178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.6 */
11188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_TAI_XUAN_JING_SYMBOLS = 124, /*[1D300]*/
11198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.6 */
11208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_VARIATION_SELECTORS_SUPPLEMENT = 125, /*[E0100]*/
11218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
11228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
11238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_COUNT,
11248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
11258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** @stable ICU 2.0 */
11268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    UBLOCK_INVALID_CODE=-1
11278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project};
11288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
11298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** @stable ICU 2.0 */
11308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef enum UBlockCode UBlockCode;
11318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
11328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
11338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * East Asian Width constants.
11348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
11358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UCHAR_EAST_ASIAN_WIDTH
11368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_getIntPropertyValue
11378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.2
11388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
11398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef enum UEastAsianWidth {
11408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_EA_NEUTRAL,   /*[N]*/ /*See note !!*/
11418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_EA_AMBIGUOUS, /*[A]*/
11428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_EA_HALFWIDTH, /*[H]*/
11438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_EA_FULLWIDTH, /*[F]*/
11448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_EA_NARROW,    /*[Na]*/
11458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_EA_WIDE,      /*[W]*/
11468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_EA_COUNT
11478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} UEastAsianWidth;
11488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*
11498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Implementation note:
11508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Keep UEastAsianWidth constant values in sync with names list in genprops/props2.c.
11518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
11528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
11538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
11548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Selector constants for u_charName().
11558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * u_charName() returns the "modern" name of a
11568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Unicode character; or the name that was defined in
11578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Unicode version 1.0, before the Unicode standard merged
11588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * with ISO-10646; or an "extended" name that gives each
11598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Unicode code point a unique name.
11608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
11618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_charName
11628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
11638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
11648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef enum UCharNameChoice {
11658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_UNICODE_CHAR_NAME,
11668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_UNICODE_10_CHAR_NAME,
11678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_EXTENDED_CHAR_NAME,
11688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_CHAR_NAME_CHOICE_COUNT
11698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} UCharNameChoice;
11708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
11718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
11728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Selector constants for u_getPropertyName() and
11738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * u_getPropertyValueName().  These selectors are used to choose which
11748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * name is returned for a given property or value.  All properties and
11758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * values have a long name.  Most have a short name, but some do not.
11768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Unicode allows for additional names, beyond the long and short
11778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * name, which would be indicated by U_LONG_PROPERTY_NAME + i, where
11788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * i=1, 2,...
11798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
11808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_getPropertyName()
11818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_getPropertyValueName()
11828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.4
11838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
11848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef enum UPropertyNameChoice {
11858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_SHORT_PROPERTY_NAME,
11868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LONG_PROPERTY_NAME,
11878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_PROPERTY_NAME_CHOICE_COUNT
11888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} UPropertyNameChoice;
11898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
11908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
11918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Decomposition Type constants.
11928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
11938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UCHAR_DECOMPOSITION_TYPE
11948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.2
11958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
11968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef enum UDecompositionType {
11978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_DT_NONE,              /*[none]*/ /*See note !!*/
11988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_DT_CANONICAL,         /*[can]*/
11998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_DT_COMPAT,            /*[com]*/
12008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_DT_CIRCLE,            /*[enc]*/
12018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_DT_FINAL,             /*[fin]*/
12028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_DT_FONT,              /*[font]*/
12038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_DT_FRACTION,          /*[fra]*/
12048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_DT_INITIAL,           /*[init]*/
12058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_DT_ISOLATED,          /*[iso]*/
12068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_DT_MEDIAL,            /*[med]*/
12078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_DT_NARROW,            /*[nar]*/
12088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_DT_NOBREAK,           /*[nb]*/
12098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_DT_SMALL,             /*[sml]*/
12108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_DT_SQUARE,            /*[sqr]*/
12118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_DT_SUB,               /*[sub]*/
12128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_DT_SUPER,             /*[sup]*/
12138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_DT_VERTICAL,          /*[vert]*/
12148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_DT_WIDE,              /*[wide]*/
12158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_DT_COUNT /* 18 */
12168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} UDecompositionType;
12178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
12188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
12198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Joining Type constants.
12208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
12218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UCHAR_JOINING_TYPE
12228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.2
12238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
12248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef enum UJoiningType {
12258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JT_NON_JOINING,       /*[U]*/ /*See note !!*/
12268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JT_JOIN_CAUSING,      /*[C]*/
12278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JT_DUAL_JOINING,      /*[D]*/
12288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JT_LEFT_JOINING,      /*[L]*/
12298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JT_RIGHT_JOINING,     /*[R]*/
12308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JT_TRANSPARENT,       /*[T]*/
12318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JT_COUNT /* 6 */
12328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} UJoiningType;
12338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
12348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
12358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Joining Group constants.
12368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
12378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UCHAR_JOINING_GROUP
12388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.2
12398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
12408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef enum UJoiningGroup {
12418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_NO_JOINING_GROUP,
12428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_AIN,
12438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_ALAPH,
12448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_ALEF,
12458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_BEH,
12468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_BETH,
12478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_DAL,
12488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_DALATH_RISH,
12498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_E,
12508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_FEH,
12518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_FINAL_SEMKATH,
12528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_GAF,
12538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_GAMAL,
12548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_HAH,
12558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_HAMZA_ON_HEH_GOAL,
12568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_HE,
12578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_HEH,
12588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_HEH_GOAL,
12598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_HETH,
12608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_KAF,
12618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_KAPH,
12628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_KNOTTED_HEH,
12638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_LAM,
12648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_LAMADH,
12658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_MEEM,
12668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_MIM,
12678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_NOON,
12688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_NUN,
12698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_PE,
12708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_QAF,
12718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_QAPH,
12728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_REH,
12738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_REVERSED_PE,
12748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_SAD,
12758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_SADHE,
12768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_SEEN,
12778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_SEMKATH,
12788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_SHIN,
12798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_SWASH_KAF,
12808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_SYRIAC_WAW,
12818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_TAH,
12828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_TAW,
12838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_TEH_MARBUTA,
12848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_TETH,
12858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_WAW,
12868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_YEH,
12878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_YEH_BARREE,
12888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_YEH_WITH_TAIL,
12898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_YUDH,
12908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_YUDH_HE,
12918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_ZAIN,
12928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_FE,        /**< @stable ICU 2.6 */
12938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_KHAPH,     /**< @stable ICU 2.6 */
12948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_ZHAIN,     /**< @stable ICU 2.6 */
12958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_JG_COUNT
12968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} UJoiningGroup;
12978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
12988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
12998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Line Break constants.
13008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
13018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UCHAR_LINE_BREAK
13028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.2
13038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
13048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef enum ULineBreak {
13058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LB_UNKNOWN,           /*[XX]*/ /*See note !!*/
13068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LB_AMBIGUOUS,         /*[AI]*/
13078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LB_ALPHABETIC,        /*[AL]*/
13088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LB_BREAK_BOTH,        /*[B2]*/
13098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LB_BREAK_AFTER,       /*[BA]*/
13108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LB_BREAK_BEFORE,      /*[BB]*/
13118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LB_MANDATORY_BREAK,   /*[BK]*/
13128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LB_CONTINGENT_BREAK,  /*[CB]*/
13138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LB_CLOSE_PUNCTUATION, /*[CL]*/
13148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LB_COMBINING_MARK,    /*[CM]*/
13158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LB_CARRIAGE_RETURN,   /*[CR]*/
13168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LB_EXCLAMATION,       /*[EX]*/
13178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LB_GLUE,              /*[GL]*/
13188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LB_HYPHEN,            /*[HY]*/
13198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LB_IDEOGRAPHIC,       /*[ID]*/
13208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LB_INSEPERABLE,
13218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    /** Renamed from the misspelled "inseperable" in Unicode 4.0.1/ICU 3.0 @draft ICU 3.0 */
13228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LB_INSEPARABLE=U_LB_INSEPERABLE,/*[IN]*/
13238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LB_INFIX_NUMERIC,     /*[IS]*/
13248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LB_LINE_FEED,         /*[LF]*/
13258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LB_NONSTARTER,        /*[NS]*/
13268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LB_NUMERIC,           /*[NU]*/
13278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LB_OPEN_PUNCTUATION,  /*[OP]*/
13288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LB_POSTFIX_NUMERIC,   /*[PO]*/
13298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LB_PREFIX_NUMERIC,    /*[PR]*/
13308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LB_QUOTATION,         /*[QU]*/
13318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LB_COMPLEX_CONTEXT,   /*[SA]*/
13328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LB_SURROGATE,         /*[SG]*/
13338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LB_SPACE,             /*[SP]*/
13348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LB_BREAK_SYMBOLS,     /*[SY]*/
13358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LB_ZWSPACE,           /*[ZW]*/
13368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LB_NEXT_LINE,         /*[NL]*/ /* from here on: new in Unicode 4/ICU 2.6 */
13378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LB_WORD_JOINER,       /*[WJ]*/
13388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_LB_COUNT
13398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} ULineBreak;
13408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
13418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
13428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Numeric Type constants.
13438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
13448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UCHAR_NUMERIC_TYPE
13458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.2
13468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
13478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef enum UNumericType {
13488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_NT_NONE,              /*[None]*/ /*See note !!*/
13498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_NT_DECIMAL,           /*[de]*/
13508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_NT_DIGIT,             /*[di]*/
13518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_NT_NUMERIC,           /*[nu]*/
13528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_NT_COUNT
13538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} UNumericType;
13548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
13558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
13568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Hangul Syllable Type constants.
13578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
13588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UCHAR_HANGUL_SYLLABLE_TYPE
13598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.6
13608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
13618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef enum UHangulSyllableType {
13628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_HST_NOT_APPLICABLE,   /*[NA]*/ /*See note !!*/
13638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_HST_LEADING_JAMO,     /*[L]*/
13648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_HST_VOWEL_JAMO,       /*[V]*/
13658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_HST_TRAILING_JAMO,    /*[T]*/
13668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_HST_LV_SYLLABLE,      /*[LV]*/
13678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_HST_LVT_SYLLABLE,     /*[LVT]*/
13688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    U_HST_COUNT
13698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} UHangulSyllableType;
13708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
13718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
13728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Check a binary Unicode property for a code point.
13738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
13748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Unicode, especially in version 3.2, defines many more properties than the
13758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * original set in UnicodeData.txt.
13768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
13778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The properties APIs are intended to reflect Unicode properties as defined
13788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * in the Unicode Character Database (UCD) and Unicode Technical Reports (UTR).
13798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * For details about the properties see http://www.unicode.org/ucd/ .
13808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * For names of Unicode properties see the UCD file PropertyAliases.txt.
13818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
13828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Important: If ICU is built with UCD files from Unicode versions below 3.2,
13838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * then properties marked with "new in Unicode 3.2" are not or not fully available.
13848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
13858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c Code point to test.
13868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param which UProperty selector constant, identifies which binary property to check.
13878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *        Must be UCHAR_BINARY_START<=which<UCHAR_BINARY_LIMIT.
13888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return TRUE or FALSE according to the binary Unicode property value for c.
13898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         Also FALSE if 'which' is out of bounds or if the Unicode version
13908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         does not have data for the property at all, or not for this code point.
13918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
13928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UProperty
13938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_getIntPropertyValue
13948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_getUnicodeVersion
13958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.1
13968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
13978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UBool U_EXPORT2
13988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_hasBinaryProperty(UChar32 c, UProperty which);
13998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
14008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
14018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Check if a code point has the Alphabetic Unicode property.
14028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Same as u_hasBinaryProperty(c, UCHAR_ALPHABETIC).
14038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This is different from u_isalpha!
14048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c Code point to test
14058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return true if the code point has the Alphabetic Unicode property, false otherwise
14068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
14078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UCHAR_ALPHABETIC
14088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_isalpha
14098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_hasBinaryProperty
14108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.1
14118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
14128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UBool U_EXPORT2
14138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_isUAlphabetic(UChar32 c);
14148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
14158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
14168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Check if a code point has the Lowercase Unicode property.
14178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Same as u_hasBinaryProperty(c, UCHAR_LOWERCASE).
14188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This is different from u_islower!
14198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c Code point to test
14208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return true if the code point has the Lowercase Unicode property, false otherwise
14218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
14228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UCHAR_LOWERCASE
14238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_islower
14248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_hasBinaryProperty
14258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.1
14268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
14278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UBool U_EXPORT2
14288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_isULowercase(UChar32 c);
14298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
14308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
14318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Check if a code point has the Uppercase Unicode property.
14328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Same as u_hasBinaryProperty(c, UCHAR_UPPERCASE).
14338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This is different from u_isupper!
14348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c Code point to test
14358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return true if the code point has the Uppercase Unicode property, false otherwise
14368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
14378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UCHAR_UPPERCASE
14388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_isupper
14398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_hasBinaryProperty
14408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.1
14418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
14428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UBool U_EXPORT2
14438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_isUUppercase(UChar32 c);
14448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
14458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
14468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Check if a code point has the White_Space Unicode property.
14478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Same as u_hasBinaryProperty(c, UCHAR_WHITE_SPACE).
14488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This is different from both u_isspace and u_isWhitespace!
14498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
14508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Note: There are several ICU whitespace functions; please see the uchar.h
14518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * file documentation for a detailed comparison.
14528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
14538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c Code point to test
14548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return true if the code point has the White_Space Unicode property, false otherwise.
14558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
14568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UCHAR_WHITE_SPACE
14578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_isWhitespace
14588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_isspace
14598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_isJavaSpaceChar
14608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_hasBinaryProperty
14618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.1
14628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
14638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UBool U_EXPORT2
14648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_isUWhiteSpace(UChar32 c);
14658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
14668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
14678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Get the property value for an enumerated or integer Unicode property for a code point.
14688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Also returns binary and mask property values.
14698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
14708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Unicode, especially in version 3.2, defines many more properties than the
14718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * original set in UnicodeData.txt.
14728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
14738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The properties APIs are intended to reflect Unicode properties as defined
14748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * in the Unicode Character Database (UCD) and Unicode Technical Reports (UTR).
14758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * For details about the properties see http://www.unicode.org/ .
14768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * For names of Unicode properties see the UCD file PropertyAliases.txt.
14778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
14788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Sample usage:
14798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * UEastAsianWidth ea=(UEastAsianWidth)u_getIntPropertyValue(c, UCHAR_EAST_ASIAN_WIDTH);
14808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * UBool b=(UBool)u_getIntPropertyValue(c, UCHAR_IDEOGRAPHIC);
14818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
14828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c Code point to test.
14838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param which UProperty selector constant, identifies which property to check.
14848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *        Must be UCHAR_BINARY_START<=which<UCHAR_BINARY_LIMIT
14858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *        or UCHAR_INT_START<=which<UCHAR_INT_LIMIT
14868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *        or UCHAR_MASK_START<=which<UCHAR_MASK_LIMIT.
14878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return Numeric value that is directly the property value or,
14888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         for enumerated properties, corresponds to the numeric value of the enumerated
14898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         constant of the respective property value enumeration type
14908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         (cast to enum type if necessary).
14918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         Returns 0 or 1 (for FALSE/TRUE) for binary Unicode properties.
14928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         Returns a bit-mask for mask properties.
14938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         Returns 0 if 'which' is out of bounds or if the Unicode version
14948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         does not have data for the property at all, or not for this code point.
14958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
14968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UProperty
14978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_hasBinaryProperty
14988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_getIntPropertyMinValue
14998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_getIntPropertyMaxValue
15008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_getUnicodeVersion
15018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.2
15028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
15038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE int32_t U_EXPORT2
15048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_getIntPropertyValue(UChar32 c, UProperty which);
15058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
15068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
15078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Get the minimum value for an enumerated/integer/binary Unicode property.
15088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Can be used together with u_getIntPropertyMaxValue
15098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * to allocate arrays of UnicodeSet or similar.
15108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
15118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param which UProperty selector constant, identifies which binary property to check.
15128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *        Must be UCHAR_BINARY_START<=which<UCHAR_BINARY_LIMIT
15138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *        or UCHAR_INT_START<=which<UCHAR_INT_LIMIT.
15148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return Minimum value returned by u_getIntPropertyValue for a Unicode property.
15158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         0 if the property selector is out of range.
15168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
15178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UProperty
15188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_hasBinaryProperty
15198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_getUnicodeVersion
15208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_getIntPropertyMaxValue
15218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_getIntPropertyValue
15228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.2
15238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
15248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE int32_t U_EXPORT2
15258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_getIntPropertyMinValue(UProperty which);
15268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
15278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
15288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Get the maximum value for an enumerated/integer/binary Unicode property.
15298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Can be used together with u_getIntPropertyMinValue
15308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * to allocate arrays of UnicodeSet or similar.
15318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
15328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Examples for min/max values (for Unicode 3.2):
15338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
15348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * - UCHAR_BIDI_CLASS:    0/18 (U_LEFT_TO_RIGHT/U_BOUNDARY_NEUTRAL)
15358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * - UCHAR_SCRIPT:        0/45 (USCRIPT_COMMON/USCRIPT_TAGBANWA)
15368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * - UCHAR_IDEOGRAPHIC:   0/1  (FALSE/TRUE)
15378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
15388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * For undefined UProperty constant values, min/max values will be 0/-1.
15398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
15408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param which UProperty selector constant, identifies which binary property to check.
15418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *        Must be UCHAR_BINARY_START<=which<UCHAR_BINARY_LIMIT
15428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *        or UCHAR_INT_START<=which<UCHAR_INT_LIMIT.
15438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return Maximum value returned by u_getIntPropertyValue for a Unicode property.
15448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         <=0 if the property selector is out of range.
15458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
15468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UProperty
15478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_hasBinaryProperty
15488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_getUnicodeVersion
15498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_getIntPropertyMaxValue
15508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_getIntPropertyValue
15518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.2
15528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
15538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE int32_t U_EXPORT2
15548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_getIntPropertyMaxValue(UProperty which);
15558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
15568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
15578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Get the numeric value for a Unicode code point as defined in the
15588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Unicode Character Database.
15598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
15608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * A "double" return type is necessary because
15618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * some numeric values are fractions, negative, or too large for int32_t.
15628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
15638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * For characters without any numeric values in the Unicode Character Database,
15648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * this function will return U_NO_NUMERIC_VALUE.
15658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
15668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Similar to java.lang.Character.getNumericValue(), but u_getNumericValue()
15678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * also supports negative values, large values, and fractions,
15688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * while Java's getNumericValue() returns values 10..35 for ASCII letters.
15698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
15708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c Code point to get the numeric value for.
15718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return Numeric value of c, or U_NO_NUMERIC_VALUE if none is defined.
15728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
15738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see U_NO_NUMERIC_VALUE
15748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.2
15758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
15768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE double U_EXPORT2
15778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_getNumericValue(UChar32 c);
15788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
15798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
15808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Special value that is returned by u_getNumericValue when
15818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * no numeric value is defined for a code point.
15828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
15838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_getNumericValue
15848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.2
15858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
15868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_NO_NUMERIC_VALUE ((double)-123456789.)
15878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
15888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
15898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Determines whether the specified code point has the general category "Ll"
15908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (lowercase letter).
15918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
15928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Same as java.lang.Character.isLowerCase().
15938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
15948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This misses some characters that are also lowercase but
15958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * have a different general category value.
15968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * In order to include those, use UCHAR_LOWERCASE.
15978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
15988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * In addition to being equivalent to a Java function, this also serves
15998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * as a C/POSIX migration function.
16008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * See the comments about C/POSIX character classification functions in the
16018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * documentation at the top of this header file.
16028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
16038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c the code point to be tested
16048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return TRUE if the code point is an Ll lowercase letter
16058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
16068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UCHAR_LOWERCASE
16078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_isupper
16088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_istitle
16098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_islower
16108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
16118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
16128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UBool U_EXPORT2
16138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_islower(UChar32 c);
16148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
16158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
16168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Determines whether the specified code point has the general category "Lu"
16178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (uppercase letter).
16188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
16198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Same as java.lang.Character.isUpperCase().
16208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
16218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This misses some characters that are also uppercase but
16228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * have a different general category value.
16238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * In order to include those, use UCHAR_UPPERCASE.
16248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
16258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * In addition to being equivalent to a Java function, this also serves
16268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * as a C/POSIX migration function.
16278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * See the comments about C/POSIX character classification functions in the
16288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * documentation at the top of this header file.
16298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
16308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c the code point to be tested
16318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return TRUE if the code point is an Lu uppercase letter
16328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
16338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UCHAR_UPPERCASE
16348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_islower
16358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_istitle
16368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_tolower
16378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
16388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
16398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UBool U_EXPORT2
16408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_isupper(UChar32 c);
16418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
16428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
16438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Determines whether the specified code point is a titlecase letter.
16448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * True for general category "Lt" (titlecase letter).
16458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
16468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Same as java.lang.Character.isTitleCase().
16478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
16488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c the code point to be tested
16498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return TRUE if the code point is an Lt titlecase letter
16508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
16518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_isupper
16528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_islower
16538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_totitle
16548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
16558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
16568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UBool U_EXPORT2
16578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_istitle(UChar32 c);
16588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
16598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
16608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Determines whether the specified code point is a digit character according to Java.
16618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * True for characters with general category "Nd" (decimal digit numbers).
16628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Beginning with Unicode 4, this is the same as
16638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * testing for the Numeric_Type of Decimal.
16648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
16658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Same as java.lang.Character.isDigit().
16668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
16678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * In addition to being equivalent to a Java function, this also serves
16688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * as a C/POSIX migration function.
16698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * See the comments about C/POSIX character classification functions in the
16708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * documentation at the top of this header file.
16718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
16728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c the code point to be tested
16738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return TRUE if the code point is a digit character according to Character.isDigit()
16748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
16758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
16768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
16778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UBool U_EXPORT2
16788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_isdigit(UChar32 c);
16798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
16808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
16818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Determines whether the specified code point is a letter character.
16828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * True for general categories "L" (letters).
16838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
16848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Same as java.lang.Character.isLetter().
16858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
16868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * In addition to being equivalent to a Java function, this also serves
16878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * as a C/POSIX migration function.
16888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * See the comments about C/POSIX character classification functions in the
16898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * documentation at the top of this header file.
16908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
16918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c the code point to be tested
16928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return TRUE if the code point is a letter character
16938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
16948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_isdigit
16958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_isalnum
16968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
16978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
16988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UBool U_EXPORT2
16998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_isalpha(UChar32 c);
17008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
17018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
17028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Determines whether the specified code point is an alphanumeric character
17038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (letter or digit) according to Java.
17048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * True for characters with general categories
17058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * "L" (letters) and "Nd" (decimal digit numbers).
17068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
17078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Same as java.lang.Character.isLetterOrDigit().
17088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
17098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * In addition to being equivalent to a Java function, this also serves
17108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * as a C/POSIX migration function.
17118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * See the comments about C/POSIX character classification functions in the
17128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * documentation at the top of this header file.
17138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
17148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c the code point to be tested
17158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return TRUE if the code point is an alphanumeric character according to Character.isLetterOrDigit()
17168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
17178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
17188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
17198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UBool U_EXPORT2
17208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_isalnum(UChar32 c);
17218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
17228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
17238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Determines whether the specified code point is a hexadecimal digit.
17248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This is equivalent to u_digit(c, 16)>=0.
17258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * True for characters with general category "Nd" (decimal digit numbers)
17268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * as well as Latin letters a-f and A-F in both ASCII and Fullwidth ASCII.
17278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (That is, for letters with code points
17288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 0041..0046, 0061..0066, FF21..FF26, FF41..FF46.)
17298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
17308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * In order to narrow the definition of hexadecimal digits to only ASCII
17318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * characters, use (c<=0x7f && u_isxdigit(c)).
17328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
17338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This is a C/POSIX migration function.
17348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * See the comments about C/POSIX character classification functions in the
17358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * documentation at the top of this header file.
17368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
17378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c the code point to be tested
17388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return TRUE if the code point is a hexadecimal digit
17398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
17408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.6
17418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
17428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UBool U_EXPORT2
17438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_isxdigit(UChar32 c);
17448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
17458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
17468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Determines whether the specified code point is a punctuation character.
17478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * True for characters with general categories "P" (punctuation).
17488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
17498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This is a C/POSIX migration function.
17508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * See the comments about C/POSIX character classification functions in the
17518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * documentation at the top of this header file.
17528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
17538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c the code point to be tested
17548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return TRUE if the code point is a punctuation character
17558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
17568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.6
17578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
17588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UBool U_EXPORT2
17598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_ispunct(UChar32 c);
17608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
17618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
17628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Determines whether the specified code point is a "graphic" character
17638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (printable, excluding spaces).
17648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * TRUE for all characters except those with general categories
17658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * "Cc" (control codes), "Cf" (format controls), "Cs" (surrogates),
17668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * "Cn" (unassigned), and "Z" (separators).
17678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
17688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This is a C/POSIX migration function.
17698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * See the comments about C/POSIX character classification functions in the
17708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * documentation at the top of this header file.
17718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
17728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c the code point to be tested
17738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return TRUE if the code point is a "graphic" character
17748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
17758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.6
17768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
17778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UBool U_EXPORT2
17788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_isgraph(UChar32 c);
17798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
17808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
17818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Determines whether the specified code point is a "blank" or "horizontal space",
17828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * a character that visibly separates words on a line.
17838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The following are equivalent definitions:
17848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
17858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * TRUE for Unicode White_Space characters except for "vertical space controls"
17868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * where "vertical space controls" are the following characters:
17878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * U+000A (LF) U+000B (VT) U+000C (FF) U+000D (CR) U+0085 (NEL) U+2028 (LS) U+2029 (PS)
17888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
17898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * same as
17908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
17918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * TRUE for U+0009 (TAB) and characters with general category "Zs" (space separators)
17928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * except Zero Width Space (ZWSP, U+200B).
17938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
17948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Note: There are several ICU whitespace functions; please see the uchar.h
17958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * file documentation for a detailed comparison.
17968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
17978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This is a C/POSIX migration function.
17988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * See the comments about C/POSIX character classification functions in the
17998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * documentation at the top of this header file.
18008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
18018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c the code point to be tested
18028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return TRUE if the code point is a "blank"
18038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
18048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.6
18058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
18068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UBool U_EXPORT2
18078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_isblank(UChar32 c);
18088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
18098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
18108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Determines whether the specified code point is "defined",
18118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * which usually means that it is assigned a character.
18128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * True for general categories other than "Cn" (other, not assigned),
18138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * i.e., true for all code points mentioned in UnicodeData.txt.
18148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
18158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Note that non-character code points (e.g., U+FDD0) are not "defined"
18168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (they are Cn), but surrogate code points are "defined" (Cs).
18178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
18188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Same as java.lang.Character.isDefined().
18198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
18208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c the code point to be tested
18218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return TRUE if the code point is assigned a character
18228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
18238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_isdigit
18248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_isalpha
18258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_isalnum
18268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_isupper
18278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_islower
18288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_istitle
18298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
18308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
18318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UBool U_EXPORT2
18328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_isdefined(UChar32 c);
18338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
18348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
18358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Determines if the specified character is a space character or not.
18368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
18378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Note: There are several ICU whitespace functions; please see the uchar.h
18388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * file documentation for a detailed comparison.
18398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
18408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This is a C/POSIX migration function.
18418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * See the comments about C/POSIX character classification functions in the
18428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * documentation at the top of this header file.
18438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
18448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c    the character to be tested
18458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return  true if the character is a space character; false otherwise.
18468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
18478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_isJavaSpaceChar
18488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_isWhitespace
18498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_isUWhiteSpace
18508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
18518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
18528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UBool U_EXPORT2
18538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_isspace(UChar32 c);
18548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
18558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
18568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Determine if the specified code point is a space character according to Java.
18578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * True for characters with general categories "Z" (separators),
18588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * which does not include control codes (e.g., TAB or Line Feed).
18598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
18608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Same as java.lang.Character.isSpaceChar().
18618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
18628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Note: There are several ICU whitespace functions; please see the uchar.h
18638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * file documentation for a detailed comparison.
18648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
18658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c the code point to be tested
18668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return TRUE if the code point is a space character according to Character.isSpaceChar()
18678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
18688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_isspace
18698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_isWhitespace
18708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_isUWhiteSpace
18718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.6
18728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
18738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UBool U_EXPORT2
18748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_isJavaSpaceChar(UChar32 c);
18758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
18768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
18778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Determines if the specified code point is a whitespace character according to Java/ICU.
18788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * A character is considered to be a Java whitespace character if and only
18798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * if it satisfies one of the following criteria:
18808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
18818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * - It is a Unicode separator (categories "Z"), but is not
18828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *      a no-break space (U+00A0 NBSP or U+2007 Figure Space or U+202F Narrow NBSP).
18838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * - It is U+0009 HORIZONTAL TABULATION.
18848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * - It is U+000A LINE FEED.
18858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * - It is U+000B VERTICAL TABULATION.
18868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * - It is U+000C FORM FEED.
18878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * - It is U+000D CARRIAGE RETURN.
18888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * - It is U+001C FILE SEPARATOR.
18898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * - It is U+001D GROUP SEPARATOR.
18908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * - It is U+001E RECORD SEPARATOR.
18918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * - It is U+001F UNIT SEPARATOR.
18928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * - It is U+0085 NEXT LINE.
18938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
18948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Same as java.lang.Character.isWhitespace() except that Java omits U+0085.
18958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
18968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Note: There are several ICU whitespace functions; please see the uchar.h
18978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * file documentation for a detailed comparison.
18988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
18998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c the code point to be tested
19008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return TRUE if the code point is a whitespace character according to Java/ICU
19018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
19028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_isspace
19038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_isJavaSpaceChar
19048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_isUWhiteSpace
19058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
19068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
19078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UBool U_EXPORT2
19088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_isWhitespace(UChar32 c);
19098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
19108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
19118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Determines whether the specified code point is a control character
19128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (as defined by this function).
19138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * A control character is one of the following:
19148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * - ISO 8-bit control character (U+0000..U+001f and U+007f..U+009f)
19158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * - U_CONTROL_CHAR (Cc)
19168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * - U_FORMAT_CHAR (Cf)
19178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * - U_LINE_SEPARATOR (Zl)
19188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * - U_PARAGRAPH_SEPARATOR (Zp)
19198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
19208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This is a C/POSIX migration function.
19218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * See the comments about C/POSIX character classification functions in the
19228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * documentation at the top of this header file.
19238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
19248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c the code point to be tested
19258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return TRUE if the code point is a control character
19268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
19278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UCHAR_DEFAULT_IGNORABLE_CODE_POINT
19288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_isprint
19298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
19308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
19318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UBool U_EXPORT2
19328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_iscntrl(UChar32 c);
19338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
19348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
19358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Determines whether the specified code point is an ISO control code.
19368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * True for U+0000..U+001f and U+007f..U+009f (general category "Cc").
19378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
19388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Same as java.lang.Character.isISOControl().
19398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
19408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c the code point to be tested
19418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return TRUE if the code point is an ISO control code
19428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
19438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_iscntrl
19448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.6
19458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
19468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UBool U_EXPORT2
19478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_isISOControl(UChar32 c);
19488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
19498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
19508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Determines whether the specified code point is a printable character.
19518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * True for general categories <em>other</em> than "C" (controls).
19528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
19538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This is a C/POSIX migration function.
19548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * See the comments about C/POSIX character classification functions in the
19558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * documentation at the top of this header file.
19568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
19578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c the code point to be tested
19588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return TRUE if the code point is a printable character
19598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
19608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UCHAR_DEFAULT_IGNORABLE_CODE_POINT
19618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_iscntrl
19628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
19638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
19648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UBool U_EXPORT2
19658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_isprint(UChar32 c);
19668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
19678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
19688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Determines whether the specified code point is a base character.
19698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * True for general categories "L" (letters), "N" (numbers),
19708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * "Mc" (spacing combining marks), and "Me" (enclosing marks).
19718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
19728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Note that this is different from the Unicode definition in
19738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * chapter 3.5, conformance clause D13,
19748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * which defines base characters to be all characters (not Cn)
19758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * that do not graphically combine with preceding characters (M)
19768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * and that are neither control (Cc) or format (Cf) characters.
19778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
19788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c the code point to be tested
19798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return TRUE if the code point is a base character according to this function
19808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
19818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_isalpha
19828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_isdigit
19838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
19848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
19858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UBool U_EXPORT2
19868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_isbase(UChar32 c);
19878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
19888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
19898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Returns the bidirectional category value for the code point,
19908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * which is used in the Unicode bidirectional algorithm
19918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (UAX #9 http://www.unicode.org/reports/tr9/).
19928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Note that some <em>unassigned</em> code points have bidi values
19938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * of R or AL because they are in blocks that are reserved
19948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * for Right-To-Left scripts.
19958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
19968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Same as java.lang.Character.getDirectionality()
19978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
19988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c the code point to be tested
19998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return the bidirectional category (UCharDirection) value
20008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
20018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UCharDirection
20028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
20038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
20048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UCharDirection U_EXPORT2
20058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_charDirection(UChar32 c);
20068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
20078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
20088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Determines whether the code point has the Bidi_Mirrored property.
20098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This property is set for characters that are commonly used in
20108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Right-To-Left contexts and need to be displayed with a "mirrored"
20118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * glyph.
20128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
20138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Same as java.lang.Character.isMirrored().
20148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Same as UCHAR_BIDI_MIRRORED
20158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
20168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c the code point to be tested
20178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return TRUE if the character has the Bidi_Mirrored property
20188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
20198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UCHAR_BIDI_MIRRORED
20208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
20218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
20228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UBool U_EXPORT2
20238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_isMirrored(UChar32 c);
20248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
20258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
20268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Maps the specified character to a "mirror-image" character.
20278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * For characters with the Bidi_Mirrored property, implementations
20288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * sometimes need a "poor man's" mapping to another Unicode
20298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * character (code point) such that the default glyph may serve
20308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * as the mirror-image of the default glyph of the specified
20318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * character. This is useful for text conversion to and from
20328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * codepages with visual order, and for displays without glyph
20338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * selecetion capabilities.
20348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
20358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c the code point to be mapped
20368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return another Unicode code point that may serve as a mirror-image
20378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         substitute, or c itself if there is no such mapping or c
20388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         does not have the Bidi_Mirrored property
20398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
20408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UCHAR_BIDI_MIRRORED
20418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_isMirrored
20428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
20438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
20448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UChar32 U_EXPORT2
20458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_charMirror(UChar32 c);
20468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
20478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
20488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Returns the general category value for the code point.
20498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
20508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Same as java.lang.Character.getType().
20518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
20528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c the code point to be tested
20538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return the general category (UCharCategory) value
20548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
20558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UCharCategory
20568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
20578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
20588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE int8_t U_EXPORT2
20598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_charType(UChar32 c);
20608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
20618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
20628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Get a single-bit bit set for the general category of a character.
20638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This bit set can be compared bitwise with U_GC_SM_MASK, U_GC_L_MASK, etc.
20648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Same as U_MASK(u_charType(c)).
20658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
20668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c the code point to be tested
20678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return a single-bit mask corresponding to the general category (UCharCategory) value
20688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
20698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_charType
20708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UCharCategory
20718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see U_GC_CN_MASK
20728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.1
20738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
20748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_GET_GC_MASK(c) U_MASK(u_charType(c))
20758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
20768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
20778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Callback from u_enumCharTypes(), is called for each contiguous range
20788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * of code points c (where start<=c<limit)
20798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * with the same Unicode general category ("character type").
20808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
20818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The callback function can stop the enumeration by returning FALSE.
20828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
20838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param context an opaque pointer, as passed into utrie_enum()
20848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param start the first code point in a contiguous range with value
20858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param limit one past the last code point in a contiguous range with value
20868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param type the general category for all code points in [start..limit[
20878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return FALSE to stop the enumeration
20888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
20898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.1
20908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UCharCategory
20918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_enumCharTypes
20928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
20938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef UBool U_CALLCONV
20948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectUCharEnumTypeRange(const void *context, UChar32 start, UChar32 limit, UCharCategory type);
20958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
20968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
20978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Enumerate efficiently all code points with their Unicode general categories.
20988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
20998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This is useful for building data structures (e.g., UnicodeSet's),
21008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * for enumerating all assigned code points (type!=U_UNASSIGNED), etc.
21018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
21028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * For each contiguous range of code points with a given general category ("character type"),
21038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * the UCharEnumTypeRange function is called.
21048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Adjacent ranges have different types.
21058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The Unicode Standard guarantees that the numeric value of the type is 0..31.
21068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
21078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param enumRange a pointer to a function that is called for each contiguous range
21088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *                  of code points with the same general category
21098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param context an opaque pointer that is passed on to the callback function
21108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
21118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.1
21128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UCharCategory
21138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UCharEnumTypeRange
21148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
21158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE void U_EXPORT2
21168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_enumCharTypes(UCharEnumTypeRange *enumRange, const void *context);
21178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
21188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#if !UCONFIG_NO_NORMALIZATION
21198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
21208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
21218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Returns the combining class of the code point as specified in UnicodeData.txt.
21228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
21238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c the code point of the character
21248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return the combining class of the character
21258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
21268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
21278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE uint8_t U_EXPORT2
21288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_getCombiningClass(UChar32 c);
21298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
21308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif
21318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
21328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
21338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Returns the decimal digit value of a decimal digit character.
21348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Such characters have the general category "Nd" (decimal digit numbers)
21358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * and a Numeric_Type of Decimal.
21368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
21378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Unlike ICU releases before 2.6, no digit values are returned for any
21388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Han characters because Han number characters are often used with a special
21398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Chinese-style number format (with characters for powers of 10 in between)
21408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * instead of in decimal-positional notation.
21418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Unicode 4 explicitly assigns Han number characters the Numeric_Type
21428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Numeric instead of Decimal.
21438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * See Jitterbug 1483 for more details.
21448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
21458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Use u_getIntPropertyValue(c, UCHAR_NUMERIC_TYPE) and u_getNumericValue()
21468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * for complete numeric Unicode properties.
21478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
21488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c the code point for which to get the decimal digit value
21498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return the decimal digit value of c,
21508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         or -1 if c is not a decimal digit character
21518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
21528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_getNumericValue
21538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
21548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
21558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE int32_t U_EXPORT2
21568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_charDigitValue(UChar32 c);
21578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
21588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
21598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Returns the Unicode allocation block that contains the character.
21608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
21618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c the code point to be tested
21628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return the block value (UBlockCode) for c
21638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
21648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UBlockCode
21658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
21668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
21678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UBlockCode U_EXPORT2
21688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectublock_getCode(UChar32 c);
21698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
21708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
21718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Retrieve the name of a Unicode character.
21728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Depending on <code>nameChoice</code>, the character name written
21738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * into the buffer is the "modern" name or the name that was defined
21748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * in Unicode version 1.0.
21758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The name contains only "invariant" characters
21768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * like A-Z, 0-9, space, and '-'.
21778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Unicode 1.0 names are only retrieved if they are different from the modern
21788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * names and if the data file contains the data for them. gennames may or may
21798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * not be called with a command line option to include 1.0 names in unames.dat.
21808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
21818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param code The character (code point) for which to get the name.
21828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *             It must be <code>0<=code<=0x10ffff</code>.
21838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param nameChoice Selector for which name to get.
21848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param buffer Destination address for copying the name.
21858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *               The name will always be zero-terminated.
21868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *               If there is no name, then the buffer will be set to the empty string.
21878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param bufferLength <code>==sizeof(buffer)</code>
21888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param pErrorCode Pointer to a UErrorCode variable;
21898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *        check for <code>U_SUCCESS()</code> after <code>u_charName()</code>
21908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *        returns.
21918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return The length of the name, or 0 if there is no name for this character.
21928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         If the bufferLength is less than or equal to the length, then the buffer
21938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         contains the truncated name and the returned length indicates the full
21948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         length of the name.
21958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         The length does not include the zero-termination.
21968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
21978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UCharNameChoice
21988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_charFromName
21998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_enumCharNames
22008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
22018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
22028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE int32_t U_EXPORT2
22038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_charName(UChar32 code, UCharNameChoice nameChoice,
22048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project           char *buffer, int32_t bufferLength,
22058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project           UErrorCode *pErrorCode);
22068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
22078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
22088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Get the ISO 10646 comment for a character.
22098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The ISO 10646 comment is an informative field in the Unicode Character
22108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Database (UnicodeData.txt field 11) and is from the ISO 10646 names list.
22118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
22128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c The character (code point) for which to get the ISO comment.
22138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *             It must be <code>0<=c<=0x10ffff</code>.
22148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param dest Destination address for copying the comment.
22158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *             The comment will be zero-terminated if possible.
22168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *             If there is no comment, then the buffer will be set to the empty string.
22178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param destCapacity <code>==sizeof(dest)</code>
22188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param pErrorCode Pointer to a UErrorCode variable;
22198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *        check for <code>U_SUCCESS()</code> after <code>u_getISOComment()</code>
22208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *        returns.
22218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return The length of the comment, or 0 if there is no comment for this character.
22228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         If the destCapacity is less than or equal to the length, then the buffer
22238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         contains the truncated name and the returned length indicates the full
22248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         length of the name.
22258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         The length does not include the zero-termination.
22268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
22278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.2
22288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
22298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE int32_t U_EXPORT2
22308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_getISOComment(UChar32 c,
22318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                char *dest, int32_t destCapacity,
22328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                UErrorCode *pErrorCode);
22338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
22348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
22358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Find a Unicode character by its name and return its code point value.
22368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The name is matched exactly and completely.
22378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * If the name does not correspond to a code point, <i>pErrorCode</i>
22388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * is set to <code>U_INVALID_CHAR_FOUND</code>.
22398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * A Unicode 1.0 name is matched only if it differs from the modern name.
22408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Unicode names are all uppercase. Extended names are lowercase followed
22418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * by an uppercase hexadecimal number, and within angle brackets.
22428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
22438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param nameChoice Selector for which name to match.
22448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param name The name to match.
22458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param pErrorCode Pointer to a UErrorCode variable
22468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return The Unicode value of the code point with the given name,
22478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         or an undefined value if there is no such code point.
22488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
22498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UCharNameChoice
22508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_charName
22518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_enumCharNames
22528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 1.7
22538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
22548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UChar32 U_EXPORT2
22558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_charFromName(UCharNameChoice nameChoice,
22568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project               const char *name,
22578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project               UErrorCode *pErrorCode);
22588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
22598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
22608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Type of a callback function for u_enumCharNames() that gets called
22618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * for each Unicode character with the code point value and
22628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * the character name.
22638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * If such a function returns FALSE, then the enumeration is stopped.
22648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
22658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param context The context pointer that was passed to u_enumCharNames().
22668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param code The Unicode code point for the character with this name.
22678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param nameChoice Selector for which kind of names is enumerated.
22688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param name The character's name, zero-terminated.
22698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param length The length of the name.
22708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return TRUE if the enumeration should continue, FALSE to stop it.
22718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
22728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UCharNameChoice
22738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_enumCharNames
22748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 1.7
22758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
22768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projecttypedef UBool UEnumCharNamesFn(void *context,
22778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                               UChar32 code,
22788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                               UCharNameChoice nameChoice,
22798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                               const char *name,
22808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                               int32_t length);
22818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
22828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
22838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Enumerate all assigned Unicode characters between the start and limit
22848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * code points (start inclusive, limit exclusive) and call a function
22858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * for each, passing the code point value and the character name.
22868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * For Unicode 1.0 names, only those are enumerated that differ from the
22878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modern names.
22888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
22898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param start The first code point in the enumeration range.
22908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param limit One more than the last code point in the enumeration range
22918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *              (the first one after the range).
22928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param fn The function that is to be called for each character name.
22938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param context An arbitrary pointer that is passed to the function.
22948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param nameChoice Selector for which kind of names to enumerate.
22958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param pErrorCode Pointer to a UErrorCode variable
22968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
22978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UCharNameChoice
22988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UEnumCharNamesFn
22998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_charName
23008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_charFromName
23018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 1.7
23028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
23038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE void U_EXPORT2
23048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_enumCharNames(UChar32 start, UChar32 limit,
23058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                UEnumCharNamesFn *fn,
23068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                void *context,
23078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                UCharNameChoice nameChoice,
23088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                UErrorCode *pErrorCode);
23098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
23108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
23118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Return the Unicode name for a given property, as given in the
23128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Unicode database file PropertyAliases.txt.
23138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
23148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * In addition, this function maps the property
23158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * UCHAR_GENERAL_CATEGORY_MASK to the synthetic names "gcm" /
23168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * "General_Category_Mask".  These names are not in
23178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PropertyAliases.txt.
23188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
23198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param property UProperty selector other than UCHAR_INVALID_CODE.
23208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         If out of range, NULL is returned.
23218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
23228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param nameChoice selector for which name to get.  If out of range,
23238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         NULL is returned.  All properties have a long name.  Most
23248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         have a short name, but some do not.  Unicode allows for
23258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         additional names; if present these will be returned by
23268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         U_LONG_PROPERTY_NAME + i, where i=1, 2,...
23278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
23288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return a pointer to the name, or NULL if either the
23298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         property or the nameChoice is out of range.  If a given
23308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         nameChoice returns NULL, then all larger values of
23318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         nameChoice will return NULL, with one exception: if NULL is
23328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         returned for U_SHORT_PROPERTY_NAME, then
23338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         U_LONG_PROPERTY_NAME (and higher) may still return a
23348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         non-NULL value.  The returned pointer is valid until
23358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         u_cleanup() is called.
23368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
23378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UProperty
23388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UPropertyNameChoice
23398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.4
23408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
23418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE const char* U_EXPORT2
23428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_getPropertyName(UProperty property,
23438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                  UPropertyNameChoice nameChoice);
23448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
23458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
23468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Return the UProperty enum for a given property name, as specified
23478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * in the Unicode database file PropertyAliases.txt.  Short, long, and
23488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * any other variants are recognized.
23498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
23508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * In addition, this function maps the synthetic names "gcm" /
23518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * "General_Category_Mask" to the property
23528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * UCHAR_GENERAL_CATEGORY_MASK.  These names are not in
23538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PropertyAliases.txt.
23548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
23558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param alias the property name to be matched.  The name is compared
23568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         using "loose matching" as described in PropertyAliases.txt.
23578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
23588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return a UProperty enum, or UCHAR_INVALID_CODE if the given name
23598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         does not match any property.
23608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
23618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UProperty
23628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.4
23638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
23648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UProperty U_EXPORT2
23658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_getPropertyEnum(const char* alias);
23668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
23678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
23688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Return the Unicode name for a given property value, as given in the
23698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Unicode database file PropertyValueAliases.txt.
23708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
23718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Note: Some of the names in PropertyValueAliases.txt can only be
23728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * retrieved using UCHAR_GENERAL_CATEGORY_MASK, not
23738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * UCHAR_GENERAL_CATEGORY.  These include: "C" / "Other", "L" /
23748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * "Letter", "LC" / "Cased_Letter", "M" / "Mark", "N" / "Number", "P"
23758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * / "Punctuation", "S" / "Symbol", and "Z" / "Separator".
23768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
23778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param property UProperty selector constant.
23788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *        Must be UCHAR_BINARY_START<=which<UCHAR_BINARY_LIMIT
23798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *        or UCHAR_INT_START<=which<UCHAR_INT_LIMIT
23808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *        or UCHAR_MASK_START<=which<UCHAR_MASK_LIMIT.
23818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *        If out of range, NULL is returned.
23828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
23838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param value selector for a value for the given property.  If out
23848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         of range, NULL is returned.  In general, valid values range
23858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         from 0 up to some maximum.  There are a few exceptions:
23868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         (1.) UCHAR_BLOCK values begin at the non-zero value
23878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         UBLOCK_BASIC_LATIN.  (2.)  UCHAR_CANONICAL_COMBINING_CLASS
23888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         values are not contiguous and range from 0..240.  (3.)
23898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         UCHAR_GENERAL_CATEGORY_MASK values are not values of
23908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         UCharCategory, but rather mask values produced by
23918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         U_GET_GC_MASK().  This allows grouped categories such as
23928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         [:L:] to be represented.  Mask values range
23938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         non-contiguously from 1..U_GC_P_MASK.
23948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
23958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param nameChoice selector for which name to get.  If out of range,
23968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         NULL is returned.  All values have a long name.  Most have
23978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         a short name, but some do not.  Unicode allows for
23988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         additional names; if present these will be returned by
23998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         U_LONG_PROPERTY_NAME + i, where i=1, 2,...
24008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
24018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return a pointer to the name, or NULL if either the
24028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         property or the nameChoice is out of range.  If a given
24038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         nameChoice returns NULL, then all larger values of
24048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         nameChoice will return NULL, with one exception: if NULL is
24058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         returned for U_SHORT_PROPERTY_NAME, then
24068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         U_LONG_PROPERTY_NAME (and higher) may still return a
24078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         non-NULL value.  The returned pointer is valid until
24088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         u_cleanup() is called.
24098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
24108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UProperty
24118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UPropertyNameChoice
24128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.4
24138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
24148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE const char* U_EXPORT2
24158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_getPropertyValueName(UProperty property,
24168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                       int32_t value,
24178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                       UPropertyNameChoice nameChoice);
24188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
24198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
24208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Return the property value integer for a given value name, as
24218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * specified in the Unicode database file PropertyValueAliases.txt.
24228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Short, long, and any other variants are recognized.
24238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
24248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Note: Some of the names in PropertyValueAliases.txt will only be
24258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * recognized with UCHAR_GENERAL_CATEGORY_MASK, not
24268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * UCHAR_GENERAL_CATEGORY.  These include: "C" / "Other", "L" /
24278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * "Letter", "LC" / "Cased_Letter", "M" / "Mark", "N" / "Number", "P"
24288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * / "Punctuation", "S" / "Symbol", and "Z" / "Separator".
24298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
24308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param property UProperty selector constant.
24318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *        Must be UCHAR_BINARY_START<=which<UCHAR_BINARY_LIMIT
24328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *        or UCHAR_INT_START<=which<UCHAR_INT_LIMIT
24338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *        or UCHAR_MASK_START<=which<UCHAR_MASK_LIMIT.
24348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *        If out of range, UCHAR_INVALID_CODE is returned.
24358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
24368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param alias the value name to be matched.  The name is compared
24378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         using "loose matching" as described in
24388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         PropertyValueAliases.txt.
24398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
24408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return a value integer or UCHAR_INVALID_CODE if the given name
24418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         does not match any value of the given property, or if the
24428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         property is invalid.  Note: U CHAR_GENERAL_CATEGORY values
24438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         are not values of UCharCategory, but rather mask values
24448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         produced by U_GET_GC_MASK().  This allows grouped
24458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         categories such as [:L:] to be represented.
24468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
24478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UProperty
24488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.4
24498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
24508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE int32_t U_EXPORT2
24518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_getPropertyValueEnum(UProperty property,
24528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project                       const char* alias);
24538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
24548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
24558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Determines if the specified character is permissible as the
24568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * first character in an identifier according to Unicode
24578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (The Unicode Standard, Version 3.0, chapter 5.16 Identifiers).
24588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * True for characters with general categories "L" (letters) and "Nl" (letter numbers).
24598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
24608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Same as java.lang.Character.isUnicodeIdentifierStart().
24618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Same as UCHAR_ID_START
24628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
24638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c the code point to be tested
24648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return TRUE if the code point may start an identifier
24658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
24668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UCHAR_ID_START
24678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_isalpha
24688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_isIDPart
24698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
24708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
24718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UBool U_EXPORT2
24728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_isIDStart(UChar32 c);
24738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
24748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
24758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Determines if the specified character is permissible
24768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * in an identifier according to Java.
24778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * True for characters with general categories "L" (letters),
24788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * "Nl" (letter numbers), "Nd" (decimal digits),
24798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * "Mc" and "Mn" (combining marks), "Pc" (connecting punctuation), and
24808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * u_isIDIgnorable(c).
24818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
24828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Same as java.lang.Character.isUnicodeIdentifierPart().
24838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Almost the same as Unicode's ID_Continue (UCHAR_ID_CONTINUE)
24848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * except that Unicode recommends to ignore Cf which is less than
24858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * u_isIDIgnorable(c).
24868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
24878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c the code point to be tested
24888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return TRUE if the code point may occur in an identifier according to Java
24898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
24908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UCHAR_ID_CONTINUE
24918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_isIDStart
24928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_isIDIgnorable
24938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
24948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
24958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UBool U_EXPORT2
24968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_isIDPart(UChar32 c);
24978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
24988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
24998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Determines if the specified character should be regarded
25008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * as an ignorable character in an identifier,
25018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * according to Java.
25028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * True for characters with general category "Cf" (format controls) as well as
25038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * non-whitespace ISO controls
25048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (U+0000..U+0008, U+000E..U+001B, U+007F..U+0084, U+0086..U+009F).
25058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
25068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Same as java.lang.Character.isIdentifierIgnorable()
25078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * except that Java also returns TRUE for U+0085 Next Line
25088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (it omits U+0085 from whitespace ISO controls).
25098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
25108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Note that Unicode just recommends to ignore Cf (format controls).
25118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
25128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c the code point to be tested
25138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return TRUE if the code point is ignorable in identifiers according to Java
25148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
25158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see UCHAR_DEFAULT_IGNORABLE_CODE_POINT
25168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_isIDStart
25178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see u_isIDPart
25188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
25198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
25208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UBool U_EXPORT2
25218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_isIDIgnorable(UChar32 c);
25228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
25238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
25248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Determines if the specified character is permissible as the
25258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * first character in a Java identifier.
25268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * In addition to u_isIDStart(c), true for characters with
25278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * general categories "Sc" (currency symbols) and "Pc" (connecting punctuation).
25288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
25298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Same as java.lang.Character.isJavaIdentifierStart().
25308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
25318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c the code point to be tested
25328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return TRUE if the code point may start a Java identifier
25338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
25348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see     u_isJavaIDPart
25358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see     u_isalpha
25368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see     u_isIDStart
25378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
25388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
25398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UBool U_EXPORT2
25408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_isJavaIDStart(UChar32 c);
25418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
25428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
25438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Determines if the specified character is permissible
25448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * in a Java identifier.
25458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * In addition to u_isIDPart(c), true for characters with
25468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * general category "Sc" (currency symbols).
25478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
25488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Same as java.lang.Character.isJavaIdentifierPart().
25498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
25508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c the code point to be tested
25518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return TRUE if the code point may occur in a Java identifier
25528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
25538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see     u_isIDIgnorable
25548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see     u_isJavaIDStart
25558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see     u_isalpha
25568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see     u_isdigit
25578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see     u_isIDPart
25588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
25598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
25608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UBool U_EXPORT2
25618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_isJavaIDPart(UChar32 c);
25628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
25638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
25648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The given character is mapped to its lowercase equivalent according to
25658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * UnicodeData.txt; if the character has no lowercase equivalent, the character
25668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * itself is returned.
25678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
25688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Same as java.lang.Character.toLowerCase().
25698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
25708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This function only returns the simple, single-code point case mapping.
25718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Full case mappings may result in zero, one or more code points and depend
25728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * on context or language etc.
25738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Full case mappings are applied by the string case mapping functions,
25748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * see ustring.h and the UnicodeString class.
25758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
25768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c the code point to be mapped
25778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return the Simple_Lowercase_Mapping of the code point, if any;
25788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         otherwise the code point itself.
25798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
25808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
25818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UChar32 U_EXPORT2
25828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_tolower(UChar32 c);
25838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
25848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
25858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The given character is mapped to its uppercase equivalent according to UnicodeData.txt;
25868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * if the character has no uppercase equivalent, the character itself is
25878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * returned.
25888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
25898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Same as java.lang.Character.toUpperCase().
25908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
25918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This function only returns the simple, single-code point case mapping.
25928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Full case mappings may result in zero, one or more code points and depend
25938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * on context or language etc.
25948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Full case mappings are applied by the string case mapping functions,
25958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * see ustring.h and the UnicodeString class.
25968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
25978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c the code point to be mapped
25988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return the Simple_Uppercase_Mapping of the code point, if any;
25998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         otherwise the code point itself.
26008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
26018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
26028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UChar32 U_EXPORT2
26038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_toupper(UChar32 c);
26048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
26058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
26068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The given character is mapped to its titlecase equivalent
26078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * according to UnicodeData.txt;
26088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * if none is defined, the character itself is returned.
26098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
26108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Same as java.lang.Character.toTitleCase().
26118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
26128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This function only returns the simple, single-code point case mapping.
26138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Full case mappings may result in zero, one or more code points and depend
26148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * on context or language etc.
26158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Full case mappings are applied by the string case mapping functions,
26168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * see ustring.h and the UnicodeString class.
26178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
26188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c the code point to be mapped
26198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return the Simple_Titlecase_Mapping of the code point, if any;
26208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         otherwise the code point itself.
26218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
26228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
26238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UChar32 U_EXPORT2
26248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_totitle(UChar32 c);
26258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
26268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/** Option value for case folding: use default mappings defined in CaseFolding.txt. @stable ICU 2.0 */
26278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_FOLD_CASE_DEFAULT 0
26288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
26298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
26308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Option value for case folding:
26318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
26328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Use the modified set of mappings provided in CaseFolding.txt to handle dotted I
26338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * and dotless i appropriately for Turkic languages (tr, az).
26348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
26358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Before Unicode 3.2, CaseFolding.txt contains mappings marked with 'I' that
26368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * are to be included for default mappings and
26378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * excluded for the Turkic-specific mappings.
26388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
26398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Unicode 3.2 CaseFolding.txt instead contains mappings marked with 'T' that
26408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * are to be excluded for default mappings and
26418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * included for the Turkic-specific mappings.
26428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
26438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
26448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
26458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#define U_FOLD_CASE_EXCLUDE_SPECIAL_I 1
26468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
26478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
26488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The given character is mapped to its case folding equivalent according to
26498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * UnicodeData.txt and CaseFolding.txt;
26508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * if the character has no case folding equivalent, the character
26518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * itself is returned.
26528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
26538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This function only returns the simple, single-code point case mapping.
26548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Full case mappings may result in zero, one or more code points and depend
26558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * on context or language etc.
26568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Full case mappings are applied by the string case mapping functions,
26578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * see ustring.h and the UnicodeString class.
26588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
26598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c the code point to be mapped
26608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param options Either U_FOLD_CASE_DEFAULT or U_FOLD_CASE_EXCLUDE_SPECIAL_I
26618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return the Simple_Case_Folding of the code point, if any;
26628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         otherwise the code point itself.
26638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
26648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
26658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UChar32 U_EXPORT2
26668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_foldCase(UChar32 c, uint32_t options);
26678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
26688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
26698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Returns the decimal digit value of the code point in the
26708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * specified radix.
26718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
26728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * If the radix is not in the range <code>2<=radix<=36</code> or if the
26738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * value of <code>c</code> is not a valid digit in the specified
26748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * radix, <code>-1</code> is returned. A character is a valid digit
26758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * if at least one of the following is true:
26768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * <ul>
26778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * <li>The character has a decimal digit value.
26788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *     Such characters have the general category "Nd" (decimal digit numbers)
26798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *     and a Numeric_Type of Decimal.
26808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *     In this case the value is the character's decimal digit value.</li>
26818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * <li>The character is one of the uppercase Latin letters
26828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *     <code>'A'</code> through <code>'Z'</code>.
26838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *     In this case the value is <code>c-'A'+10</code>.</li>
26848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * <li>The character is one of the lowercase Latin letters
26858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *     <code>'a'</code> through <code>'z'</code>.
26868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *     In this case the value is <code>ch-'a'+10</code>.</li>
26878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * <li>Latin letters from both the ASCII range (0061..007A, 0041..005A)
26888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *     as well as from the Fullwidth ASCII range (FF41..FF5A, FF21..FF3A)
26898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *     are recognized.</li>
26908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * </ul>
26918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
26928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Same as java.lang.Character.digit().
26938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
26948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param   ch      the code point to be tested.
26958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param   radix   the radix.
26968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return  the numeric value represented by the character in the
26978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *          specified radix,
26988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *          or -1 if there is no value or if the value exceeds the radix.
26998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
27008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see     UCHAR_NUMERIC_TYPE
27018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see     u_forDigit
27028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see     u_charDigitValue
27038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see     u_isdigit
27048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
27058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
27068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE int32_t U_EXPORT2
27078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_digit(UChar32 ch, int8_t radix);
27088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
27098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
27108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Determines the character representation for a specific digit in
27118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * the specified radix. If the value of <code>radix</code> is not a
27128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * valid radix, or the value of <code>digit</code> is not a valid
27138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * digit in the specified radix, the null character
27148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (<code>U+0000</code>) is returned.
27158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * <p>
27168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The <code>radix</code> argument is valid if it is greater than or
27178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * equal to 2 and less than or equal to 36.
27188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The <code>digit</code> argument is valid if
27198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * <code>0 <= digit < radix</code>.
27208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * <p>
27218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * If the digit is less than 10, then
27228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * <code>'0' + digit</code> is returned. Otherwise, the value
27238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * <code>'a' + digit - 10</code> is returned.
27248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
27258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Same as java.lang.Character.forDigit().
27268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
27278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param   digit   the number to convert to a character.
27288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param   radix   the radix.
27298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return  the <code>char</code> representation of the specified digit
27308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *          in the specified radix.
27318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
27328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see     u_digit
27338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see     u_charDigitValue
27348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @see     u_isdigit
27358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
27368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
27378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE UChar32 U_EXPORT2
27388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_forDigit(int32_t digit, int8_t radix);
27398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
27408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
27418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Get the "age" of the code point.
27428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The "age" is the Unicode version when the code point was first
27438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * designated (as a non-character or for Private Use)
27448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * or assigned a character.
27458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * This can be useful to avoid emitting code points to receiving
27468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * processes that do not accept newer characters.
27478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The data is from the UCD file DerivedAge.txt.
27488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
27498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c The code point.
27508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param versionArray The Unicode version number array, to be filled in.
27518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
27528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.1
27538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
27548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE void U_EXPORT2
27558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_charAge(UChar32 c, UVersionInfo versionArray);
27568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
27578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
27588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Gets the Unicode version information.
27598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * The version array is filled in with the version information
27608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * for the Unicode standard that is currently used by ICU.
27618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * For example, Unicode version 3.1.1 is represented as an array with
27628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * the values { 3, 1, 1, 0 }.
27638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
27648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param versionArray an output array that will be filled in with
27658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *                     the Unicode version number
27668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.0
27678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
27688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE void U_EXPORT2
27698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_getUnicodeVersion(UVersionInfo versionArray);
27708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
27718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
27728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Get the FC_NFKC_Closure property string for a character.
27738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * See Unicode Standard Annex #15 for details, search for "FC_NFKC_Closure"
27748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * or for "FNC": http://www.unicode.org/reports/tr15/
27758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
27768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param c The character (code point) for which to get the FC_NFKC_Closure string.
27778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *             It must be <code>0<=c<=0x10ffff</code>.
27788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param dest Destination address for copying the string.
27798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *             The string will be zero-terminated if possible.
27808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *             If there is no FC_NFKC_Closure string,
27818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *             then the buffer will be set to the empty string.
27828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param destCapacity <code>==sizeof(dest)</code>
27838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @param pErrorCode Pointer to a UErrorCode variable.
27848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @return The length of the string, or 0 if there is no FC_NFKC_Closure string for this character.
27858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         If the destCapacity is less than or equal to the length, then the buffer
27868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         contains the truncated name and the returned length indicates the full
27878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         length of the name.
27888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *         The length does not include the zero-termination.
27898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
27908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * @stable ICU 2.2
27918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
27928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_STABLE int32_t U_EXPORT2
27938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectu_getFC_NFKC_Closure(UChar32 c, UChar *dest, int32_t destCapacity, UErrorCode *pErrorCode);
27948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
27958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectU_CDECL_END
27968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
27978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif /*_UCHAR*/
27988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/*eof*/
2799