Merge "Excise code from Unicode.cpp that was dead"
This commit is contained in:
@@ -78,69 +78,6 @@ namespace android {
|
||||
DIRECTIONALITY_POP_DIRECTIONAL_FORMAT
|
||||
};
|
||||
|
||||
/**
|
||||
* Character types as specified in the Unicode standard. These map directly to
|
||||
* java.lang.Character.
|
||||
*/
|
||||
enum CharType {
|
||||
CHARTYPE_UNASSIGNED = 0,
|
||||
CHARTYPE_UPPERCASE_LETTER,
|
||||
CHARTYPE_LOWERCASE_LETTER,
|
||||
CHARTYPE_TITLECASE_LETTER,
|
||||
CHARTYPE_MODIFIER_LETTER,
|
||||
CHARTYPE_OTHER_LETTER,
|
||||
CHARTYPE_NON_SPACING_MARK,
|
||||
CHARTYPE_ENCLOSING_MARK,
|
||||
CHARTYPE_COMBINING_SPACING_MARK,
|
||||
CHARTYPE_DECIMAL_DIGIT_NUMBER,
|
||||
CHARTYPE_LETTER_NUMBER,
|
||||
CHARTYPE_OTHER_NUMBER,
|
||||
CHARTYPE_SPACE_SEPARATOR,
|
||||
CHARTYPE_LINE_SEPARATOR,
|
||||
CHARTYPE_PARAGRAPH_SEPARATOR,
|
||||
CHARTYPE_CONTROL,
|
||||
CHARTYPE_FORMAT,
|
||||
CHARTYPE_MISSING_VALUE_FOR_JAVA, /* This is the mysterious missing 17 value from the java constants */
|
||||
CHARTYPE_PRIVATE_USE,
|
||||
CHARTYPE_SURROGATE,
|
||||
CHARTYPE_DASH_PUNCTUATION,
|
||||
CHARTYPE_START_PUNCTUATION,
|
||||
CHARTYPE_END_PUNCTUATION,
|
||||
CHARTYPE_CONNECTOR_PUNCTUATION,
|
||||
CHARTYPE_OTHER_PUNCTUATION,
|
||||
CHARTYPE_MATH_SYMBOL,
|
||||
CHARTYPE_CURRENCY_SYMBOL,
|
||||
CHARTYPE_MODIFIER_SYMBOL,
|
||||
CHARTYPE_OTHER_SYMBOL,
|
||||
CHARTYPE_INITIAL_QUOTE_PUNCTUATION,
|
||||
CHARTYPE_FINAL_QUOTE_PUNCTUATION
|
||||
};
|
||||
|
||||
/**
|
||||
* Decomposition types as described by the unicode standard. These values map to
|
||||
* the same values in uchar.h in ICU.
|
||||
*/
|
||||
enum DecompositionType {
|
||||
DECOMPOSITION_NONE = 0,
|
||||
DECOMPOSITION_CANONICAL,
|
||||
DECOMPOSITION_COMPAT,
|
||||
DECOMPOSITION_CIRCLE,
|
||||
DECOMPOSITION_FINAL,
|
||||
DECOMPOSITION_FONT,
|
||||
DECOMPOSITION_FRACTION,
|
||||
DECOMPOSITION_INITIAL,
|
||||
DECOMPOSITION_ISOLATED,
|
||||
DECOMPOSITION_MEDIAL,
|
||||
DECOMPOSITION_NARROW,
|
||||
DECOMPOSITION_NOBREAK,
|
||||
DECOMPOSITION_SMALL,
|
||||
DECOMPOSITION_SQUARE,
|
||||
DECOMPOSITION_SUB,
|
||||
DECOMPOSITION_SUPER,
|
||||
DECOMPOSITION_VERTICAL,
|
||||
DECOMPOSITION_WIDE
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns the packed data for java calls
|
||||
* @param c The unicode character.
|
||||
@@ -161,61 +98,6 @@ namespace android {
|
||||
*/
|
||||
static uint32_t getPackedData(UChar32 c);
|
||||
|
||||
/**
|
||||
* Get the Character type.
|
||||
* @param c The unicode character.
|
||||
* @return The character's type or CHARTYPE_UNASSIGNED if the character is invalid
|
||||
* or has an unassigned class.
|
||||
*/
|
||||
static CharType getType(UChar32 c);
|
||||
|
||||
/**
|
||||
* Get the Character's decomposition type.
|
||||
* @param c The unicode character.
|
||||
* @return The character's decomposition type or DECOMPOSITION_NONE is there
|
||||
* is no decomposition.
|
||||
*/
|
||||
static DecompositionType getDecompositionType(UChar32 c);
|
||||
|
||||
/**
|
||||
* Returns the digit value of a character or -1 if the character
|
||||
* is not within the specified radix.
|
||||
*
|
||||
* The digit value is computed for integer characters and letters
|
||||
* within the given radix. This function does not handle Roman Numerals,
|
||||
* fractions, or any other characters that may represent numbers.
|
||||
*
|
||||
* @param c The unicode character
|
||||
* @param radix The intended radix.
|
||||
* @return The digit value or -1 if there is no digit value or if the value is outside the radix.
|
||||
*/
|
||||
static int getDigitValue(UChar32 c, int radix = 10);
|
||||
|
||||
/**
|
||||
* Return the numeric value of a character
|
||||
*
|
||||
* @param c The unicode character.
|
||||
* @return The numeric value of the character. -1 if the character has no numeric value,
|
||||
* -2 if the character has a numeric value that is not representable by an integer.
|
||||
*/
|
||||
static int getNumericValue(UChar32 c);
|
||||
|
||||
/**
|
||||
* Convert the character to lowercase
|
||||
* @param c The unicode character.
|
||||
* @return The lowercase character equivalent of c. If c does not have a lowercase equivalent,
|
||||
* the original character is returned.
|
||||
*/
|
||||
static UChar32 toLower(UChar32 c);
|
||||
|
||||
/**
|
||||
* Convert the character to uppercase
|
||||
* @param c The unicode character.
|
||||
* @return The uppercase character equivalent of c. If c does not have an uppercase equivalent,
|
||||
* the original character is returned.
|
||||
*/
|
||||
static UChar32 toUpper(UChar32 c);
|
||||
|
||||
/**
|
||||
* Get the directionality of the character.
|
||||
* @param c The unicode character.
|
||||
@@ -239,15 +121,6 @@ namespace android {
|
||||
* @see isMirrored
|
||||
*/
|
||||
static UChar32 toMirror(UChar32 c);
|
||||
|
||||
/**
|
||||
* Convert the character to title case.
|
||||
* @param c The unicode character.
|
||||
* @return The titlecase equivalent of c. If c does not have a titlecase equivalent,
|
||||
* the original character is returned.
|
||||
*/
|
||||
static UChar32 toTitle(UChar32 c);
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -615,32 +615,6 @@ namespace CharacterData {
|
||||
{0, 0}
|
||||
};
|
||||
|
||||
// Array of uppercase differences
|
||||
static const short UCDIFF[] = {
|
||||
0, -32, 743, 121, -1, -232, -300, 97,
|
||||
163, 130, 56, -2, -79, -210, -206, -205,
|
||||
-202, -203, -207, -209, -211, -213, -214, -218,
|
||||
-217, -219, -83, 84, -38, -37, -31, -64,
|
||||
-63, -62, -57, -47, -54, -86, -80, 7,
|
||||
-96, -48, -59, 8, 74, 86, 100, 128,
|
||||
112, 126, 9, -7205, -16, -26, -7264, -40
|
||||
};
|
||||
|
||||
// Array of lowercase differences
|
||||
static const short LCDIFF[] = {
|
||||
0, 32, 1, -199, -121, 210, 206, 205,
|
||||
79, 202, 203, 207, 211, 209, 213, 214,
|
||||
218, 217, 219, 2, -97, -56, -130, -163,
|
||||
83, 38, 37, 64, 63, -60, -7, 80,
|
||||
48, 7264, -8, -74, -9, -86, -100, -112,
|
||||
-128, -126, -7517, -8383, -8262, 16, 26, 40
|
||||
};
|
||||
|
||||
// Array of titlecase differences
|
||||
static const short TCDIFF[] = {
|
||||
3, 1, 0, -1
|
||||
};
|
||||
|
||||
// Array of mirrored character differences
|
||||
static const short MIRROR_DIFF[] = {
|
||||
0, 1, -1, 2, -2, 16, -16, 3,
|
||||
@@ -649,21 +623,6 @@ namespace CharacterData {
|
||||
-2108
|
||||
};
|
||||
|
||||
// Array of all possible numeric values
|
||||
static const int NUMERICS[] = {
|
||||
-1, 0, 1, 2, 3, 4, 5, 6,
|
||||
7, 8, 9, 10, 11, 12, 13, 14,
|
||||
15, 16, 17, 18, 19, 20, 21, 22,
|
||||
23, 24, 25, 26, 27, 28, 29, 30,
|
||||
31, 32, 33, 34, 35, -2, 100, 1000,
|
||||
40, 50, 60, 70, 80, 90, 10000, 500,
|
||||
5000, 36, 37, 38, 39, 41, 42, 43,
|
||||
44, 45, 46, 47, 48, 49, 200, 300,
|
||||
400, 600, 700, 800, 900, 2000, 3000, 4000,
|
||||
6000, 7000, 8000, 9000, 20000, 30000, 40000, 50000,
|
||||
60000, 70000, 80000, 90000
|
||||
};
|
||||
|
||||
// All possible packed data values, no duplicates
|
||||
static const uint32_t PACKED_DATA[] = {
|
||||
0x00000000, 0x0000012F, 0x0000016F, 0x0000014F, 0x0000018F, 0x0000018C, 0x000001B8, 0x000000B8,
|
||||
|
||||
@@ -103,55 +103,6 @@ uint32_t android::Unicode::getPackedData(UChar32 c)
|
||||
return CharacterData::PACKED_DATA[findCharacterValue(c) & 0x7FF];
|
||||
}
|
||||
|
||||
android::Unicode::CharType android::Unicode::getType(UChar32 c)
|
||||
{
|
||||
if (c < 0 || c >= 0x10FFFF)
|
||||
return CHARTYPE_UNASSIGNED;
|
||||
return (CharType)((getPackedData(c) >> TYPE_SHIFT) & TYPE_MASK);
|
||||
}
|
||||
|
||||
android::Unicode::DecompositionType android::Unicode::getDecompositionType(UChar32 c)
|
||||
{
|
||||
// findCharacterValue returns a 16-bit value with the top 5 bits containing a decomposition type
|
||||
// and the remaining bits containing an index.
|
||||
return (DecompositionType)((findCharacterValue(c) >> DECOMPOSITION_SHIFT) & DECOMPOSITION_MASK);
|
||||
}
|
||||
|
||||
int android::Unicode::getDigitValue(UChar32 c, int radix)
|
||||
{
|
||||
if (radix < MIN_RADIX || radix > MAX_RADIX)
|
||||
return -1;
|
||||
|
||||
int tempValue = radix;
|
||||
|
||||
if (c >= '0' && c <= '9')
|
||||
tempValue = c - '0';
|
||||
else if (c >= 'a' && c <= 'z')
|
||||
tempValue = c - 'a' + 10;
|
||||
else if (c >= 'A' && c <= 'Z')
|
||||
tempValue = c - 'A' + 10;
|
||||
|
||||
return tempValue < radix ? tempValue : -1;
|
||||
}
|
||||
|
||||
int android::Unicode::getNumericValue(UChar32 c)
|
||||
{
|
||||
if (isMirrored(c))
|
||||
return -1;
|
||||
|
||||
return (int) CharacterData::NUMERICS[((getPackedData(c) >> NUMERIC_SHIFT) & NUMERIC_MASK)];
|
||||
}
|
||||
|
||||
UChar32 android::Unicode::toLower(UChar32 c)
|
||||
{
|
||||
return c + CharacterData::LCDIFF[(getPackedData(c) >> TOLOWER_SHIFT) & TOLOWER_MASK];
|
||||
}
|
||||
|
||||
UChar32 android::Unicode::toUpper(UChar32 c)
|
||||
{
|
||||
return c + CharacterData::UCDIFF[(getPackedData(c) >> TOUPPER_SHIFT) & TOUPPER_MASK];
|
||||
}
|
||||
|
||||
android::Unicode::Direction android::Unicode::getDirectionality(UChar32 c)
|
||||
{
|
||||
uint32_t data = getPackedData(c);
|
||||
@@ -179,15 +130,3 @@ UChar32 android::Unicode::toMirror(UChar32 c)
|
||||
|
||||
return c + CharacterData::MIRROR_DIFF[(getPackedData(c) >> MIRROR_SHIFT) & MIRROR_MASK];
|
||||
}
|
||||
|
||||
UChar32 android::Unicode::toTitle(UChar32 c)
|
||||
{
|
||||
int32_t diff = CharacterData::TCDIFF[(getPackedData(c) >> TOTITLE_SHIFT) & TOTITLE_MASK];
|
||||
|
||||
if (TOTITLE_MASK == diff)
|
||||
return toUpper(c);
|
||||
|
||||
return c + diff;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user