Index: third_party/harfbuzz-ng/src/hb-unicode-private.hh |
diff --git a/third_party/harfbuzz-ng/src/hb-unicode-private.hh b/third_party/harfbuzz-ng/src/hb-unicode-private.hh |
index 2ad8a4984e0e92c568e25b06571bdd5114c6e041..ddba1ace29cc046239f3c65f06b2a35d9feb28e8 100644 |
--- a/third_party/harfbuzz-ng/src/hb-unicode-private.hh |
+++ b/third_party/harfbuzz-ng/src/hb-unicode-private.hh |
@@ -97,11 +97,62 @@ extern HB_INTERNAL hb_unicode_funcs_t _hb_glib_unicode_funcs; |
extern HB_INTERNAL hb_unicode_funcs_t _hb_icu_unicode_funcs; |
#define _hb_unicode_funcs_default _hb_icu_unicode_funcs |
#else |
+#define HB_UNICODE_FUNCS_NIL 1 |
extern HB_INTERNAL hb_unicode_funcs_t _hb_unicode_funcs_nil; |
#define _hb_unicode_funcs_default _hb_unicode_funcs_nil |
#endif |
+HB_INTERNAL unsigned int |
+_hb_unicode_modified_combining_class (hb_unicode_funcs_t *ufuncs, |
+ hb_codepoint_t unicode); |
+static inline hb_bool_t |
+_hb_unicode_is_variation_selector (hb_codepoint_t unicode) |
+{ |
+ return unlikely ((unicode >= 0x180B && unicode <= 0x180D) || /* MONGOLIAN FREE VARIATION SELECTOR ONE..THREE */ |
+ (unicode >= 0xFE00 && unicode <= 0xFE0F) || /* VARIATION SELECTOR-1..16 */ |
+ (unicode >= 0xE0100 && unicode <= 0xE01EF)); /* VARIATION SELECTOR-17..256 */ |
+} |
+ |
+/* Zero-Width invisible characters: |
+ * |
+ * 00AD SOFT HYPHEN |
+ * 034F COMBINING GRAPHEME JOINER |
+ * |
+ * 200B ZERO WIDTH SPACE |
+ * 200C ZERO WIDTH NON-JOINER |
+ * 200D ZERO WIDTH JOINER |
+ * 200E LEFT-TO-RIGHT MARK |
+ * 200F RIGHT-TO-LEFT MARK |
+ * |
+ * 2028 LINE SEPARATOR |
+ * |
+ * 202A LEFT-TO-RIGHT EMBEDDING |
+ * 202B RIGHT-TO-LEFT EMBEDDING |
+ * 202C POP DIRECTIONAL FORMATTING |
+ * 202D LEFT-TO-RIGHT OVERRIDE |
+ * 202E RIGHT-TO-LEFT OVERRIDE |
+ * |
+ * 2060 WORD JOINER |
+ * 2061 FUNCTION APPLICATION |
+ * 2062 INVISIBLE TIMES |
+ * 2063 INVISIBLE SEPARATOR |
+ * |
+ * FEFF ZERO WIDTH NO-BREAK SPACE |
+ */ |
+static inline hb_bool_t |
+_hb_unicode_is_zero_width (hb_codepoint_t ch) |
+{ |
+ return ((ch & ~0x007F) == 0x2000 && ( |
+ (ch >= 0x200B && ch <= 0x200F) || |
+ (ch >= 0x202A && ch <= 0x202E) || |
+ (ch >= 0x2060 && ch <= 0x2063) || |
+ (ch == 0x2028) |
+ )) || unlikely (ch == 0x0009 |
+ || ch == 0x00AD |
+ || ch == 0x034F |
+ || ch == 0xFEFF); |
+} |
#endif /* HB_UNICODE_PRIVATE_HH */ |