| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright © 2009 Red Hat, Inc. | 2 * Copyright © 2009 Red Hat, Inc. |
| 3 * Copyright © 2011 Codethink Limited | 3 * Copyright © 2011 Codethink Limited |
| 4 * Copyright © 2010,2011,2012 Google, Inc. | 4 * Copyright © 2010,2011,2012 Google, Inc. |
| 5 * | 5 * |
| 6 * This is part of HarfBuzz, a text shaping library. | 6 * This is part of HarfBuzz, a text shaping library. |
| 7 * | 7 * |
| 8 * Permission is hereby granted, without written agreement and without | 8 * Permission is hereby granted, without written agreement and without |
| 9 * license or royalty fees, to use, copy, modify, and distribute this | 9 * license or royalty fees, to use, copy, modify, and distribute this |
| 10 * software and its documentation for any purpose, provided that the | 10 * software and its documentation for any purpose, provided that the |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 121 0xFE00, 0xFE0F, /* VARIATION
SELECTOR-1..16 */ | 121 0xFE00, 0xFE0F, /* VARIATION
SELECTOR-1..16 */ |
| 122 0xE0100, 0xE01EF)); /* VARIA
TION SELECTOR-17..256 */ | 122 0xE0100, 0xE01EF)); /* VARIA
TION SELECTOR-17..256 */ |
| 123 } | 123 } |
| 124 | 124 |
| 125 /* Default_Ignorable codepoints: | 125 /* Default_Ignorable codepoints: |
| 126 * | 126 * |
| 127 * Note that as of Oct 2012 (Unicode 6.2), U+180E MONGOLIAN VOWEL SEPARATOR | 127 * Note that as of Oct 2012 (Unicode 6.2), U+180E MONGOLIAN VOWEL SEPARATOR |
| 128 * is NOT Default_Ignorable, but it really behaves in a way that it should | 128 * is NOT Default_Ignorable, but it really behaves in a way that it should |
| 129 * be. That has been reported to the Unicode Technical Committee for | 129 * be. That has been reported to the Unicode Technical Committee for |
| 130 * consideration. As such, we include it here, since Uniscribe removes it. | 130 * consideration. As such, we include it here, since Uniscribe removes it. |
| 131 * It *is* in Unicode 6.3 however. U+061C ARABIC LETTER MARK from Unicode |
| 132 * 6.3 is also added manually. The new Unicode 6.3 bidi formatting |
| 133 * characters are encoded in a block that was Default_Ignorable already. |
| 131 * | 134 * |
| 132 * Note: While U+115F and U+1160 are Default_Ignorable, we do NOT want to | 135 * Note: While U+115F and U+1160 are Default_Ignorable, we do NOT want to |
| 133 * hide them, as the way Uniscribe has implemented them is with regular | 136 * hide them, as the way Uniscribe has implemented them is with regular |
| 134 * spacing glyphs, and that's the way fonts are made to work. As such, | 137 * spacing glyphs, and that's the way fonts are made to work. As such, |
| 135 * we make exceptions for those two. | 138 * we make exceptions for those two. |
| 136 * | 139 * |
| 137 * Gathered from: | 140 * Gathered from: |
| 138 * http://unicode.org/cldr/utility/list-unicodeset.jsp?a=[:DI:]&abb=on&ucd=on&
esc=on | 141 * http://unicode.org/cldr/utility/list-unicodeset.jsp?a=[:DI:]&abb=on&ucd=on&
esc=on |
| 139 * | 142 * |
| 140 * Last updated to the page with the following versions: | 143 * Last updated to the page with the following versions: |
| (...skipping 25 matching lines...) Expand all Loading... |
| 166 is_default_ignorable (hb_codepoint_t ch) | 169 is_default_ignorable (hb_codepoint_t ch) |
| 167 { | 170 { |
| 168 hb_codepoint_t plane = ch >> 16; | 171 hb_codepoint_t plane = ch >> 16; |
| 169 if (likely (plane == 0)) | 172 if (likely (plane == 0)) |
| 170 { | 173 { |
| 171 /* BMP */ | 174 /* BMP */ |
| 172 hb_codepoint_t page = ch >> 8; | 175 hb_codepoint_t page = ch >> 8; |
| 173 switch (page) { | 176 switch (page) { |
| 174 case 0x00: return unlikely (ch == 0x00AD); | 177 case 0x00: return unlikely (ch == 0x00AD); |
| 175 case 0x03: return unlikely (ch == 0x034F); | 178 case 0x03: return unlikely (ch == 0x034F); |
| 179 case 0x06: return unlikely (ch == 0x061C); |
| 176 case 0x17: return hb_in_range<hb_codepoint_t> (ch, 0x17B4, 0x17B5); | 180 case 0x17: return hb_in_range<hb_codepoint_t> (ch, 0x17B4, 0x17B5); |
| 177 case 0x18: return hb_in_range<hb_codepoint_t> (ch, 0x180B, 0x180E); | 181 case 0x18: return hb_in_range<hb_codepoint_t> (ch, 0x180B, 0x180E); |
| 178 case 0x20: return hb_in_ranges<hb_codepoint_t> (ch, 0x200B, 0x200F, | 182 case 0x20: return hb_in_ranges<hb_codepoint_t> (ch, 0x200B, 0x200F, |
| 179 0x202A, 0x202E, | 183 0x202A, 0x202E, |
| 180 0x2060, 0x206F); | 184 0x2060, 0x206F); |
| 181 case 0x31: return unlikely (ch == 0x3164); | 185 case 0x31: return unlikely (ch == 0x3164); |
| 182 case 0xFE: return hb_in_range<hb_codepoint_t> (ch, 0xFE00, 0xFE0F) || ch
== 0xFEFF; | 186 case 0xFE: return hb_in_range<hb_codepoint_t> (ch, 0xFE00, 0xFE0F) || ch
== 0xFEFF; |
| 183 case 0xFF: return hb_in_range<hb_codepoint_t> (ch, 0xFFF0, 0xFFF8) || ch
== 0xFFA0; | 187 case 0xFF: return hb_in_range<hb_codepoint_t> (ch, 0xFFF0, 0xFFF8) || ch
== 0xFFA0; |
| 184 default: return false; | 188 default: return false; |
| 185 } | 189 } |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 304 /* Misc */ | 308 /* Misc */ |
| 305 | 309 |
| 306 #define HB_UNICODE_GENERAL_CATEGORY_IS_MARK(gen_cat) \ | 310 #define HB_UNICODE_GENERAL_CATEGORY_IS_MARK(gen_cat) \ |
| 307 (FLAG (gen_cat) & \ | 311 (FLAG (gen_cat) & \ |
| 308 (FLAG (HB_UNICODE_GENERAL_CATEGORY_SPACING_MARK) | \ | 312 (FLAG (HB_UNICODE_GENERAL_CATEGORY_SPACING_MARK) | \ |
| 309 FLAG (HB_UNICODE_GENERAL_CATEGORY_ENCLOSING_MARK) | \ | 313 FLAG (HB_UNICODE_GENERAL_CATEGORY_ENCLOSING_MARK) | \ |
| 310 FLAG (HB_UNICODE_GENERAL_CATEGORY_NON_SPACING_MARK))) | 314 FLAG (HB_UNICODE_GENERAL_CATEGORY_NON_SPACING_MARK))) |
| 311 | 315 |
| 312 | 316 |
| 313 #endif /* HB_UNICODE_PRIVATE_HH */ | 317 #endif /* HB_UNICODE_PRIVATE_HH */ |
| OLD | NEW |