src/hb-common.cc | 8 ++++ src/hb-common.h | 27 ++++++--------- src/hb-ot-shape-complex-private.hh | 4 ++ src/hb-unicode-private.hh | 66 ++++++++++++++++--------------------- 4 files changed, 54 insertions(+), 51 deletions(-)
New commits: commit 577ca4814314c374824cac736996b9cdd4f9d11f Author: Behdad Esfahbod <beh...@behdad.org> Date: Wed Jun 18 12:29:23 2014 -0400 [unicode7] Update list of Default_Ignorable codepoints diff --git a/src/hb-unicode-private.hh b/src/hb-unicode-private.hh index 991130f..583a197 100644 --- a/src/hb-unicode-private.hh +++ b/src/hb-unicode-private.hh @@ -130,46 +130,39 @@ HB_UNICODE_FUNCS_IMPLEMENT_CALLBACKS_SIMPLE /* Default_Ignorable codepoints: * - * Note that as of Oct 2012 (Unicode 6.2), U+180E MONGOLIAN VOWEL SEPARATOR - * is NOT Default_Ignorable, but it really behaves in a way that it should - * be. That has been reported to the Unicode Technical Committee for - * consideration. As such, we include it here, since Uniscribe removes it. - * It *is* in Unicode 6.3 however. U+061C ARABIC LETTER MARK from Unicode - * 6.3 is also added manually. The new Unicode 6.3 bidi formatting - * characters are encoded in a block that was Default_Ignorable already. - * * Note: While U+115F, U+1160, U+3164 and U+FFA0 are Default_Ignorable, * we do NOT want to hide them, as the way Uniscribe has implemented them * is with regular spacing glyphs, and that's the way fonts are made to work. * As such, we make exceptions for those four. * - * Gathered from: - * http://unicode.org/cldr/utility/list-unicodeset.jsp?a=[:DI:]&abb=on&ucd=on&esc=on - * - * Last updated to the page with the following versions: - * Version 3.6; ICU version: 50.0.1.0; Unicode version: 6.1.0.0 - * - * 4,167 Code Points - * - * [\u00AD\u034F\u115F\u1160\u17B4\u17B5\u180B-\u180D\u200B-\u200F\u202A-\u202E\u2060-\u206F\u3164\uFE00-\uFE0F\uFEFF\uFFA0\uFFF0-\uFFF8\U0001D173-\U0001D17A\U000E0000-\U000E0FFF] - * - * 00AD ;SOFT HYPHEN - * 034F ;COMBINING GRAPHEME JOINER - * #115F ;HANGUL CHOSEONG FILLER - * #1160 ;HANGUL JUNGSEONG FILLER - * 17B4 ;KHMER VOWEL INHERENT AQ - * 17B5 ;KHMER VOWEL INHERENT AA - * 180B..180D ;MONGOLIAN FREE VARIATION SELECTOR THREE - * 200B..200F ;RIGHT-TO-LEFT MARK - * 202A..202E ;RIGHT-TO-LEFT OVERRIDE - * 2060..206F ;NOMINAL DIGIT SHAPES - * #3164 ;HANGUL FILLER - * FE00..FE0F ;VARIATION SELECTOR-16 - * FEFF ;ZERO WIDTH NO-BREAK SPACE - * #FFA0 ;HALFWIDTH HANGUL FILLER - * FFF0..FFF8 ;<unassigned-FFF8> - * 1D173..1D17A ;MUSICAL SYMBOL END PHRASE - * E0000..E0FFF ;<unassigned-E0FFF> + * Unicode 7.0: + * $ grep '; Default_Ignorable_Code_Point ' DerivedCoreProperties.txt | sed 's/;.*#/#/' + * 00AD # Cf SOFT HYPHEN + * 034F # Mn COMBINING GRAPHEME JOINER + * 061C # Cf ARABIC LETTER MARK + * 115F..1160 # Lo [2] HANGUL CHOSEONG FILLER..HANGUL JUNGSEONG FILLER + * 17B4..17B5 # Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA + * 180B..180D # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE + * 180E # Cf MONGOLIAN VOWEL SEPARATOR + * 200B..200F # Cf [5] ZERO WIDTH SPACE..RIGHT-TO-LEFT MARK + * 202A..202E # Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE + * 2060..2064 # Cf [5] WORD JOINER..INVISIBLE PLUS + * 2065 # Cn <reserved-2065> + * 2066..206F # Cf [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES + * 3164 # Lo HANGUL FILLER + * FE00..FE0F # Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16 + * FEFF # Cf ZERO WIDTH NO-BREAK SPACE + * FFA0 # Lo HALFWIDTH HANGUL FILLER + * FFF0..FFF8 # Cn [9] <reserved-FFF0>..<reserved-FFF8> + * 1BCA0..1BCA3 # Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP + * 1D173..1D17A # Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE + * E0000 # Cn <reserved-E0000> + * E0001 # Cf LANGUAGE TAG + * E0002..E001F # Cn [30] <reserved-E0002>..<reserved-E001F> + * E0020..E007F # Cf [96] TAG SPACE..CANCEL TAG + * E0080..E00FF # Cn [128] <reserved-E0080>..<reserved-E00FF> + * E0100..E01EF # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256 + * E01F0..E0FFF # Cn [3600] <reserved-E01F0>..<reserved-E0FFF> */ inline hb_bool_t is_default_ignorable (hb_codepoint_t ch) @@ -197,7 +190,8 @@ HB_UNICODE_FUNCS_IMPLEMENT_CALLBACKS_SIMPLE { /* Other planes */ switch (plane) { - case 0x01: return hb_in_range<hb_codepoint_t> (ch, 0x0001D173, 0x0001D17A); + case 0x01: return hb_in_ranges<hb_codepoint_t> (ch, 0x0001BCA0, 0x0001BCA3, + 0x0001D173, 0x0001D17A); case 0x0E: return hb_in_range<hb_codepoint_t> (ch, 0x000E0000, 0x000E0FFF); default: return false; } commit 7cfee3827636f0dff7df5c8975a4fadd1b4bfbd5 Author: Behdad Esfahbod <beh...@behdad.org> Date: Mon Apr 28 15:09:30 2014 -0700 [unicode7] Route Manichaean and Psalter Pahlavi through Arabic shaper Still needs update to joining table to fully work. diff --git a/src/hb-ot-shape-complex-private.hh b/src/hb-ot-shape-complex-private.hh index 104726e..3e581af 100644 --- a/src/hb-ot-shape-complex-private.hh +++ b/src/hb-ot-shape-complex-private.hh @@ -173,6 +173,10 @@ hb_ot_shape_complex_categorize (const hb_ot_shape_planner_t *planner) /* Unicode-6.0 additions */ case HB_SCRIPT_MANDAIC: + /* Unicode-7.0 additions */ + case HB_SCRIPT_MANICHAEAN: + case HB_SCRIPT_PSALTER_PAHLAVI: + /* For Arabic script, use the Arabic shaper even if no OT script tag was found. * This is because we do fallback shaping for Arabic script (and not others). */ if (planner->map.chosen_script[0] != HB_OT_TAG_DEFAULT_SCRIPT || commit a4a7899cd93fb9d1bc2163a4bbabfa733ee5bd52 Author: Behdad Esfahbod <beh...@behdad.org> Date: Mon Apr 28 15:06:42 2014 -0700 [unicode7] Mark right-to-left scripts diff --git a/src/hb-common.cc b/src/hb-common.cc index afaecce..33d2e55 100644 --- a/src/hb-common.cc +++ b/src/hb-common.cc @@ -484,6 +484,14 @@ hb_script_get_horizontal_direction (hb_script_t script) case HB_SCRIPT_MEROITIC_CURSIVE: case HB_SCRIPT_MEROITIC_HIEROGLYPHS: + /* Unicode-7.0 additions */ + case HB_SCRIPT_MANICHAEAN: + case HB_SCRIPT_MENDE_KIKAKUI: + case HB_SCRIPT_NABATAEAN: + case HB_SCRIPT_OLD_NORTH_ARABIAN: + case HB_SCRIPT_PALMYRENE: + case HB_SCRIPT_PSALTER_PAHLAVI: + return HB_DIRECTION_RTL; } commit 62587bfc5178a447ef66d88eab7412a7efe84692 Author: Behdad Esfahbod <beh...@behdad.org> Date: Mon Apr 28 15:07:21 2014 -0700 [unicode7] Declare Unicode 7 scripts diff --git a/src/hb-common.h b/src/hb-common.h index 88f4755..b24cbb3 100644 --- a/src/hb-common.h +++ b/src/hb-common.h @@ -270,17 +270,6 @@ typedef enum /*6.1*/ HB_SCRIPT_SORA_SOMPENG = HB_TAG ('S','o','r','a'), /*6.1*/ HB_SCRIPT_TAKRI = HB_TAG ('T','a','k','r'), - /* No script set. */ - /*---*/ HB_SCRIPT_INVALID = HB_TAG_NONE, - - /* Dummy value to ensure any hb_tag_t value can be passed/stored as hb_script_t - * without risking undefined behavior. */ - /*---*/ _HB_SCRIPT_MAX_VALUE = HB_TAG_MAX - -} hb_script_t; - -/* These are moved out of hb_script_t because glib-mkenums chokes otherwise. */ -#if 0 /*7.0*/ HB_SCRIPT_BASSA_VAH = HB_TAG ('B','a','s','s'), /*7.0*/ HB_SCRIPT_CAUCASIAN_ALBANIAN = HB_TAG ('A','g','h','b'), /*7.0*/ HB_SCRIPT_DUPLOYAN = HB_TAG ('D','u','p','l'), @@ -304,7 +293,15 @@ typedef enum /*7.0*/ HB_SCRIPT_SIDDHAM = HB_TAG ('S','i','d','d'), /*7.0*/ HB_SCRIPT_TIRHUTA = HB_TAG ('T','i','r','h'), /*7.0*/ HB_SCRIPT_WARANG_CITI = HB_TAG ('W','a','r','a'), -#endif + + /* No script set. */ + /*---*/ HB_SCRIPT_INVALID = HB_TAG_NONE, + + /* Dummy value to ensure any hb_tag_t value can be passed/stored as hb_script_t + * without risking undefined behavior. */ + /*---*/ _HB_SCRIPT_MAX_VALUE = HB_TAG_MAX + +} hb_script_t; /* Script functions */ commit dc61294aa93d36d0c5d187d4a692560a7cb46444 Author: Behdad Esfahbod <beh...@behdad.org> Date: Mon Apr 28 14:58:28 2014 -0700 [unicode7] Add missing ISO 15924 tags diff --git a/src/hb-common.h b/src/hb-common.h index c8bfd88..88f4755 100644 --- a/src/hb-common.h +++ b/src/hb-common.h @@ -292,16 +292,16 @@ typedef enum /*7.0*/ HB_SCRIPT_MAHAJANI = HB_TAG ('M','a','h','j'), /*7.0*/ HB_SCRIPT_MANICHAEAN = HB_TAG ('M','a','n','i'), /*7.0*/ HB_SCRIPT_MENDE_KIKAKUI = HB_TAG ('M','e','n','d'), - /*7.0*/ HB_SCRIPT_MODI = ??? + /*7.0*/ HB_SCRIPT_MODI = HB_TAG ('M','o','d','i'), /*7.0*/ HB_SCRIPT_MRO = HB_TAG ('M','r','o','o'), /*7.0*/ HB_SCRIPT_NABATAEAN = HB_TAG ('N','b','a','t'), /*7.0*/ HB_SCRIPT_OLD_NORTH_ARABIAN = HB_TAG ('N','a','r','b'), /*7.0*/ HB_SCRIPT_OLD_PERMIC = HB_TAG ('P','e','r','m'), /*7.0*/ HB_SCRIPT_PAHAWH_HMONG = HB_TAG ('H','m','n','g'), /*7.0*/ HB_SCRIPT_PALMYRENE = HB_TAG ('P','a','l','m'), - /*7.0*/ HB_SCRIPT_PAU_CIN_HAU = ??? + /*7.0*/ HB_SCRIPT_PAU_CIN_HAU = HB_TAG ('P','a','u','c'), /*7.0*/ HB_SCRIPT_PSALTER_PAHLAVI = HB_TAG ('P','h','l','p'), - /*7.0*/ HB_SCRIPT_SIDDHAM = ??? + /*7.0*/ HB_SCRIPT_SIDDHAM = HB_TAG ('S','i','d','d'), /*7.0*/ HB_SCRIPT_TIRHUTA = HB_TAG ('T','i','r','h'), /*7.0*/ HB_SCRIPT_WARANG_CITI = HB_TAG ('W','a','r','a'), #endif _______________________________________________ HarfBuzz mailing list HarfBuzz@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/harfbuzz