Add Bidi_Control support from PropList.txt.

This commit is contained in:
Reece H. Dunn
2017-04-08 19:21:56 +01:00
parent bc16887a79
commit eae8740117
2 changed files with 10 additions and 2 deletions
+4 -2
View File
@@ -329,8 +329,9 @@ ucd_script ucd_lookup_script(codepoint_t c);
*/
typedef enum ucd_property_
{
UCD_PROPERTY_WHITE_SPACE = 0x0001, /**< @brief White_Space */
UCD_PROPERTY_NO_BREAK = 0x0002, /**< @brief <noBreak> */
UCD_PROPERTY_WHITE_SPACE = 0x0001, /**< @brief White_Space */
UCD_PROPERTY_NO_BREAK = 0x0002, /**< @brief <noBreak> */
UCD_PROPERTY_BIDI_CONTROL = 0x0004, /**< @brief Bidi_Control */
} ucd_property;
/** @brief Return the properties of the specified codepoint.
@@ -792,6 +793,7 @@ namespace ucd
{
White_Space = UCD_PROPERTY_WHITE_SPACE, /**< @brief White_Space */
noBreak = UCD_PROPERTY_NO_BREAK, /**< @brief <noBreak> */
Bidi_Control = UCD_PROPERTY_BIDI_CONTROL, /**< @brief Bidi_Control */
};
/** @brief Return the properties of the specified codepoint.
+6
View File
@@ -36,6 +36,12 @@ ucd_property ucd_properties(codepoint_t c, ucd_category category)
return UCD_PROPERTY_WHITE_SPACE;
}
return 0;
case UCD_CATEGORY_Cf:
if (c == 0x061C) return UCD_PROPERTY_BIDI_CONTROL;
if (c >= 0x200E && c <= 0x200F) return UCD_PROPERTY_BIDI_CONTROL;
if (c >= 0x202A && c <= 0x202E) return UCD_PROPERTY_BIDI_CONTROL;
if (c >= 0x2066 && c <= 0x2069) return UCD_PROPERTY_BIDI_CONTROL;
return 0;
case UCD_CATEGORY_Pd:
if (c == 0x2011) // NON-BREAKING HYPHEN
return UCD_PROPERTY_NO_BREAK;