Browse Source

Add Other_Uppercase support from PropList.txt.

master
Reece H. Dunn 8 years ago
parent
commit
a184262d9b
3 changed files with 8 additions and 4 deletions
  1. 2
    0
      src/include/ucd/ucd.h
  2. 5
    4
      src/proplist.c
  3. 1
    0
      tools/printdata.py

+ 2
- 0
src/include/ucd/ucd.h View File

UCD_PROPERTY_DIACRITIC = 0x00002000, /**< @brief Diacritic PropList */ UCD_PROPERTY_DIACRITIC = 0x00002000, /**< @brief Diacritic PropList */
UCD_PROPERTY_EXTENDER = 0x00004000, /**< @brief Extender PropList */ UCD_PROPERTY_EXTENDER = 0x00004000, /**< @brief Extender PropList */
UCD_PROPERTY_OTHER_LOWERCASE = 0x00008000, /**< @brief Other_Lowercase PropList */ UCD_PROPERTY_OTHER_LOWERCASE = 0x00008000, /**< @brief Other_Lowercase PropList */
UCD_PROPERTY_OTHER_UPPERCASE = 0x00010000, /**< @brief Other_Uppercase PropList */
} ucd_property; } ucd_property;


/** @brief Return the properties of the specified codepoint. /** @brief Return the properties of the specified codepoint.
Diacritic = UCD_PROPERTY_DIACRITIC, /**< @brief Diacritic PropList */ Diacritic = UCD_PROPERTY_DIACRITIC, /**< @brief Diacritic PropList */
Extender = UCD_PROPERTY_EXTENDER, /**< @brief Extender PropList */ Extender = UCD_PROPERTY_EXTENDER, /**< @brief Extender PropList */
Other_Lowercase = UCD_PROPERTY_OTHER_LOWERCASE, /**< @brief Other_Lowercase PropList */ Other_Lowercase = UCD_PROPERTY_OTHER_LOWERCASE, /**< @brief Other_Lowercase PropList */
Other_Uppercase = UCD_PROPERTY_OTHER_UPPERCASE, /**< @brief Other_Uppercase PropList */
}; };


/** @brief Return the properties of the specified codepoint. /** @brief Return the properties of the specified codepoint.

+ 5
- 4
src/proplist.c View File

switch (c & 0xFFFFFF00) switch (c & 0xFFFFFF00)
{ {
case 0x2100: case 0x2100:
if (c >= 0x2160 && c <= 0x216F) return UCD_PROPERTY_OTHER_UPPERCASE;
if (c >= 0x2170 && c <= 0x217F) return UCD_PROPERTY_OTHER_LOWERCASE; if (c >= 0x2170 && c <= 0x217F) return UCD_PROPERTY_OTHER_LOWERCASE;
break; break;
case 0x3000: case 0x3000:
if (c == 0x23E2) return UCD_PROPERTY_OTHER_MATH; if (c == 0x23E2) return UCD_PROPERTY_OTHER_MATH;
break; break;
case 0x2400: case 0x2400:
if (c >= 0x24B6 && c <= 0x24CF) return UCD_PROPERTY_OTHER_ALPHABETIC;
if (c >= 0x24B6 && c <= 0x24CF) return UCD_PROPERTY_OTHER_ALPHABETIC | UCD_PROPERTY_OTHER_UPPERCASE;
if (c >= 0x24D0 && c <= 0x24E9) return UCD_PROPERTY_OTHER_ALPHABETIC | UCD_PROPERTY_OTHER_LOWERCASE; if (c >= 0x24D0 && c <= 0x24E9) return UCD_PROPERTY_OTHER_ALPHABETIC | UCD_PROPERTY_OTHER_LOWERCASE;
break; break;
case 0x2500: case 0x2500:
if (c >= 0x266D && c <= 0x266E) return UCD_PROPERTY_OTHER_MATH; if (c >= 0x266D && c <= 0x266E) return UCD_PROPERTY_OTHER_MATH;
break; break;
case 0x01F100: case 0x01F100:
if (c >= 0x01F130 && c <= 0x01F149) return UCD_PROPERTY_OTHER_ALPHABETIC;
if (c >= 0x01F150 && c <= 0x01F169) return UCD_PROPERTY_OTHER_ALPHABETIC;
if (c >= 0x01F170 && c <= 0x01F189) return UCD_PROPERTY_OTHER_ALPHABETIC;
if (c >= 0x01F130 && c <= 0x01F149) return UCD_PROPERTY_OTHER_ALPHABETIC | UCD_PROPERTY_OTHER_UPPERCASE;
if (c >= 0x01F150 && c <= 0x01F169) return UCD_PROPERTY_OTHER_ALPHABETIC | UCD_PROPERTY_OTHER_UPPERCASE;
if (c >= 0x01F170 && c <= 0x01F189) return UCD_PROPERTY_OTHER_ALPHABETIC | UCD_PROPERTY_OTHER_UPPERCASE;
break; break;
} }
return 0; return 0;

+ 1
- 0
tools/printdata.py View File

props += 8192 * data.get('Diacritic', 0) props += 8192 * data.get('Diacritic', 0)
props += 16384 * data.get('Extender', 0) props += 16384 * data.get('Extender', 0)
props += 32768 * data.get('Other_Lowercase', 0) props += 32768 * data.get('Other_Lowercase', 0)
props += 65536 * data.get('Other_Uppercase', 0)
return props return props


if __name__ == '__main__': if __name__ == '__main__':

Loading…
Cancel
Save