Update Harfbuzz to version 10.2.0
[ChangeLog][Third-Party Code] Upgraded Harfbuzz to version 10.2.0. Pick-to: 5.15 6.5 6.8 6.9 Fixes: QTBUG-132855 Change-Id: I542c054ccdc311b17363456c693a2057c2e496c1 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
This commit is contained in:
parent
549bab4150
commit
308ee2738f
2
src/3rdparty/harfbuzz-ng/CMakeLists.txt
vendored
2
src/3rdparty/harfbuzz-ng/CMakeLists.txt
vendored
@ -63,7 +63,7 @@ qt_internal_add_3rdparty_library(BundledHarfbuzz
|
||||
src/hb-subset-instancer-solver.cc
|
||||
src/hb-subset-plan.cc
|
||||
src/hb-subset-plan-member-list.hh
|
||||
src/hb-subset-repacker.cc src/hb-subset-repacker.h
|
||||
src/hb-subset-serialize.cc src/hb-subset-serialize.h
|
||||
src/hb-unicode.cc src/hb-unicode.h src/hb-unicode.hh
|
||||
src/hb-utf.hh
|
||||
src/hb-version.h
|
||||
|
4
src/3rdparty/harfbuzz-ng/qt_attribution.json
vendored
4
src/3rdparty/harfbuzz-ng/qt_attribution.json
vendored
@ -7,8 +7,8 @@
|
||||
|
||||
"Description": "HarfBuzz is an OpenType text shaping engine.",
|
||||
"Homepage": "http://harfbuzz.org",
|
||||
"Version": "10.1.0",
|
||||
"DownloadLocation": "https://github.com/harfbuzz/harfbuzz/releases/tag/10.1.0",
|
||||
"Version": "10.2.0",
|
||||
"DownloadLocation": "https://github.com/harfbuzz/harfbuzz/releases/tag/10.2.0",
|
||||
"PURL": "pkg:github/harfbuzz/harfbuzz@$<VERSION>",
|
||||
"CPE": "cpe:2.3:a:harfbuzz_project:harfbuzz:$<VERSION>:*:*:*:*:*:*:*",
|
||||
"License": "MIT License",
|
||||
|
@ -1003,7 +1003,7 @@ struct PaintTransform
|
||||
void paint_glyph (hb_paint_context_t *c) const
|
||||
{
|
||||
TRACE_PAINT (this);
|
||||
(this+transform).paint_glyph (c);
|
||||
(this+transform).paint_glyph (c); // This does a push_transform()
|
||||
c->recurse (this+src);
|
||||
c->funcs->pop_transform (c->data);
|
||||
}
|
||||
|
@ -58,7 +58,7 @@
|
||||
#include "hb-subset-instancer-iup.cc"
|
||||
#include "hb-subset-instancer-solver.cc"
|
||||
#include "hb-subset-plan.cc"
|
||||
#include "hb-subset-repacker.cc"
|
||||
#include "hb-subset-serialize.cc"
|
||||
#include "hb-subset.cc"
|
||||
#include "hb-ucd.cc"
|
||||
#include "hb-unicode.cc"
|
||||
|
12
src/3rdparty/harfbuzz-ng/src/hb-cairo.cc
vendored
12
src/3rdparty/harfbuzz-ng/src/hb-cairo.cc
vendored
@ -180,7 +180,7 @@ hb_cairo_paint_color_glyph (hb_paint_funcs_t *pfuncs HB_UNUSED,
|
||||
|
||||
hb_position_t x_scale, y_scale;
|
||||
hb_font_get_scale (font, &x_scale, &y_scale);
|
||||
cairo_scale (cr, x_scale, y_scale);
|
||||
cairo_scale (cr, x_scale, -y_scale);
|
||||
|
||||
cairo_glyph_t cairo_glyph = { glyph, 0, 0 };
|
||||
cairo_set_scaled_font (cr, c->scaled_font);
|
||||
@ -597,7 +597,9 @@ hb_cairo_render_glyph (cairo_scaled_font_t *scaled_font,
|
||||
|
||||
hb_position_t x_scale, y_scale;
|
||||
hb_font_get_scale (font, &x_scale, &y_scale);
|
||||
cairo_scale (cr, +1./x_scale, -1./y_scale);
|
||||
cairo_scale (cr,
|
||||
+1. / (x_scale ? x_scale : 1),
|
||||
-1. / (y_scale ? y_scale : 1));
|
||||
|
||||
hb_font_draw_glyph (font, glyph, hb_cairo_draw_get_funcs (), cr);
|
||||
|
||||
@ -628,7 +630,9 @@ hb_cairo_render_color_glyph (cairo_scaled_font_t *scaled_font,
|
||||
hb_color_t color = HB_COLOR (0, 0, 0, 255);
|
||||
hb_position_t x_scale, y_scale;
|
||||
hb_font_get_scale (font, &x_scale, &y_scale);
|
||||
cairo_scale (cr, +1./x_scale, -1./y_scale);
|
||||
cairo_scale (cr,
|
||||
+1. / (x_scale ? x_scale : 1),
|
||||
-1. / (y_scale ? y_scale : 1));
|
||||
|
||||
hb_cairo_context_t c;
|
||||
c.scaled_font = scaled_font;
|
||||
@ -1000,6 +1004,7 @@ hb_cairo_glyphs_from_buffer (hb_buffer_t *buffer,
|
||||
end = start + hb_glyph[i].cluster - hb_glyph[i+1].cluster;
|
||||
else
|
||||
end = (const char *) hb_utf_offset_to_pointer<hb_utf8_t> ((const uint8_t *) start,
|
||||
(const uint8_t *) utf8, utf8_len,
|
||||
(signed) (hb_glyph[i].cluster - hb_glyph[i+1].cluster));
|
||||
(*clusters)[cluster].num_bytes = end - start;
|
||||
start = end;
|
||||
@ -1020,6 +1025,7 @@ hb_cairo_glyphs_from_buffer (hb_buffer_t *buffer,
|
||||
end = start + hb_glyph[i].cluster - hb_glyph[i-1].cluster;
|
||||
else
|
||||
end = (const char *) hb_utf_offset_to_pointer<hb_utf8_t> ((const uint8_t *) start,
|
||||
(const uint8_t *) utf8, utf8_len,
|
||||
(signed) (hb_glyph[i].cluster - hb_glyph[i-1].cluster));
|
||||
(*clusters)[cluster].num_bytes = end - start;
|
||||
start = end;
|
||||
|
3
src/3rdparty/harfbuzz-ng/src/hb-common.cc
vendored
3
src/3rdparty/harfbuzz-ng/src/hb-common.cc
vendored
@ -625,6 +625,9 @@ hb_script_get_horizontal_direction (hb_script_t script)
|
||||
/* Unicode-14.0 additions */
|
||||
case HB_SCRIPT_OLD_UYGHUR:
|
||||
|
||||
/* Unicode-16.0 additions */
|
||||
case HB_SCRIPT_GARAY:
|
||||
|
||||
return HB_DIRECTION_RTL;
|
||||
|
||||
|
||||
|
2
src/3rdparty/harfbuzz-ng/src/hb-config.hh
vendored
2
src/3rdparty/harfbuzz-ng/src/hb-config.hh
vendored
@ -68,8 +68,6 @@
|
||||
#define HB_NO_FACE_COLLECT_UNICODES
|
||||
#define HB_NO_GETENV
|
||||
#define HB_NO_HINTING
|
||||
#define HB_NO_LANGUAGE_LONG
|
||||
#define HB_NO_LANGUAGE_PRIVATE_SUBTAG
|
||||
#define HB_NO_LAYOUT_FEATURE_PARAMS
|
||||
#define HB_NO_LAYOUT_COLLECT_GLYPHS
|
||||
#define HB_NO_LAYOUT_RARELY_USED
|
||||
|
@ -34,8 +34,12 @@
|
||||
#include "hb-font.hh"
|
||||
#include "hb-machinery.hh"
|
||||
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED < 101100
|
||||
#if (defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1080) \
|
||||
|| (defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ < 60000) \
|
||||
|| (defined(__ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__ < 90000)
|
||||
# define kCTFontOrientationDefault kCTFontDefaultOrientation
|
||||
# define kCTFontOrientationHorizontal kCTFontHorizontalOrientation
|
||||
# define kCTFontOrientationVertical kCTFontVerticalOrientation
|
||||
#endif
|
||||
|
||||
#define MAX_GLYPHS 64u
|
||||
|
3
src/3rdparty/harfbuzz-ng/src/hb-face.cc
vendored
3
src/3rdparty/harfbuzz-ng/src/hb-face.cc
vendored
@ -470,7 +470,8 @@ hb_face_is_immutable (const hb_face_t *face)
|
||||
* @tag: The #hb_tag_t of the table to query
|
||||
*
|
||||
* Fetches a reference to the specified table within
|
||||
* the specified face.
|
||||
* the specified face. Returns an empty blob if referencing table data is not
|
||||
* possible.
|
||||
*
|
||||
* Return value: (transfer full): A pointer to the @tag table within @face
|
||||
*
|
||||
|
2
src/3rdparty/harfbuzz-ng/src/hb-ft-colr.hh
vendored
2
src/3rdparty/harfbuzz-ng/src/hb-ft-colr.hh
vendored
@ -547,7 +547,9 @@ hb_ft_paint_glyph_colr (hb_font_t *font,
|
||||
c.funcs->push_root_transform (c.data, font);
|
||||
|
||||
if (is_bounded)
|
||||
{
|
||||
c.recurse (paint);
|
||||
}
|
||||
|
||||
c.funcs->pop_transform (c.data);
|
||||
c.funcs->pop_clip (c.data);
|
||||
|
8
src/3rdparty/harfbuzz-ng/src/hb-ft.cc
vendored
8
src/3rdparty/harfbuzz-ng/src/hb-ft.cc
vendored
@ -931,11 +931,15 @@ hb_ft_paint_glyph (hb_font_t *font,
|
||||
hb_lock_t lock (ft_font->lock);
|
||||
FT_Face ft_face = ft_font->ft_face;
|
||||
|
||||
FT_Long load_flags = ft_font->load_flags | FT_LOAD_NO_BITMAP | FT_LOAD_COLOR;
|
||||
#if (FREETYPE_MAJOR*10000 + FREETYPE_MINOR*100 + FREETYPE_PATCH) >= 21301
|
||||
load_flags |= FT_LOAD_NO_SVG;
|
||||
#endif
|
||||
|
||||
/* We release the lock before calling into glyph callbacks, such that
|
||||
* eg. draw API can call back into the face.*/
|
||||
|
||||
if (unlikely (FT_Load_Glyph (ft_face, gid,
|
||||
ft_font->load_flags | FT_LOAD_COLOR)))
|
||||
if (unlikely (FT_Load_Glyph (ft_face, gid, load_flags)))
|
||||
return;
|
||||
|
||||
if (ft_face->glyph->format == FT_GLYPH_FORMAT_OUTLINE)
|
||||
|
2
src/3rdparty/harfbuzz-ng/src/hb-null.hh
vendored
2
src/3rdparty/harfbuzz-ng/src/hb-null.hh
vendored
@ -176,7 +176,7 @@ template <typename Type>
|
||||
static inline Type& Crap () {
|
||||
static_assert (hb_null_size (Type) <= HB_NULL_POOL_SIZE, "Increase HB_NULL_POOL_SIZE.");
|
||||
Type *obj = reinterpret_cast<Type *> (_hb_CrapPool);
|
||||
memcpy (obj, std::addressof (Null (Type)), sizeof (*obj));
|
||||
memcpy (reinterpret_cast<void*>(obj), std::addressof (Null (Type)), sizeof (*obj));
|
||||
return *obj;
|
||||
}
|
||||
template <typename QType>
|
||||
|
@ -1397,6 +1397,9 @@ struct CmapSubtableFormat14
|
||||
hb_vector_t<hb_pair_t<unsigned, unsigned>> obj_indices;
|
||||
for (int i = src_tbl->record.len - 1; i >= 0; i--)
|
||||
{
|
||||
if (!unicodes->has(src_tbl->record[i].varSelector))
|
||||
continue;
|
||||
|
||||
hb_pair_t<unsigned, unsigned> result = src_tbl->record[i].copy (c, unicodes, glyphs_requested, glyph_map, base);
|
||||
if (result.first || result.second)
|
||||
obj_indices.push (result);
|
||||
@ -1453,6 +1456,7 @@ struct CmapSubtableFormat14
|
||||
{
|
||||
+ hb_iter (record)
|
||||
| hb_filter (hb_bool, &VariationSelectorRecord::nonDefaultUVS)
|
||||
| hb_filter (unicodes, &VariationSelectorRecord::varSelector)
|
||||
| hb_map (&VariationSelectorRecord::nonDefaultUVS)
|
||||
| hb_map (hb_add (this))
|
||||
| hb_apply ([=] (const NonDefaultUVS& _) { _.closure_glyphs (unicodes, glyphset); })
|
||||
|
@ -1462,6 +1462,7 @@ static inline bool ligate_input (hb_ot_apply_context_t *c,
|
||||
unsigned int this_comp = _hb_glyph_info_get_lig_comp (&buffer->cur());
|
||||
if (this_comp == 0)
|
||||
this_comp = last_num_components;
|
||||
assert (components_so_far >= last_num_components);
|
||||
unsigned int new_lig_comp = components_so_far - last_num_components +
|
||||
hb_min (this_comp, last_num_components);
|
||||
_hb_glyph_info_set_lig_props_for_mark (&buffer->cur(), lig_id, new_lig_comp);
|
||||
@ -1487,6 +1488,7 @@ static inline bool ligate_input (hb_ot_apply_context_t *c,
|
||||
unsigned this_comp = _hb_glyph_info_get_lig_comp (&buffer->info[i]);
|
||||
if (!this_comp) break;
|
||||
|
||||
assert (components_so_far >= last_num_components);
|
||||
unsigned new_lig_comp = components_so_far - last_num_components +
|
||||
hb_min (this_comp, last_num_components);
|
||||
_hb_glyph_info_set_lig_props_for_mark (&buffer->info[i], lig_id, new_lig_comp);
|
||||
@ -1542,6 +1544,7 @@ static bool match_lookahead (hb_ot_apply_context_t *c,
|
||||
TRACE_APPLY (nullptr);
|
||||
|
||||
hb_ot_apply_context_t::skipping_iterator_t &skippy_iter = c->iter_context;
|
||||
assert (start_index >= 1);
|
||||
skippy_iter.reset (start_index - 1);
|
||||
skippy_iter.set_match_func (match_func, match_data);
|
||||
skippy_iter.set_glyph_data (lookahead);
|
||||
@ -1852,6 +1855,7 @@ static inline void apply_lookup (hb_ot_apply_context_t *c,
|
||||
if (match_positions != match_positions_input)
|
||||
hb_free (match_positions);
|
||||
|
||||
assert (end >= 0);
|
||||
(void) buffer->move_to (end);
|
||||
}
|
||||
|
||||
|
12
src/3rdparty/harfbuzz-ng/src/hb-ot-layout.cc
vendored
12
src/3rdparty/harfbuzz-ng/src/hb-ot-layout.cc
vendored
@ -246,6 +246,18 @@ OT::GDEF::is_blocklisted (hb_blob_t *blob,
|
||||
/* sha1sum: c26e41d567ed821bed997e937bc0c41435689e85 Padauk.ttf
|
||||
* "Padauk Regular" "Version 2.5", see https://crbug.com/681813 */
|
||||
case HB_CODEPOINT_ENCODE3 (1004, 59092, 14836):
|
||||
/* 88d2006ca084f04af2df1954ed714a8c71e8400f Courier New.ttf from macOS 15 */
|
||||
case HB_CODEPOINT_ENCODE3 (588, 5078, 14418):
|
||||
/* 608e3ebb6dd1aee521cff08eb07d500a2c59df68 Courier New Bold.ttf from macOS 15 */
|
||||
case HB_CODEPOINT_ENCODE3 (588, 5078, 14238):
|
||||
/* d13221044ff054efd78f1cd8631b853c3ce85676 cour.ttf from Windows 10 */
|
||||
case HB_CODEPOINT_ENCODE3 (894, 17162, 33960):
|
||||
/* 68ed4a22d8067fcf1622ac6f6e2f4d3a2e3ec394 courbd.ttf from Windows 10 */
|
||||
case HB_CODEPOINT_ENCODE3 (894, 17154, 34472):
|
||||
/* 4cdb0259c96b7fd7c103821bb8f08f7cc6b211d7 cour.ttf from Windows 8.1 */
|
||||
case HB_CODEPOINT_ENCODE3 (816, 7868, 17052):
|
||||
/* 920483d8a8ed37f7f0afdabbe7f679aece7c75d8 courbd.ttf from Windows 8.1 */
|
||||
case HB_CODEPOINT_ENCODE3 (816, 7868, 17138):
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
@ -284,8 +284,8 @@ struct OS2
|
||||
os2_prime->usWidthClass = width_class;
|
||||
}
|
||||
|
||||
os2_prime->usFirstCharIndex = hb_min (0xFFFFu, c->plan->unicodes.get_min ());
|
||||
os2_prime->usLastCharIndex = hb_min (0xFFFFu, c->plan->unicodes.get_max ());
|
||||
os2_prime->usFirstCharIndex = hb_min (0xFFFFu, c->plan->os2_info.min_cmap_codepoint);
|
||||
os2_prime->usLastCharIndex = hb_min (0xFFFFu, c->plan->os2_info.max_cmap_codepoint);
|
||||
|
||||
if (c->plan->flags & HB_SUBSET_FLAGS_NO_PRUNE_UNICODE_RANGES)
|
||||
return_trace (true);
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -48,6 +48,7 @@
|
||||
#define OT_CM I_Cat(CM)
|
||||
#define OT_Symbol I_Cat(Symbol)
|
||||
#define OT_CS I_Cat(CS)
|
||||
#define OT_SMPst I_Cat(SMPst)
|
||||
/* khmer */
|
||||
#define OT_VAbv K_Cat(VAbv)
|
||||
#define OT_VBlw K_Cat(VBlw)
|
||||
@ -94,7 +95,8 @@ static_assert (OT_VPst == M_Cat(VPst), "");
|
||||
#define _OT_R OT_Ra /* 14 chars; Ra */
|
||||
#define _OT_Rf OT_Repha /* 1 chars; Repha */
|
||||
#define _OT_Rt OT_Robatic /* 3 chars; Robatic */
|
||||
#define _OT_SM OT_SM /* 56 chars; SM */
|
||||
#define _OT_SM OT_SM /* 50 chars; SM */
|
||||
#define _OT_SP OT_SMPst /* 6 chars; SMPst */
|
||||
#define _OT_S OT_Symbol /* 22 chars; Symbol */
|
||||
#define _OT_V OT_V /* 172 chars; V */
|
||||
#define _OT_VA OT_VAbv /* 18 chars; VAbv */
|
||||
@ -145,7 +147,7 @@ static const uint16_t indic_table[] = {
|
||||
|
||||
/* Latin-1 Supplement */
|
||||
|
||||
/* 00B0 */ _(X,X), _(X,X),_(SM,SM),_(SM,SM), _(X,X), _(X,X), _(X,X), _(X,X),
|
||||
/* 00B0 */ _(X,X), _(X,X),_(SP,SM),_(SP,SM), _(X,X), _(X,X), _(X,X), _(X,X),
|
||||
/* 00B8 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
|
||||
/* 00C0 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
|
||||
/* 00C8 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
|
||||
@ -398,9 +400,9 @@ static const uint16_t indic_table[] = {
|
||||
|
||||
/* Superscripts and Subscripts */
|
||||
|
||||
/* 2070 */ _(X,X), _(X,X), _(X,X), _(X,X),_(SM,SM), _(X,X), _(X,X), _(X,X),
|
||||
/* 2070 */ _(X,X), _(X,X), _(X,X), _(X,X),_(SP,SM), _(X,X), _(X,X), _(X,X),
|
||||
/* 2078 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
|
||||
/* 2080 */ _(X,X), _(X,X),_(SM,SM),_(SM,SM),_(SM,SM), _(X,X), _(X,X), _(X,X),
|
||||
/* 2080 */ _(X,X), _(X,X),_(SP,SM),_(SP,SM),_(SP,SM), _(X,X), _(X,X), _(X,X),
|
||||
|
||||
#define indic_offset_0x25f8u 1592
|
||||
|
||||
@ -540,6 +542,7 @@ hb_indic_get_categories (hb_codepoint_t u)
|
||||
#undef _OT_Rf
|
||||
#undef _OT_Rt
|
||||
#undef _OT_SM
|
||||
#undef _OT_SP
|
||||
#undef _OT_S
|
||||
#undef _OT_V
|
||||
#undef _OT_VA
|
||||
|
@ -68,6 +68,7 @@ enum myanmar_syllable_type_t {
|
||||
#define myanmar_syllable_machine_ex_PT 39u
|
||||
#define myanmar_syllable_machine_ex_Ra 15u
|
||||
#define myanmar_syllable_machine_ex_SM 8u
|
||||
#define myanmar_syllable_machine_ex_SMPst 57u
|
||||
#define myanmar_syllable_machine_ex_VAbv 20u
|
||||
#define myanmar_syllable_machine_ex_VBlw 21u
|
||||
#define myanmar_syllable_machine_ex_VPre 22u
|
||||
@ -77,35 +78,35 @@ enum myanmar_syllable_type_t {
|
||||
#define myanmar_syllable_machine_ex_ZWNJ 5u
|
||||
|
||||
|
||||
#line 81 "hb-ot-shaper-myanmar-machine.hh"
|
||||
#line 82 "hb-ot-shaper-myanmar-machine.hh"
|
||||
static const unsigned char _myanmar_syllable_machine_trans_keys[] = {
|
||||
1u, 41u, 3u, 41u, 5u, 39u, 5u, 8u, 3u, 41u, 3u, 39u, 3u, 39u, 5u, 39u,
|
||||
5u, 39u, 3u, 39u, 3u, 39u, 3u, 41u, 5u, 39u, 1u, 15u, 3u, 39u, 3u, 39u,
|
||||
3u, 40u, 3u, 39u, 3u, 41u, 3u, 41u, 3u, 39u, 3u, 41u, 3u, 41u, 3u, 41u,
|
||||
3u, 41u, 3u, 41u, 5u, 39u, 5u, 8u, 3u, 41u, 3u, 39u, 3u, 39u, 5u, 39u,
|
||||
5u, 39u, 3u, 39u, 3u, 39u, 3u, 41u, 5u, 39u, 1u, 15u, 3u, 41u, 3u, 39u,
|
||||
3u, 39u, 3u, 40u, 3u, 39u, 3u, 41u, 3u, 41u, 3u, 39u, 3u, 41u, 3u, 41u,
|
||||
3u, 41u, 3u, 41u, 3u, 41u, 3u, 41u, 3u, 41u, 1u, 41u, 1u, 15u, 0
|
||||
1u, 57u, 3u, 57u, 5u, 57u, 5u, 57u, 3u, 57u, 5u, 57u, 3u, 57u, 3u, 57u,
|
||||
3u, 57u, 3u, 57u, 3u, 57u, 5u, 57u, 1u, 15u, 3u, 57u, 3u, 57u, 3u, 57u,
|
||||
3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u,
|
||||
3u, 57u, 5u, 57u, 5u, 57u, 3u, 57u, 5u, 57u, 3u, 57u, 3u, 57u, 3u, 57u,
|
||||
3u, 57u, 3u, 57u, 5u, 57u, 1u, 15u, 3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u,
|
||||
3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u, 3u, 57u,
|
||||
3u, 57u, 3u, 57u, 3u, 57u, 1u, 57u, 1u, 15u, 0
|
||||
};
|
||||
|
||||
static const char _myanmar_syllable_machine_key_spans[] = {
|
||||
41, 39, 35, 4, 39, 37, 37, 35,
|
||||
35, 37, 37, 39, 35, 15, 37, 37,
|
||||
38, 37, 39, 39, 37, 39, 39, 39,
|
||||
39, 39, 35, 4, 39, 37, 37, 35,
|
||||
35, 37, 37, 39, 35, 15, 39, 37,
|
||||
37, 38, 37, 39, 39, 37, 39, 39,
|
||||
39, 39, 39, 39, 39, 41, 15
|
||||
57, 55, 53, 53, 55, 53, 55, 55,
|
||||
55, 55, 55, 53, 15, 55, 55, 55,
|
||||
55, 55, 55, 55, 55, 55, 55, 55,
|
||||
55, 53, 53, 55, 53, 55, 55, 55,
|
||||
55, 55, 53, 15, 55, 55, 55, 55,
|
||||
55, 55, 55, 55, 55, 55, 55, 55,
|
||||
55, 55, 55, 57, 15
|
||||
};
|
||||
|
||||
static const short _myanmar_syllable_machine_index_offsets[] = {
|
||||
0, 42, 82, 118, 123, 163, 201, 239,
|
||||
275, 311, 349, 387, 427, 463, 479, 517,
|
||||
555, 594, 632, 672, 712, 750, 790, 830,
|
||||
870, 910, 950, 986, 991, 1031, 1069, 1107,
|
||||
1143, 1179, 1217, 1255, 1295, 1331, 1347, 1387,
|
||||
1425, 1463, 1502, 1540, 1580, 1620, 1658, 1698,
|
||||
1738, 1778, 1818, 1858, 1898, 1938, 1980
|
||||
0, 58, 114, 168, 222, 278, 332, 388,
|
||||
444, 500, 556, 612, 666, 682, 738, 794,
|
||||
850, 906, 962, 1018, 1074, 1130, 1186, 1242,
|
||||
1298, 1354, 1408, 1462, 1518, 1572, 1628, 1684,
|
||||
1740, 1796, 1852, 1906, 1922, 1978, 2034, 2090,
|
||||
2146, 2202, 2258, 2314, 2370, 2426, 2482, 2538,
|
||||
2594, 2650, 2706, 2762, 2820
|
||||
};
|
||||
|
||||
static const char _myanmar_syllable_machine_indicies[] = {
|
||||
@ -114,273 +115,378 @@ static const char _myanmar_syllable_machine_indicies[] = {
|
||||
0, 8, 0, 9, 10, 11, 12, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 13,
|
||||
0, 0, 14, 15, 16, 17, 18, 19,
|
||||
20, 0, 22, 23, 24, 24, 21, 25,
|
||||
26, 21, 21, 21, 21, 21, 21, 21,
|
||||
21, 21, 21, 27, 28, 29, 30, 21,
|
||||
21, 21, 21, 21, 21, 21, 21, 31,
|
||||
21, 21, 32, 33, 34, 35, 36, 37,
|
||||
38, 21, 24, 24, 21, 25, 21, 21,
|
||||
21, 21, 21, 21, 21, 21, 21, 21,
|
||||
21, 21, 21, 21, 30, 21, 21, 21,
|
||||
21, 21, 21, 21, 21, 39, 21, 21,
|
||||
21, 21, 21, 21, 36, 21, 24, 24,
|
||||
21, 25, 21, 22, 21, 24, 24, 21,
|
||||
25, 26, 21, 21, 21, 21, 21, 21,
|
||||
21, 21, 21, 21, 40, 21, 21, 30,
|
||||
21, 21, 21, 21, 21, 21, 21, 21,
|
||||
41, 21, 21, 42, 21, 21, 21, 36,
|
||||
21, 41, 21, 22, 21, 24, 24, 21,
|
||||
25, 26, 21, 21, 21, 21, 21, 21,
|
||||
21, 21, 21, 21, 21, 21, 21, 30,
|
||||
21, 21, 21, 21, 21, 21, 21, 21,
|
||||
21, 21, 21, 21, 21, 21, 21, 36,
|
||||
21, 43, 21, 24, 24, 21, 25, 36,
|
||||
21, 21, 21, 21, 21, 21, 21, 21,
|
||||
21, 21, 21, 21, 21, 21, 21, 21,
|
||||
21, 21, 21, 21, 21, 21, 44, 21,
|
||||
21, 21, 21, 21, 21, 36, 21, 24,
|
||||
24, 21, 25, 21, 21, 21, 21, 21,
|
||||
21, 21, 21, 21, 21, 21, 21, 21,
|
||||
21, 21, 21, 21, 21, 21, 21, 21,
|
||||
21, 21, 44, 21, 21, 21, 21, 21,
|
||||
21, 36, 21, 24, 24, 21, 25, 21,
|
||||
21, 21, 21, 21, 21, 21, 21, 21,
|
||||
21, 21, 21, 21, 21, 21, 21, 21,
|
||||
21, 21, 21, 21, 21, 21, 21, 21,
|
||||
21, 21, 21, 21, 21, 36, 21, 22,
|
||||
21, 24, 24, 21, 25, 26, 21, 21,
|
||||
21, 21, 21, 21, 21, 21, 21, 21,
|
||||
40, 21, 21, 30, 21, 21, 21, 21,
|
||||
21, 21, 21, 21, 21, 21, 21, 21,
|
||||
21, 21, 21, 36, 21, 22, 21, 24,
|
||||
24, 21, 25, 26, 21, 21, 21, 21,
|
||||
21, 21, 21, 21, 21, 21, 40, 21,
|
||||
21, 30, 21, 21, 21, 21, 21, 21,
|
||||
21, 21, 41, 21, 21, 21, 21, 21,
|
||||
21, 36, 21, 22, 21, 24, 24, 21,
|
||||
25, 26, 21, 21, 21, 21, 21, 21,
|
||||
21, 21, 21, 21, 40, 21, 21, 30,
|
||||
21, 21, 21, 21, 21, 21, 21, 21,
|
||||
41, 21, 21, 21, 21, 21, 21, 36,
|
||||
21, 41, 21, 24, 24, 21, 25, 21,
|
||||
21, 21, 21, 21, 21, 21, 21, 21,
|
||||
21, 21, 21, 21, 21, 30, 21, 21,
|
||||
21, 21, 21, 21, 21, 21, 21, 21,
|
||||
21, 21, 21, 21, 21, 36, 21, 1,
|
||||
1, 21, 21, 21, 21, 21, 21, 21,
|
||||
21, 21, 21, 21, 21, 1, 21, 22,
|
||||
21, 24, 24, 21, 25, 26, 21, 21,
|
||||
21, 21, 21, 21, 21, 21, 21, 21,
|
||||
27, 28, 21, 30, 21, 21, 21, 21,
|
||||
21, 21, 21, 21, 21, 21, 21, 21,
|
||||
21, 21, 21, 36, 21, 22, 21, 24,
|
||||
24, 21, 25, 26, 21, 21, 21, 21,
|
||||
21, 21, 21, 21, 21, 21, 21, 28,
|
||||
21, 30, 21, 21, 21, 21, 21, 21,
|
||||
21, 21, 21, 21, 21, 21, 21, 21,
|
||||
21, 36, 21, 22, 21, 24, 24, 21,
|
||||
25, 26, 21, 21, 21, 21, 21, 21,
|
||||
21, 21, 21, 21, 27, 28, 29, 30,
|
||||
21, 21, 21, 21, 21, 21, 21, 21,
|
||||
21, 21, 21, 21, 21, 21, 21, 36,
|
||||
45, 21, 22, 21, 24, 24, 21, 25,
|
||||
26, 21, 21, 21, 21, 21, 21, 21,
|
||||
21, 21, 21, 27, 28, 29, 30, 21,
|
||||
21, 21, 21, 21, 21, 21, 21, 21,
|
||||
21, 21, 21, 21, 21, 21, 36, 21,
|
||||
22, 21, 24, 24, 21, 25, 26, 21,
|
||||
21, 21, 21, 21, 21, 21, 21, 21,
|
||||
21, 27, 28, 29, 30, 21, 21, 21,
|
||||
21, 21, 21, 21, 21, 31, 21, 21,
|
||||
32, 33, 34, 35, 36, 21, 38, 21,
|
||||
22, 21, 24, 24, 21, 25, 26, 21,
|
||||
21, 21, 21, 21, 21, 21, 21, 21,
|
||||
21, 27, 28, 29, 30, 21, 21, 21,
|
||||
21, 21, 21, 21, 21, 45, 21, 21,
|
||||
21, 21, 21, 21, 36, 21, 38, 21,
|
||||
22, 21, 24, 24, 21, 25, 26, 21,
|
||||
21, 21, 21, 21, 21, 21, 21, 21,
|
||||
21, 27, 28, 29, 30, 21, 21, 21,
|
||||
21, 21, 21, 21, 21, 45, 21, 21,
|
||||
21, 21, 21, 21, 36, 21, 22, 21,
|
||||
24, 24, 21, 25, 26, 21, 21, 21,
|
||||
21, 21, 21, 21, 21, 21, 21, 27,
|
||||
28, 29, 30, 21, 21, 21, 21, 21,
|
||||
21, 21, 21, 21, 21, 21, 32, 21,
|
||||
34, 21, 36, 21, 38, 21, 22, 21,
|
||||
24, 24, 21, 25, 26, 21, 21, 21,
|
||||
21, 21, 21, 21, 21, 21, 21, 27,
|
||||
28, 29, 30, 21, 21, 21, 21, 21,
|
||||
21, 21, 21, 45, 21, 21, 32, 21,
|
||||
21, 21, 36, 21, 38, 21, 22, 21,
|
||||
24, 24, 21, 25, 26, 21, 21, 21,
|
||||
21, 21, 21, 21, 21, 21, 21, 27,
|
||||
28, 29, 30, 21, 21, 21, 21, 21,
|
||||
21, 21, 21, 46, 21, 21, 32, 33,
|
||||
34, 21, 36, 21, 38, 21, 22, 21,
|
||||
24, 24, 21, 25, 26, 21, 21, 21,
|
||||
21, 21, 21, 21, 21, 21, 21, 27,
|
||||
28, 29, 30, 21, 21, 21, 21, 21,
|
||||
21, 21, 21, 21, 21, 21, 32, 33,
|
||||
34, 21, 36, 21, 38, 21, 22, 23,
|
||||
24, 24, 21, 25, 26, 21, 21, 21,
|
||||
21, 21, 21, 21, 21, 21, 21, 27,
|
||||
28, 29, 30, 21, 21, 21, 21, 21,
|
||||
21, 21, 21, 31, 21, 21, 32, 33,
|
||||
34, 35, 36, 21, 38, 21, 48, 48,
|
||||
20, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
21, 0, 23, 24, 25, 25, 22, 26,
|
||||
27, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 28, 29, 30, 31, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 32,
|
||||
22, 22, 33, 34, 35, 36, 37, 38,
|
||||
39, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
26, 22, 25, 25, 22, 26, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 31, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 40, 22, 22,
|
||||
22, 22, 22, 22, 37, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 26, 22,
|
||||
25, 25, 22, 26, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 37, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 26, 22, 41, 22,
|
||||
25, 25, 22, 26, 37, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 26, 22, 22, 22, 22,
|
||||
22, 22, 37, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 26, 22, 25, 25,
|
||||
22, 26, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 26, 22, 22, 22, 22, 22, 22,
|
||||
37, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 26, 22, 23, 22, 25, 25,
|
||||
22, 26, 27, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 42, 22, 22,
|
||||
31, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 43, 22, 22, 44, 22, 22, 22,
|
||||
37, 22, 43, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 26, 22, 23, 22, 25, 25,
|
||||
22, 26, 27, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
31, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
37, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 26, 22, 23, 22, 25, 25,
|
||||
22, 26, 27, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 42, 22, 22,
|
||||
31, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
37, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 26, 22, 23, 22, 25, 25,
|
||||
22, 26, 27, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 42, 22, 22,
|
||||
31, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 43, 22, 22, 22, 22, 22, 22,
|
||||
37, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 26, 22, 23, 22, 25, 25,
|
||||
22, 26, 27, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 42, 22, 22,
|
||||
31, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 43, 22, 22, 22, 22, 22, 22,
|
||||
37, 22, 43, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 26, 22, 25, 25, 22, 26,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 31, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 37, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
26, 22, 1, 1, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
1, 22, 23, 22, 25, 25, 22, 26,
|
||||
27, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 28, 29, 22, 31, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 37, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
26, 22, 23, 22, 25, 25, 22, 26,
|
||||
27, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 29, 22, 31, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 37, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
26, 22, 23, 22, 25, 25, 22, 26,
|
||||
27, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 28, 29, 30, 31, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 37, 45,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
26, 22, 23, 22, 25, 25, 22, 26,
|
||||
27, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 28, 29, 30, 31, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 37, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
26, 22, 23, 22, 25, 25, 22, 26,
|
||||
27, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 28, 29, 30, 31, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 32,
|
||||
22, 22, 33, 34, 35, 36, 37, 22,
|
||||
39, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
26, 22, 23, 22, 25, 25, 22, 26,
|
||||
27, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 28, 29, 30, 31, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 45,
|
||||
22, 22, 22, 22, 22, 22, 37, 22,
|
||||
39, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
26, 22, 23, 22, 25, 25, 22, 26,
|
||||
27, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 28, 29, 30, 31, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 45,
|
||||
22, 22, 22, 22, 22, 22, 37, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
26, 22, 23, 22, 25, 25, 22, 26,
|
||||
27, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 28, 29, 30, 31, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 33, 22, 35, 22, 37, 22,
|
||||
39, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
26, 22, 23, 22, 25, 25, 22, 26,
|
||||
27, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 28, 29, 30, 31, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 45,
|
||||
22, 22, 33, 22, 22, 22, 37, 22,
|
||||
39, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
26, 22, 23, 22, 25, 25, 22, 26,
|
||||
27, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 28, 29, 30, 31, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 46,
|
||||
22, 22, 33, 34, 35, 22, 37, 22,
|
||||
39, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
26, 22, 23, 22, 25, 25, 22, 26,
|
||||
27, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 28, 29, 30, 31, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 33, 34, 35, 22, 37, 22,
|
||||
39, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
26, 22, 23, 24, 25, 25, 22, 26,
|
||||
27, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 28, 29, 30, 31, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 32,
|
||||
22, 22, 33, 34, 35, 36, 37, 22,
|
||||
39, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
26, 22, 48, 48, 47, 5, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 12, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 49, 47, 47,
|
||||
47, 47, 47, 47, 18, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 5, 47,
|
||||
48, 48, 50, 5, 50, 50, 50, 50,
|
||||
50, 50, 50, 50, 50, 50, 50, 50,
|
||||
50, 50, 50, 50, 50, 50, 50, 50,
|
||||
50, 50, 50, 50, 50, 50, 50, 50,
|
||||
50, 50, 18, 50, 50, 50, 50, 50,
|
||||
50, 50, 50, 50, 50, 50, 50, 50,
|
||||
50, 50, 50, 50, 5, 50, 51, 47,
|
||||
48, 48, 47, 5, 18, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 5, 47, 47, 47, 47,
|
||||
47, 47, 18, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 5, 47, 48, 48,
|
||||
47, 5, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
12, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 49, 47, 47, 47, 47, 47, 47,
|
||||
18, 47, 48, 48, 47, 5, 47, 2,
|
||||
47, 48, 48, 47, 5, 6, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
50, 47, 47, 12, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 51, 47, 47, 52,
|
||||
47, 47, 47, 18, 47, 51, 47, 2,
|
||||
47, 48, 48, 47, 5, 6, 47, 47,
|
||||
47, 5, 47, 47, 47, 47, 47, 47,
|
||||
18, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 12, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 18, 47, 53, 47, 48,
|
||||
48, 47, 5, 18, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 54, 47, 47, 47, 47, 47,
|
||||
47, 18, 47, 48, 48, 47, 5, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 54, 47,
|
||||
47, 47, 47, 47, 47, 18, 47, 48,
|
||||
48, 47, 5, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 18, 47, 2, 47, 48, 48, 47,
|
||||
5, 6, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 50, 47, 47, 12,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 18,
|
||||
47, 2, 47, 48, 48, 47, 5, 6,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 50, 47, 47, 12, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 51, 47,
|
||||
47, 47, 47, 47, 47, 18, 47, 2,
|
||||
47, 48, 48, 47, 5, 6, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
50, 47, 47, 12, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 51, 47, 47, 47,
|
||||
47, 47, 47, 18, 47, 51, 47, 48,
|
||||
48, 47, 5, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 12, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 18, 47, 55, 55, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 55, 47, 2, 3, 48, 48, 47,
|
||||
5, 6, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 9, 10, 11, 12,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
13, 47, 47, 14, 15, 16, 17, 18,
|
||||
19, 20, 47, 2, 47, 48, 48, 47,
|
||||
5, 6, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 9, 10, 47, 12,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 18,
|
||||
47, 2, 47, 48, 48, 47, 5, 6,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 10, 47, 12, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 18, 47, 2,
|
||||
47, 48, 48, 47, 5, 6, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
9, 10, 11, 12, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 18, 56, 47, 2, 47,
|
||||
48, 48, 47, 5, 6, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 9,
|
||||
10, 11, 12, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 18, 47, 2, 47, 48, 48,
|
||||
47, 47, 5, 47, 2, 47, 48, 48,
|
||||
47, 5, 6, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 9, 10, 11,
|
||||
47, 47, 47, 47, 47, 52, 47, 47,
|
||||
12, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 13, 47, 47, 14, 15, 16, 17,
|
||||
18, 47, 20, 47, 2, 47, 48, 48,
|
||||
47, 53, 47, 47, 54, 47, 47, 47,
|
||||
18, 47, 53, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 5, 47, 2, 47, 48, 48,
|
||||
47, 5, 6, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 9, 10, 11,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
12, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 56, 47, 47, 47, 47, 47, 47,
|
||||
18, 47, 20, 47, 2, 47, 48, 48,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
18, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 5, 47, 2, 47, 48, 48,
|
||||
47, 5, 6, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 9, 10, 11,
|
||||
47, 47, 47, 47, 47, 52, 47, 47,
|
||||
12, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 56, 47, 47, 47, 47, 47, 47,
|
||||
18, 47, 2, 47, 48, 48, 47, 5,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
18, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 5, 47, 2, 47, 48, 48,
|
||||
47, 5, 6, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 52, 47, 47,
|
||||
12, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 53, 47, 47, 47, 47, 47, 47,
|
||||
18, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 5, 47, 2, 47, 48, 48,
|
||||
47, 5, 6, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 52, 47, 47,
|
||||
12, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 53, 47, 47, 47, 47, 47, 47,
|
||||
18, 47, 53, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 5, 47, 48, 48, 47, 5,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 12, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 18, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
5, 47, 55, 55, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
55, 47, 2, 3, 48, 48, 47, 5,
|
||||
6, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 9, 10, 11, 12, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 13,
|
||||
47, 47, 14, 15, 16, 17, 18, 19,
|
||||
20, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
5, 47, 2, 47, 48, 48, 47, 5,
|
||||
6, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 9, 10, 47, 12, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 18, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
5, 47, 2, 47, 48, 48, 47, 5,
|
||||
6, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 10, 47, 12, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 18, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
5, 47, 2, 47, 48, 48, 47, 5,
|
||||
6, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 9, 10, 11, 12, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 14, 47, 16, 47, 18, 47,
|
||||
20, 47, 2, 47, 48, 48, 47, 5,
|
||||
6, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 9, 10, 11, 12, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 56,
|
||||
47, 47, 14, 47, 47, 47, 18, 47,
|
||||
20, 47, 2, 47, 48, 48, 47, 5,
|
||||
6, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 9, 10, 11, 12, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 57,
|
||||
47, 47, 14, 15, 16, 47, 18, 47,
|
||||
20, 47, 2, 47, 48, 48, 47, 5,
|
||||
47, 47, 47, 47, 47, 47, 18, 56,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
5, 47, 2, 47, 48, 48, 47, 5,
|
||||
6, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 9, 10, 11, 12, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 14, 15, 16, 47, 18, 47,
|
||||
20, 47, 2, 3, 48, 48, 47, 5,
|
||||
47, 47, 47, 47, 47, 47, 18, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
5, 47, 2, 47, 48, 48, 47, 5,
|
||||
6, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 9, 10, 11, 12, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 13,
|
||||
47, 47, 14, 15, 16, 17, 18, 47,
|
||||
20, 47, 22, 23, 24, 24, 21, 25,
|
||||
26, 21, 21, 21, 21, 21, 21, 21,
|
||||
21, 21, 21, 27, 28, 29, 30, 21,
|
||||
21, 21, 21, 21, 21, 21, 21, 58,
|
||||
21, 21, 32, 33, 34, 35, 36, 37,
|
||||
38, 21, 22, 59, 24, 24, 21, 25,
|
||||
26, 21, 21, 21, 21, 21, 21, 21,
|
||||
21, 21, 21, 27, 28, 29, 30, 21,
|
||||
21, 21, 21, 21, 21, 21, 21, 31,
|
||||
21, 21, 32, 33, 34, 35, 36, 21,
|
||||
38, 21, 1, 1, 2, 3, 48, 48,
|
||||
20, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
5, 47, 2, 47, 48, 48, 47, 5,
|
||||
6, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 9, 10, 11, 12, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 56,
|
||||
47, 47, 47, 47, 47, 47, 18, 47,
|
||||
20, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
5, 47, 2, 47, 48, 48, 47, 5,
|
||||
6, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 9, 10, 11, 12, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 56,
|
||||
47, 47, 47, 47, 47, 47, 18, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
5, 47, 2, 47, 48, 48, 47, 5,
|
||||
6, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 9, 10, 11, 12, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 14, 47, 16, 47, 18, 47,
|
||||
20, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
5, 47, 2, 47, 48, 48, 47, 5,
|
||||
6, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 9, 10, 11, 12, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 56,
|
||||
47, 47, 14, 47, 47, 47, 18, 47,
|
||||
20, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
5, 47, 2, 47, 48, 48, 47, 5,
|
||||
6, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 9, 10, 11, 12, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 57,
|
||||
47, 47, 14, 15, 16, 47, 18, 47,
|
||||
20, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
5, 47, 2, 47, 48, 48, 47, 5,
|
||||
6, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 9, 10, 11, 12, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 14, 15, 16, 47, 18, 47,
|
||||
20, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
5, 47, 2, 3, 48, 48, 47, 5,
|
||||
6, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 9, 10, 11, 12, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 13,
|
||||
47, 47, 14, 15, 16, 17, 18, 47,
|
||||
20, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
5, 47, 23, 24, 25, 25, 22, 26,
|
||||
27, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 28, 29, 30, 31, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 58,
|
||||
22, 22, 33, 34, 35, 36, 37, 38,
|
||||
39, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
26, 22, 23, 59, 25, 25, 22, 26,
|
||||
27, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 28, 29, 30, 31, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 32,
|
||||
22, 22, 33, 34, 35, 36, 37, 22,
|
||||
39, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
26, 22, 1, 1, 2, 3, 48, 48,
|
||||
47, 5, 6, 1, 1, 47, 47, 47,
|
||||
1, 47, 47, 47, 47, 9, 10, 11,
|
||||
12, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 13, 47, 47, 14, 15, 16, 17,
|
||||
18, 19, 20, 47, 1, 1, 60, 60,
|
||||
18, 19, 20, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 5, 47, 1, 1, 60, 60,
|
||||
60, 60, 60, 60, 60, 1, 1, 60,
|
||||
60, 60, 1, 60, 0
|
||||
};
|
||||
|
||||
static const char _myanmar_syllable_machine_trans_targs[] = {
|
||||
0, 1, 26, 37, 0, 27, 29, 51,
|
||||
54, 39, 40, 41, 28, 43, 44, 46,
|
||||
47, 48, 30, 50, 45, 0, 2, 13,
|
||||
0, 3, 5, 14, 15, 16, 4, 18,
|
||||
19, 21, 22, 23, 6, 25, 20, 12,
|
||||
9, 10, 11, 7, 8, 17, 24, 0,
|
||||
0, 36, 33, 34, 35, 31, 32, 38,
|
||||
42, 49, 52, 53, 0
|
||||
0, 1, 25, 35, 0, 26, 30, 49,
|
||||
52, 37, 38, 39, 29, 41, 42, 44,
|
||||
45, 46, 27, 48, 43, 26, 0, 2,
|
||||
12, 0, 3, 7, 13, 14, 15, 6,
|
||||
17, 18, 20, 21, 22, 4, 24, 19,
|
||||
11, 5, 8, 9, 10, 16, 23, 0,
|
||||
0, 34, 0, 28, 31, 32, 33, 36,
|
||||
40, 47, 50, 51, 0
|
||||
};
|
||||
|
||||
static const char _myanmar_syllable_machine_trans_actions[] = {
|
||||
3, 0, 0, 0, 4, 0, 0, 0,
|
||||
3, 0, 0, 0, 4, 5, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 5, 0, 0,
|
||||
6, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 6, 7, 0,
|
||||
0, 8, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 7,
|
||||
8, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 9
|
||||
0, 0, 0, 0, 0, 0, 0, 9,
|
||||
10, 0, 11, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 12
|
||||
};
|
||||
|
||||
static const char _myanmar_syllable_machine_to_state_actions[] = {
|
||||
@ -390,7 +496,7 @@ static const char _myanmar_syllable_machine_to_state_actions[] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0
|
||||
0, 0, 0, 0, 0
|
||||
};
|
||||
|
||||
static const char _myanmar_syllable_machine_from_state_actions[] = {
|
||||
@ -400,17 +506,17 @@ static const char _myanmar_syllable_machine_from_state_actions[] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0
|
||||
0, 0, 0, 0, 0
|
||||
};
|
||||
|
||||
static const short _myanmar_syllable_machine_eof_trans[] = {
|
||||
0, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 22, 22, 22, 22, 22, 22,
|
||||
22, 22, 48, 48, 48, 48, 48, 48,
|
||||
0, 23, 23, 23, 23, 23, 23, 23,
|
||||
23, 23, 23, 23, 23, 23, 23, 23,
|
||||
23, 23, 23, 23, 23, 23, 23, 23,
|
||||
23, 48, 51, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 48, 48, 48, 48, 48,
|
||||
48, 48, 48, 22, 22, 48, 61
|
||||
48, 23, 23, 48, 61
|
||||
};
|
||||
|
||||
static const int myanmar_syllable_machine_start = 0;
|
||||
@ -424,7 +530,7 @@ static const int myanmar_syllable_machine_en_main = 0;
|
||||
|
||||
|
||||
|
||||
#line 117 "hb-ot-shaper-myanmar-machine.rl"
|
||||
#line 118 "hb-ot-shaper-myanmar-machine.rl"
|
||||
|
||||
|
||||
#define found_syllable(syllable_type) \
|
||||
@ -443,7 +549,7 @@ find_syllables_myanmar (hb_buffer_t *buffer)
|
||||
int cs;
|
||||
hb_glyph_info_t *info = buffer->info;
|
||||
|
||||
#line 447 "hb-ot-shaper-myanmar-machine.hh"
|
||||
#line 553 "hb-ot-shaper-myanmar-machine.hh"
|
||||
{
|
||||
cs = myanmar_syllable_machine_start;
|
||||
ts = 0;
|
||||
@ -451,7 +557,7 @@ find_syllables_myanmar (hb_buffer_t *buffer)
|
||||
act = 0;
|
||||
}
|
||||
|
||||
#line 137 "hb-ot-shaper-myanmar-machine.rl"
|
||||
#line 138 "hb-ot-shaper-myanmar-machine.rl"
|
||||
|
||||
|
||||
p = 0;
|
||||
@ -459,7 +565,7 @@ find_syllables_myanmar (hb_buffer_t *buffer)
|
||||
|
||||
unsigned int syllable_serial = 1;
|
||||
|
||||
#line 463 "hb-ot-shaper-myanmar-machine.hh"
|
||||
#line 569 "hb-ot-shaper-myanmar-machine.hh"
|
||||
{
|
||||
int _slen;
|
||||
int _trans;
|
||||
@ -473,7 +579,7 @@ _resume:
|
||||
#line 1 "NONE"
|
||||
{ts = p;}
|
||||
break;
|
||||
#line 477 "hb-ot-shaper-myanmar-machine.hh"
|
||||
#line 583 "hb-ot-shaper-myanmar-machine.hh"
|
||||
}
|
||||
|
||||
_keys = _myanmar_syllable_machine_trans_keys + (cs<<1);
|
||||
@ -491,35 +597,59 @@ _eof_trans:
|
||||
goto _again;
|
||||
|
||||
switch ( _myanmar_syllable_machine_trans_actions[_trans] ) {
|
||||
case 6:
|
||||
#line 110 "hb-ot-shaper-myanmar-machine.rl"
|
||||
case 8:
|
||||
#line 111 "hb-ot-shaper-myanmar-machine.rl"
|
||||
{te = p+1;{ found_syllable (myanmar_consonant_syllable); }}
|
||||
break;
|
||||
case 4:
|
||||
#line 111 "hb-ot-shaper-myanmar-machine.rl"
|
||||
#line 112 "hb-ot-shaper-myanmar-machine.rl"
|
||||
{te = p+1;{ found_syllable (myanmar_non_myanmar_cluster); }}
|
||||
break;
|
||||
case 8:
|
||||
#line 112 "hb-ot-shaper-myanmar-machine.rl"
|
||||
case 10:
|
||||
#line 113 "hb-ot-shaper-myanmar-machine.rl"
|
||||
{te = p+1;{ found_syllable (myanmar_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; }}
|
||||
break;
|
||||
case 3:
|
||||
#line 113 "hb-ot-shaper-myanmar-machine.rl"
|
||||
#line 114 "hb-ot-shaper-myanmar-machine.rl"
|
||||
{te = p+1;{ found_syllable (myanmar_non_myanmar_cluster); }}
|
||||
break;
|
||||
case 5:
|
||||
#line 110 "hb-ot-shaper-myanmar-machine.rl"
|
||||
{te = p;p--;{ found_syllable (myanmar_consonant_syllable); }}
|
||||
break;
|
||||
case 7:
|
||||
#line 112 "hb-ot-shaper-myanmar-machine.rl"
|
||||
{te = p;p--;{ found_syllable (myanmar_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; }}
|
||||
#line 111 "hb-ot-shaper-myanmar-machine.rl"
|
||||
{te = p;p--;{ found_syllable (myanmar_consonant_syllable); }}
|
||||
break;
|
||||
case 9:
|
||||
#line 113 "hb-ot-shaper-myanmar-machine.rl"
|
||||
{te = p;p--;{ found_syllable (myanmar_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; }}
|
||||
break;
|
||||
case 12:
|
||||
#line 114 "hb-ot-shaper-myanmar-machine.rl"
|
||||
{te = p;p--;{ found_syllable (myanmar_non_myanmar_cluster); }}
|
||||
break;
|
||||
#line 523 "hb-ot-shaper-myanmar-machine.hh"
|
||||
case 11:
|
||||
#line 1 "NONE"
|
||||
{ switch( act ) {
|
||||
case 2:
|
||||
{{p = ((te))-1;} found_syllable (myanmar_non_myanmar_cluster); }
|
||||
break;
|
||||
case 3:
|
||||
{{p = ((te))-1;} found_syllable (myanmar_broken_cluster); buffer->scratch_flags |= HB_BUFFER_SCRATCH_FLAG_HAS_BROKEN_SYLLABLE; }
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
#line 1 "NONE"
|
||||
{te = p+1;}
|
||||
#line 112 "hb-ot-shaper-myanmar-machine.rl"
|
||||
{act = 2;}
|
||||
break;
|
||||
case 5:
|
||||
#line 1 "NONE"
|
||||
{te = p+1;}
|
||||
#line 113 "hb-ot-shaper-myanmar-machine.rl"
|
||||
{act = 3;}
|
||||
break;
|
||||
#line 653 "hb-ot-shaper-myanmar-machine.hh"
|
||||
}
|
||||
|
||||
_again:
|
||||
@ -528,7 +658,7 @@ _again:
|
||||
#line 1 "NONE"
|
||||
{ts = 0;}
|
||||
break;
|
||||
#line 532 "hb-ot-shaper-myanmar-machine.hh"
|
||||
#line 662 "hb-ot-shaper-myanmar-machine.hh"
|
||||
}
|
||||
|
||||
if ( ++p != pe )
|
||||
@ -544,7 +674,7 @@ _again:
|
||||
|
||||
}
|
||||
|
||||
#line 145 "hb-ot-shaper-myanmar-machine.rl"
|
||||
#line 146 "hb-ot-shaper-myanmar-machine.rl"
|
||||
|
||||
}
|
||||
|
||||
|
1256
src/3rdparty/harfbuzz-ng/src/hb-ot-shaper-use-machine.hh
vendored
1256
src/3rdparty/harfbuzz-ng/src/hb-ot-shaper-use-machine.hh
vendored
File diff suppressed because it is too large
Load Diff
15
src/3rdparty/harfbuzz-ng/src/hb-ot-tag-table.hh
vendored
15
src/3rdparty/harfbuzz-ng/src/hb-ot-tag-table.hh
vendored
@ -6,8 +6,8 @@
|
||||
*
|
||||
* on files with these headers:
|
||||
*
|
||||
* <meta name="updated_at" content="2024-07-07 12:57 AM" />
|
||||
* File-Date: 2024-06-14
|
||||
* <meta name="updated_at" content="2024-12-05 07:13 PM" />
|
||||
* File-Date: 2024-11-19
|
||||
*/
|
||||
|
||||
#ifndef HB_OT_TAG_TABLE_HH
|
||||
@ -830,6 +830,7 @@ static const LangTag ot_languages3[] = {
|
||||
{HB_TAG('k','f','x',' '), HB_TAG('K','U','L',' ')}, /* Kullu Pahari -> Kulvi */
|
||||
{HB_TAG('k','f','y',' '), HB_TAG('K','M','N',' ')}, /* Kumaoni */
|
||||
{HB_TAG('k','g','e',' '), HB_TAG_NONE }, /* Komering != Khutsuri Georgian */
|
||||
/*{HB_TAG('k','g','f',' '), HB_TAG('K','G','F',' ')},*/ /* Kube */
|
||||
{HB_TAG('k','h','a',' '), HB_TAG('K','S','I',' ')}, /* Khasi */
|
||||
{HB_TAG('k','h','b',' '), HB_TAG('X','B','D',' ')}, /* Lü */
|
||||
{HB_TAG('k','h','k',' '), HB_TAG('M','N','G',' ')}, /* Halh Mongolian -> Mongolian */
|
||||
@ -855,6 +856,7 @@ static const LangTag ot_languages3[] = {
|
||||
{HB_TAG('k','l','m',' '), HB_TAG_NONE }, /* Migum != Kalmyk */
|
||||
{HB_TAG('k','l','n',' '), HB_TAG('K','A','L',' ')}, /* Kalenjin [macrolanguage] */
|
||||
{HB_TAG('k','m','b',' '), HB_TAG('M','B','N',' ')}, /* Kimbundu -> Mbundu */
|
||||
/*{HB_TAG('k','m','g',' '), HB_TAG('K','M','G',' ')},*/ /* Kâte */
|
||||
{HB_TAG('k','m','n',' '), HB_TAG_NONE }, /* Awtuw != Kumaoni */
|
||||
{HB_TAG('k','m','o',' '), HB_TAG_NONE }, /* Kwoma != Komo */
|
||||
{HB_TAG('k','m','r',' '), HB_TAG('K','U','R',' ')}, /* Northern Kurdish -> Kurdish */
|
||||
@ -898,6 +900,7 @@ static const LangTag ot_languages3[] = {
|
||||
{HB_TAG('k','s','i',' '), HB_TAG_NONE }, /* Krisa != Khasi */
|
||||
{HB_TAG('k','s','m',' '), HB_TAG_NONE }, /* Kumba != Kildin Sami */
|
||||
{HB_TAG('k','s','s',' '), HB_TAG('K','I','S',' ')}, /* Southern Kisi -> Kisii */
|
||||
/*{HB_TAG('k','s','u',' '), HB_TAG('K','S','U',' ')},*/ /* Khamyang */
|
||||
{HB_TAG('k','s','w',' '), HB_TAG('K','S','W',' ')}, /* S’gaw Karen */
|
||||
{HB_TAG('k','s','w',' '), HB_TAG('K','R','N',' ')}, /* S'gaw Karen -> Karen */
|
||||
{HB_TAG('k','t','b',' '), HB_TAG('K','E','B',' ')}, /* Kambaata -> Kebena */
|
||||
@ -911,6 +914,7 @@ static const LangTag ot_languages3[] = {
|
||||
{HB_TAG('k','u','y',' '), HB_TAG_NONE }, /* Kuuku-Ya'u != Kuy */
|
||||
{HB_TAG('k','v','b',' '), HB_TAG('M','L','Y',' ')}, /* Kubu -> Malay */
|
||||
{HB_TAG('k','v','l',' '), HB_TAG('K','R','N',' ')}, /* Kayaw -> Karen */
|
||||
{HB_TAG('k','v','q',' '), HB_TAG('K','V','Q',' ')}, /* Geba Karen */
|
||||
{HB_TAG('k','v','q',' '), HB_TAG('K','R','N',' ')}, /* Geba Karen -> Karen */
|
||||
{HB_TAG('k','v','r',' '), HB_TAG('M','L','Y',' ')}, /* Kerinci -> Malay */
|
||||
{HB_TAG('k','v','t',' '), HB_TAG('K','R','N',' ')}, /* Lahta Karen -> Karen */
|
||||
@ -1146,6 +1150,7 @@ static const LangTag ot_languages3[] = {
|
||||
{HB_TAG('n','o','d',' '), HB_TAG('N','T','A',' ')}, /* Northern Thai -> Northern Tai */
|
||||
/*{HB_TAG('n','o','e',' '), HB_TAG('N','O','E',' ')},*/ /* Nimadi */
|
||||
/*{HB_TAG('n','o','g',' '), HB_TAG('N','O','G',' ')},*/ /* Nogai */
|
||||
/*{HB_TAG('n','o','p',' '), HB_TAG('N','O','P',' ')},*/ /* Numanggang */
|
||||
/*{HB_TAG('n','o','v',' '), HB_TAG('N','O','V',' ')},*/ /* Novial */
|
||||
{HB_TAG('n','p','i',' '), HB_TAG('N','E','P',' ')}, /* Nepali */
|
||||
{HB_TAG('n','p','l',' '), HB_TAG('N','A','H',' ')}, /* Southeastern Puebla Nahuatl -> Nahuatl */
|
||||
@ -1156,6 +1161,7 @@ static const LangTag ot_languages3[] = {
|
||||
{HB_TAG('n','s','u',' '), HB_TAG('N','A','H',' ')}, /* Sierra Negra Nahuatl -> Nahuatl */
|
||||
{HB_TAG('n','t','o',' '), HB_TAG_NONE }, /* Ntomba != Esperanto */
|
||||
{HB_TAG('n','u','e',' '), HB_TAG('B','A','D','0')}, /* Ngundu -> Banda */
|
||||
/*{HB_TAG('n','u','k',' '), HB_TAG('N','U','K',' ')},*/ /* Nuu-chah-nulth */
|
||||
{HB_TAG('n','u','u',' '), HB_TAG('B','A','D','0')}, /* Ngbundu -> Banda */
|
||||
{HB_TAG('n','u','z',' '), HB_TAG('N','A','H',' ')}, /* Tlamacazapa Nahuatl -> Nahuatl */
|
||||
{HB_TAG('n','w','e',' '), HB_TAG('B','M','L',' ')}, /* Ngwe -> Bamileke */
|
||||
@ -1399,8 +1405,10 @@ static const LangTag ot_languages3[] = {
|
||||
{HB_TAG('s','i','z',' '), HB_TAG('B','B','R',' ')}, /* Siwi -> Berber */
|
||||
/*{HB_TAG('s','j','a',' '), HB_TAG('S','J','A',' ')},*/ /* Epena */
|
||||
{HB_TAG('s','j','d',' '), HB_TAG('K','S','M',' ')}, /* Kildin Sami */
|
||||
/*{HB_TAG('s','j','e',' '), HB_TAG('S','J','E',' ')},*/ /* Pite Sami */
|
||||
{HB_TAG('s','j','o',' '), HB_TAG('S','I','B',' ')}, /* Xibe -> Sibe */
|
||||
{HB_TAG('s','j','s',' '), HB_TAG('B','B','R',' ')}, /* Senhaja De Srair -> Berber */
|
||||
/*{HB_TAG('s','j','u',' '), HB_TAG('S','J','U',' ')},*/ /* Ume Sami */
|
||||
{HB_TAG('s','k','g',' '), HB_TAG('M','L','G',' ')}, /* Sakalava Malagasy -> Malagasy */
|
||||
{HB_TAG('s','k','r',' '), HB_TAG('S','R','K',' ')}, /* Saraiki */
|
||||
{HB_TAG('s','k','s',' '), HB_TAG_NONE }, /* Maia != Skolt Sami */
|
||||
@ -1461,6 +1469,7 @@ static const LangTag ot_languages3[] = {
|
||||
{HB_TAG('t','a','q',' '), HB_TAG('B','B','R',' ')}, /* Tamasheq -> Berber */
|
||||
{HB_TAG('t','a','s',' '), HB_TAG('C','P','P',' ')}, /* Tay Boi -> Creoles */
|
||||
{HB_TAG('t','a','u',' '), HB_TAG('A','T','H',' ')}, /* Upper Tanana -> Athapaskan */
|
||||
/*{HB_TAG('t','b','v',' '), HB_TAG('T','B','V',' ')},*/ /* Tobo */
|
||||
{HB_TAG('t','c','b',' '), HB_TAG('A','T','H',' ')}, /* Tanacross -> Athapaskan */
|
||||
{HB_TAG('t','c','e',' '), HB_TAG('A','T','H',' ')}, /* Southern Tutchone -> Athapaskan */
|
||||
{HB_TAG('t','c','h',' '), HB_TAG('C','P','P',' ')}, /* Turks And Caicos Creole English -> Creoles */
|
||||
@ -1623,7 +1632,7 @@ static const LangTag ot_languages3[] = {
|
||||
{HB_TAG('y','b','a',' '), HB_TAG_NONE }, /* Yala != Yoruba */
|
||||
{HB_TAG('y','b','b',' '), HB_TAG('B','M','L',' ')}, /* Yemba -> Bamileke */
|
||||
{HB_TAG('y','b','d',' '), HB_TAG('A','R','K',' ')}, /* Yangbye (retired code) -> Rakhine */
|
||||
{HB_TAG('y','c','r',' '), HB_TAG_NONE }, /* Yilan Creole != Y-Cree */
|
||||
{HB_TAG('y','c','r',' '), HB_TAG('C','P','P',' ')}, /* Yilan Creole -> Creoles */
|
||||
{HB_TAG('y','d','d',' '), HB_TAG('J','I','I',' ')}, /* Eastern Yiddish -> Yiddish */
|
||||
/*{HB_TAG('y','g','p',' '), HB_TAG('Y','G','P',' ')},*/ /* Gepo */
|
||||
{HB_TAG('y','i','h',' '), HB_TAG('J','I','I',' ')}, /* Western Yiddish -> Yiddish */
|
||||
|
24
src/3rdparty/harfbuzz-ng/src/hb-ot-var-common.hh
vendored
24
src/3rdparty/harfbuzz-ng/src/hb-ot-var-common.hh
vendored
@ -885,9 +885,9 @@ struct TupleVariationData
|
||||
* no need to do find_shared_points () again */
|
||||
hb_vector_t<char> *shared_points_bytes = nullptr;
|
||||
|
||||
/* total compiled byte size as TupleVariationData format, initialized to its
|
||||
* min_size: 4 */
|
||||
unsigned compiled_byte_size = 4;
|
||||
/* total compiled byte size as TupleVariationData format, initialized to 0 */
|
||||
unsigned compiled_byte_size = 0;
|
||||
bool needs_padding = false;
|
||||
|
||||
/* for gvar iup delta optimization: whether this is a composite glyph */
|
||||
bool is_composite = false;
|
||||
@ -1219,12 +1219,21 @@ struct TupleVariationData
|
||||
bool compile_bytes (const hb_map_t& axes_index_map,
|
||||
const hb_map_t& axes_old_index_tag_map,
|
||||
bool use_shared_points,
|
||||
bool is_gvar = false,
|
||||
const hb_hashmap_t<const hb_vector_t<char>*, unsigned>* shared_tuples_idx_map = nullptr)
|
||||
{
|
||||
// return true for empty glyph
|
||||
if (!tuple_vars)
|
||||
return true;
|
||||
|
||||
// compile points set and store data in hashmap
|
||||
if (!compile_all_point_sets ())
|
||||
return false;
|
||||
|
||||
/* total compiled byte size as TupleVariationData format, initialized to its
|
||||
* min_size: 4 */
|
||||
compiled_byte_size += 4;
|
||||
|
||||
if (use_shared_points)
|
||||
{
|
||||
find_shared_points ();
|
||||
@ -1253,6 +1262,13 @@ struct TupleVariationData
|
||||
return false;
|
||||
compiled_byte_size += tuple.compiled_tuple_header.length + points_data_length + tuple.compiled_deltas.length;
|
||||
}
|
||||
|
||||
if (is_gvar && (compiled_byte_size % 2))
|
||||
{
|
||||
needs_padding = true;
|
||||
compiled_byte_size += 1;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -1295,7 +1311,7 @@ struct TupleVariationData
|
||||
}
|
||||
|
||||
/* padding for gvar */
|
||||
if (is_gvar && (compiled_byte_size % 2))
|
||||
if (is_gvar && needs_padding)
|
||||
{
|
||||
HBUINT8 pad;
|
||||
pad = 0;
|
||||
|
@ -140,6 +140,7 @@ struct glyph_variations_t
|
||||
for (tuple_variations_t& vars: glyph_variations)
|
||||
if (!vars.compile_bytes (axes_index_map, axes_old_index_tag_map,
|
||||
true, /* use shared points*/
|
||||
true,
|
||||
&shared_tuples_idx_map))
|
||||
return false;
|
||||
|
||||
|
2
src/3rdparty/harfbuzz-ng/src/hb-paint.h
vendored
2
src/3rdparty/harfbuzz-ng/src/hb-paint.h
vendored
@ -146,7 +146,7 @@ typedef void (*hb_paint_pop_transform_func_t) (hb_paint_funcs_t *funcs,
|
||||
*
|
||||
* A virtual method for the #hb_paint_funcs_t to render a color glyph by glyph index.
|
||||
*
|
||||
* Return value: %true if the glyph was painted, %false otherwise.
|
||||
* Return value: `true` if the glyph was painted, `false` otherwise.
|
||||
*
|
||||
* Since: 8.2.0
|
||||
*/
|
||||
|
4
src/3rdparty/harfbuzz-ng/src/hb-sanitize.hh
vendored
4
src/3rdparty/harfbuzz-ng/src/hb-sanitize.hh
vendored
@ -72,8 +72,8 @@
|
||||
*
|
||||
* === The sanitize() contract ===
|
||||
*
|
||||
* The sanitize() method of each object type shall return true if it's safe to
|
||||
* call other methods of the object, and %false otherwise.
|
||||
* The sanitize() method of each object type shall return `true` if it's safe to
|
||||
* call other methods of the object, and `false` otherwise.
|
||||
*
|
||||
* Note that what sanitize() checks for might align with what the specification
|
||||
* describes as valid table data, but does not have to be. In particular, we
|
||||
|
21
src/3rdparty/harfbuzz-ng/src/hb-serialize.hh
vendored
21
src/3rdparty/harfbuzz-ng/src/hb-serialize.hh
vendored
@ -36,9 +36,7 @@
|
||||
#include "hb-map.hh"
|
||||
#include "hb-pool.hh"
|
||||
|
||||
#ifdef HB_EXPERIMENTAL_API
|
||||
#include "hb-subset-repacker.h"
|
||||
#endif
|
||||
#include "hb-subset-serialize.h"
|
||||
|
||||
/*
|
||||
* Serialize
|
||||
@ -75,8 +73,7 @@ struct hb_serialize_context_t
|
||||
|
||||
object_t () = default;
|
||||
|
||||
#ifdef HB_EXPERIMENTAL_API
|
||||
object_t (const hb_object_t &o)
|
||||
object_t (const hb_subset_serialize_object_t &o)
|
||||
{
|
||||
head = o.head;
|
||||
tail = o.tail;
|
||||
@ -89,7 +86,6 @@ struct hb_serialize_context_t
|
||||
for (unsigned i = 0; i < o.num_virtual_links; i++)
|
||||
virtual_links.push (o.virtual_links[i]);
|
||||
}
|
||||
#endif
|
||||
|
||||
bool add_virtual_link (objidx_t objidx)
|
||||
{
|
||||
@ -148,8 +144,7 @@ struct hb_serialize_context_t
|
||||
|
||||
link_t () = default;
|
||||
|
||||
#ifdef HB_EXPERIMENTAL_API
|
||||
link_t (const hb_link_t &o)
|
||||
link_t (const hb_subset_serialize_link_t &o)
|
||||
{
|
||||
width = o.width;
|
||||
is_signed = 0;
|
||||
@ -158,7 +153,6 @@ struct hb_serialize_context_t
|
||||
bias = 0;
|
||||
objidx = o.objidx;
|
||||
}
|
||||
#endif
|
||||
|
||||
HB_INTERNAL static int cmp (const void* a, const void* b)
|
||||
{
|
||||
@ -400,6 +394,7 @@ struct hb_serialize_context_t
|
||||
{
|
||||
merge_virtual_links (obj, objidx);
|
||||
obj->fini ();
|
||||
object_pool.release (obj);
|
||||
return objidx;
|
||||
}
|
||||
}
|
||||
@ -463,9 +458,11 @@ struct hb_serialize_context_t
|
||||
while (packed.length > 1 &&
|
||||
packed.tail ()->head < tail)
|
||||
{
|
||||
packed_map.del (packed.tail ());
|
||||
assert (!packed.tail ()->next);
|
||||
packed.tail ()->fini ();
|
||||
object_t *obj = packed.tail ();
|
||||
packed_map.del (obj);
|
||||
assert (!obj->next);
|
||||
obj->fini ();
|
||||
object_pool.release (obj);
|
||||
packed.pop ();
|
||||
}
|
||||
if (packed.length > 1)
|
||||
|
2
src/3rdparty/harfbuzz-ng/src/hb-shape.h
vendored
2
src/3rdparty/harfbuzz-ng/src/hb-shape.h
vendored
@ -53,6 +53,7 @@ hb_shape_full (hb_font_t *font,
|
||||
unsigned int num_features,
|
||||
const char * const *shaper_list);
|
||||
|
||||
#ifdef HB_EXPERIMENTAL_API
|
||||
HB_EXTERN hb_bool_t
|
||||
hb_shape_justify (hb_font_t *font,
|
||||
hb_buffer_t *buffer,
|
||||
@ -64,6 +65,7 @@ hb_shape_justify (hb_font_t *font,
|
||||
float *advance, /* IN/OUT */
|
||||
hb_tag_t *var_tag, /* OUT */
|
||||
float *var_value /* OUT */);
|
||||
#endif
|
||||
|
||||
HB_EXTERN const char **
|
||||
hb_shape_list_shapers (void);
|
||||
|
139
src/3rdparty/harfbuzz-ng/src/hb-subset-input.cc
vendored
139
src/3rdparty/harfbuzz-ng/src/hb-subset-input.cc
vendored
@ -534,7 +534,6 @@ hb_subset_input_pin_axis_location (hb_subset_input_t *input,
|
||||
*
|
||||
* Note: input min value can not be bigger than input max value. If the input
|
||||
* default value is not within the new min/max range, it'll be clamped.
|
||||
* Note: currently it supports gvar and cvar tables only.
|
||||
*
|
||||
* Return value: `true` if success, `false` otherwise
|
||||
*
|
||||
@ -597,6 +596,144 @@ hb_subset_input_get_axis_range (hb_subset_input_t *input,
|
||||
*axis_max_value = triple->maximum;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* hb_subset_axis_range_from_string:
|
||||
* @str: a string to parse
|
||||
* @len: length of @str, or -1 if str is NULL terminated
|
||||
* @axis_min_value: (out): the axis min value to initialize with the parsed value
|
||||
* @axis_max_value: (out): the axis max value to initialize with the parsed value
|
||||
* @axis_def_value: (out): the axis default value to initialize with the parse
|
||||
* value
|
||||
*
|
||||
* Parses a string into a subset axis range(min, def, max).
|
||||
* Axis positions string is in the format of min:def:max or min:max
|
||||
* When parsing axis positions, empty values as meaning the existing value for that part
|
||||
* E.g: :300:500
|
||||
* Specifies min = existing, def = 300, max = 500
|
||||
* In the output axis_range, if a value should be set to it's default value,
|
||||
* then it will be set to NaN
|
||||
*
|
||||
* Return value:
|
||||
* `true` if @str is successfully parsed, `false` otherwise
|
||||
*
|
||||
* Since: 10.2.0
|
||||
*/
|
||||
HB_EXTERN hb_bool_t
|
||||
hb_subset_axis_range_from_string (const char *str, int len,
|
||||
float *axis_min_value,
|
||||
float *axis_max_value,
|
||||
float *axis_def_value)
|
||||
{
|
||||
if (len < 0)
|
||||
len = strlen (str);
|
||||
|
||||
const char *end = str + len;
|
||||
const char* part = strpbrk (str, ":");
|
||||
if (!part)
|
||||
{
|
||||
// Single value.
|
||||
if (strcmp (str, "drop") == 0)
|
||||
{
|
||||
*axis_min_value = NAN;
|
||||
*axis_def_value = NAN;
|
||||
*axis_max_value = NAN;
|
||||
return true;
|
||||
}
|
||||
|
||||
double v;
|
||||
if (!hb_parse_double (&str, end, &v)) return false;
|
||||
|
||||
*axis_min_value = v;
|
||||
*axis_def_value = v;
|
||||
*axis_max_value = v;
|
||||
return true;
|
||||
}
|
||||
|
||||
float values[3];
|
||||
int count = 0;
|
||||
for (int i = 0; i < 3; i++) {
|
||||
count++;
|
||||
if (!*str || part == str)
|
||||
{
|
||||
values[i] = NAN;
|
||||
|
||||
if (part == NULL) break;
|
||||
str = part + 1;
|
||||
part = strpbrk (str, ":");
|
||||
continue;
|
||||
}
|
||||
|
||||
double v;
|
||||
if (!hb_parse_double (&str, part, &v)) return false;
|
||||
values[i] = v;
|
||||
|
||||
if (part == NULL) break;
|
||||
str = part + 1;
|
||||
part = strpbrk (str, ":");
|
||||
}
|
||||
|
||||
if (count == 2)
|
||||
{
|
||||
*axis_min_value = values[0];
|
||||
*axis_def_value = NAN;
|
||||
*axis_max_value = values[1];
|
||||
return true;
|
||||
}
|
||||
else if (count == 3)
|
||||
{
|
||||
*axis_min_value = values[0];
|
||||
*axis_def_value = values[1];
|
||||
*axis_max_value = values[2];
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* hb_subset_axis_range_to_string:
|
||||
* @input: a #hb_subset_input_t object.
|
||||
* @axis_tag: an axis to convert
|
||||
* @buf: (array length=size) (out caller-allocates): output string
|
||||
* @size: the allocated size of @buf
|
||||
*
|
||||
* Converts an axis range into a `NULL`-terminated string in the format
|
||||
* understood by hb_subset_axis_range_from_string(). The client in responsible for
|
||||
* allocating big enough size for @buf, 128 bytes is more than enough.
|
||||
*
|
||||
* Since: 10.2.0
|
||||
*/
|
||||
HB_EXTERN void
|
||||
hb_subset_axis_range_to_string (hb_subset_input_t *input,
|
||||
hb_tag_t axis_tag,
|
||||
char *buf, unsigned size)
|
||||
{
|
||||
if (unlikely (!size)) return;
|
||||
Triple* triple;
|
||||
if (!input->axes_location.has(axis_tag, &triple)) {
|
||||
return;
|
||||
}
|
||||
|
||||
char s[128];
|
||||
unsigned len = 0;
|
||||
|
||||
hb_locale_t clocale HB_UNUSED;
|
||||
hb_locale_t oldlocale HB_UNUSED;
|
||||
oldlocale = hb_uselocale (clocale = newlocale (LC_ALL_MASK, "C", NULL));
|
||||
len += hb_max (0, snprintf (s, ARRAY_LENGTH (s) - len, "%g", (double) triple->minimum));
|
||||
s[len++] = ':';
|
||||
|
||||
len += hb_max (0, snprintf (s + len, ARRAY_LENGTH (s) - len, "%g", (double) triple->middle));
|
||||
s[len++] = ':';
|
||||
|
||||
len += hb_max (0, snprintf (s + len, ARRAY_LENGTH (s) - len, "%g", (double) triple->maximum));
|
||||
(void) hb_uselocale (((void) freelocale (clocale), oldlocale));
|
||||
|
||||
assert (len < ARRAY_LENGTH (s));
|
||||
len = hb_min (len, size - 1);
|
||||
hb_memcpy (buf, s, len);
|
||||
buf[len] = '\0';
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
18
src/3rdparty/harfbuzz-ng/src/hb-subset-plan.cc
vendored
18
src/3rdparty/harfbuzz-ng/src/hb-subset-plan.cc
vendored
@ -678,7 +678,8 @@ _populate_unicodes_to_retain (const hb_set_t *unicodes,
|
||||
hb_subset_plan_t *plan)
|
||||
{
|
||||
OT::cmap::accelerator_t cmap (plan->source);
|
||||
unsigned size_threshold = plan->source->get_num_glyphs ();
|
||||
unsigned size_threshold = plan->source->get_num_glyphs ();
|
||||
|
||||
if (glyphs->is_empty () && unicodes->get_population () < size_threshold)
|
||||
{
|
||||
|
||||
@ -797,6 +798,21 @@ _populate_unicodes_to_retain (const hb_set_t *unicodes,
|
||||
plan->unicodes.add_sorted_array (&arr.arrayZ->first, arr.length, sizeof (*arr.arrayZ));
|
||||
plan->_glyphset_gsub.add_array (&arr.arrayZ->second, arr.length, sizeof (*arr.arrayZ));
|
||||
}
|
||||
|
||||
// Variation selectors don't have glyphs associated with them in the cmap so they will have been filtered out above
|
||||
// but should still be retained. Add them back here.
|
||||
|
||||
// However, the min and max codepoints for OS/2 should be calculated without considering variation selectors,
|
||||
// so record those first.
|
||||
plan->os2_info.min_cmap_codepoint = plan->unicodes.get_min();
|
||||
plan->os2_info.max_cmap_codepoint = plan->unicodes.get_max();
|
||||
|
||||
hb_set_t variation_selectors_to_retain;
|
||||
cmap.collect_variation_selectors(&variation_selectors_to_retain);
|
||||
+ variation_selectors_to_retain.iter()
|
||||
| hb_filter(unicodes)
|
||||
| hb_sink(&plan->unicodes)
|
||||
;
|
||||
}
|
||||
|
||||
static unsigned
|
||||
|
@ -41,6 +41,13 @@ namespace OT {
|
||||
struct Feature;
|
||||
}
|
||||
|
||||
struct os2_info_t {
|
||||
hb_codepoint_t min_cmap_codepoint;
|
||||
hb_codepoint_t max_cmap_codepoint;
|
||||
};
|
||||
|
||||
typedef struct os2_info_t os2_info_t;
|
||||
|
||||
struct head_maxp_info_t
|
||||
{
|
||||
head_maxp_info_t ()
|
||||
@ -180,6 +187,8 @@ struct hb_subset_plan_t
|
||||
//recalculated head/maxp table info after instancing
|
||||
mutable head_maxp_info_t head_maxp_info;
|
||||
|
||||
os2_info_t os2_info;
|
||||
|
||||
const hb_subset_accelerator_t* accelerator;
|
||||
hb_subset_accelerator_t* inprogress_accelerator;
|
||||
|
||||
|
@ -1,81 +0,0 @@
|
||||
/*
|
||||
* Copyright © 2022 Google, Inc.
|
||||
*
|
||||
* This is part of HarfBuzz, a text shaping library.
|
||||
*
|
||||
* Permission is hereby granted, without written agreement and without
|
||||
* license or royalty fees, to use, copy, modify, and distribute this
|
||||
* software and its documentation for any purpose, provided that the
|
||||
* above copyright notice and the following two paragraphs appear in
|
||||
* all copies of this software.
|
||||
*
|
||||
* IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
|
||||
* DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
|
||||
* ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
|
||||
* IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
* DAMAGE.
|
||||
*
|
||||
* THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
|
||||
* BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
|
||||
* ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
|
||||
* PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef HB_SUBSET_REPACKER_H
|
||||
#define HB_SUBSET_REPACKER_H
|
||||
|
||||
#include "hb.h"
|
||||
|
||||
HB_BEGIN_DECLS
|
||||
|
||||
#ifdef HB_EXPERIMENTAL_API
|
||||
/*
|
||||
* struct hb_link_t
|
||||
* width: offsetSize in bytes
|
||||
* position: position of the offset field in bytes
|
||||
* from beginning of subtable
|
||||
* objidx: index of subtable
|
||||
*/
|
||||
struct hb_link_t
|
||||
{
|
||||
unsigned width;
|
||||
unsigned position;
|
||||
unsigned objidx;
|
||||
};
|
||||
|
||||
typedef struct hb_link_t hb_link_t;
|
||||
|
||||
/*
|
||||
* struct hb_object_t
|
||||
* head: start of object data
|
||||
* tail: end of object data
|
||||
* num_real_links: num of offset field in the object
|
||||
* real_links: pointer to array of offset info
|
||||
* num_virtual_links: num of objects that must be packed
|
||||
* after current object in the final serialized order
|
||||
* virtual_links: array of virtual link info
|
||||
*/
|
||||
struct hb_object_t
|
||||
{
|
||||
char *head;
|
||||
char *tail;
|
||||
unsigned num_real_links;
|
||||
hb_link_t *real_links;
|
||||
unsigned num_virtual_links;
|
||||
hb_link_t *virtual_links;
|
||||
};
|
||||
|
||||
typedef struct hb_object_t hb_object_t;
|
||||
|
||||
HB_EXTERN hb_blob_t*
|
||||
hb_subset_repack_or_fail (hb_tag_t table_tag,
|
||||
hb_object_t* hb_objects,
|
||||
unsigned num_hb_objs);
|
||||
|
||||
#endif
|
||||
|
||||
HB_END_DECLS
|
||||
|
||||
#endif /* HB_SUBSET_REPACKER_H */
|
@ -22,37 +22,36 @@
|
||||
* PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "hb.hh"
|
||||
|
||||
#include "hb-subset-serialize.h"
|
||||
#include "hb-repacker.hh"
|
||||
|
||||
#ifdef HB_EXPERIMENTAL_API
|
||||
|
||||
/**
|
||||
* hb_subset_repack_or_fail:
|
||||
* hb_subset_serialize_or_fail:
|
||||
* @table_tag: tag of the table being packed, needed to allow table specific optimizations.
|
||||
* @hb_objects: raw array of struct hb_object_t, which provides
|
||||
* @hb_objects: raw array of struct hb_subset_serialize_object_t, which provides
|
||||
* object graph info
|
||||
* @num_hb_objs: number of hb_object_t in the hb_objects array.
|
||||
* @num_hb_objs: number of hb_subset_serialize_object_t in the hb_objects array.
|
||||
*
|
||||
* Given the input object graph info, repack a table to eliminate
|
||||
* offset overflows. A nullptr is returned if the repacking attempt fails.
|
||||
* Given the input object graph info, repack a table to eliminate offset overflows and
|
||||
* serialize it into a continuous array of bytes. A nullptr is returned if the serializing attempt fails.
|
||||
* Table specific optimizations (eg. extension promotion in GSUB/GPOS) may be performed.
|
||||
* Passing HB_TAG_NONE will disable table specific optimizations.
|
||||
*
|
||||
* XSince: EXPERIMENTAL
|
||||
* Since: 10.2.0
|
||||
**/
|
||||
hb_blob_t* hb_subset_repack_or_fail (hb_tag_t table_tag,
|
||||
hb_object_t* hb_objects,
|
||||
unsigned num_hb_objs)
|
||||
HB_EXTERN hb_blob_t *
|
||||
hb_subset_serialize_or_fail (hb_tag_t table_tag,
|
||||
hb_subset_serialize_object_t *hb_objects,
|
||||
unsigned num_hb_objs)
|
||||
{
|
||||
hb_vector_t<const hb_object_t *> packed;
|
||||
hb_vector_t<const hb_subset_serialize_object_t *> packed;
|
||||
packed.alloc (num_hb_objs + 1);
|
||||
packed.push (nullptr);
|
||||
for (unsigned i = 0 ; i < num_hb_objs ; i++)
|
||||
packed.push (&(hb_objects[i]));
|
||||
|
||||
return hb_resolve_overflows (packed,
|
||||
table_tag,
|
||||
20,
|
||||
true);
|
||||
return hb_resolve_overflows (packed, table_tag, 20, true);
|
||||
}
|
||||
#endif
|
83
src/3rdparty/harfbuzz-ng/src/hb-subset-serialize.h
vendored
Normal file
83
src/3rdparty/harfbuzz-ng/src/hb-subset-serialize.h
vendored
Normal file
@ -0,0 +1,83 @@
|
||||
/*
|
||||
* Copyright © 2022 Google, Inc.
|
||||
*
|
||||
* This is part of HarfBuzz, a text shaping library.
|
||||
*
|
||||
* Permission is hereby granted, without written agreement and without
|
||||
* license or royalty fees, to use, copy, modify, and distribute this
|
||||
* software and its documentation for any purpose, provided that the
|
||||
* above copyright notice and the following two paragraphs appear in
|
||||
* all copies of this software.
|
||||
*
|
||||
* IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
|
||||
* DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
|
||||
* ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
|
||||
* IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
* DAMAGE.
|
||||
*
|
||||
* THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
|
||||
* BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
|
||||
* ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
|
||||
* PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef HB_SUBSET_SERIALIZE_H
|
||||
#define HB_SUBSET_SERIALIZE_H
|
||||
|
||||
#include "hb.h"
|
||||
|
||||
HB_BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* hb_subset_serialize_link_t:
|
||||
* @width: offsetSize in bytes
|
||||
* @position: position of the offset field in bytes from
|
||||
* beginning of subtable
|
||||
* @objidx: index of subtable
|
||||
*
|
||||
* Represents a link between two objects in the object graph
|
||||
* to be serialized.
|
||||
*
|
||||
* Since: 10.2.0
|
||||
*/
|
||||
typedef struct hb_subset_serialize_link_t {
|
||||
unsigned int width;
|
||||
unsigned int position;
|
||||
unsigned int objidx;
|
||||
} hb_subset_serialize_link_t;
|
||||
|
||||
/**
|
||||
* hb_subset_serialize_object_t:
|
||||
* @head: start of object data
|
||||
* @tail: end of object data
|
||||
* @num_real_links: number of offset field in the object
|
||||
* @real_links: array of offset info
|
||||
* @num_virtual_links: number of objects that must be packed
|
||||
* after current object in the final
|
||||
* serialized order
|
||||
* @virtual_links: array of virtual link info
|
||||
*
|
||||
* Represents an object in the object graph to be serialized.
|
||||
*
|
||||
* Since: 10.2.0
|
||||
*/
|
||||
typedef struct hb_subset_serialize_object_t {
|
||||
char *head;
|
||||
char *tail;
|
||||
unsigned int num_real_links;
|
||||
hb_subset_serialize_link_t *real_links;
|
||||
unsigned int num_virtual_links;
|
||||
hb_subset_serialize_link_t *virtual_links;
|
||||
} hb_subset_serialize_object_t;
|
||||
|
||||
HB_EXTERN hb_blob_t *
|
||||
hb_subset_serialize_or_fail (hb_tag_t table_tag,
|
||||
hb_subset_serialize_object_t *hb_objects,
|
||||
unsigned num_hb_objs);
|
||||
|
||||
|
||||
HB_END_DECLS
|
||||
|
||||
#endif /* HB_SUBSET_SERIALIZE_H */
|
2
src/3rdparty/harfbuzz-ng/src/hb-subset.cc
vendored
2
src/3rdparty/harfbuzz-ng/src/hb-subset.cc
vendored
@ -295,7 +295,7 @@ _try_subset (const TableType *table,
|
||||
DEBUG_MSG (SUBSET, nullptr, "OT::%c%c%c%c ran out of room; reallocating to %u bytes.",
|
||||
HB_UNTAG (c->table_tag), buf_size);
|
||||
|
||||
if (unlikely (buf_size > c->source_blob->length * 16 ||
|
||||
if (unlikely (buf_size > c->source_blob->length * 256 ||
|
||||
!buf->alloc (buf_size, true)))
|
||||
{
|
||||
DEBUG_MSG (SUBSET, nullptr, "OT::%c%c%c%c failed to reallocate %u bytes.",
|
||||
|
12
src/3rdparty/harfbuzz-ng/src/hb-subset.h
vendored
12
src/3rdparty/harfbuzz-ng/src/hb-subset.h
vendored
@ -203,6 +203,18 @@ hb_subset_input_set_axis_range (hb_subset_input_t *input,
|
||||
float axis_max_value,
|
||||
float axis_def_value);
|
||||
|
||||
HB_EXTERN hb_bool_t
|
||||
hb_subset_axis_range_from_string (const char *str, int len,
|
||||
float *axis_min_value,
|
||||
float *axis_max_value,
|
||||
float *axis_def_value);
|
||||
|
||||
HB_EXTERN void
|
||||
hb_subset_axis_range_to_string (hb_subset_input_t *input,
|
||||
hb_tag_t axis_tag,
|
||||
char *buf,
|
||||
unsigned size);
|
||||
|
||||
#ifdef HB_EXPERIMENTAL_API
|
||||
HB_EXTERN hb_bool_t
|
||||
hb_subset_input_override_name_table (hb_subset_input_t *input,
|
||||
|
6
src/3rdparty/harfbuzz-ng/src/hb-utf.hh
vendored
6
src/3rdparty/harfbuzz-ng/src/hb-utf.hh
vendored
@ -458,19 +458,21 @@ struct hb_ascii_t
|
||||
template <typename utf_t>
|
||||
static inline const typename utf_t::codepoint_t *
|
||||
hb_utf_offset_to_pointer (const typename utf_t::codepoint_t *start,
|
||||
const typename utf_t::codepoint_t *text,
|
||||
unsigned text_len,
|
||||
signed offset)
|
||||
{
|
||||
hb_codepoint_t unicode;
|
||||
|
||||
while (offset-- > 0)
|
||||
start = utf_t::next (start,
|
||||
start + utf_t::max_len,
|
||||
text + text_len,
|
||||
&unicode,
|
||||
HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT);
|
||||
|
||||
while (offset++ < 0)
|
||||
start = utf_t::prev (start,
|
||||
start - utf_t::max_len,
|
||||
text,
|
||||
&unicode,
|
||||
HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT);
|
||||
|
||||
|
4
src/3rdparty/harfbuzz-ng/src/hb-version.h
vendored
4
src/3rdparty/harfbuzz-ng/src/hb-version.h
vendored
@ -47,7 +47,7 @@ HB_BEGIN_DECLS
|
||||
*
|
||||
* The minor component of the library version available at compile-time.
|
||||
*/
|
||||
#define HB_VERSION_MINOR 1
|
||||
#define HB_VERSION_MINOR 2
|
||||
/**
|
||||
* HB_VERSION_MICRO:
|
||||
*
|
||||
@ -60,7 +60,7 @@ HB_BEGIN_DECLS
|
||||
*
|
||||
* A string literal containing the library version available at compile-time.
|
||||
*/
|
||||
#define HB_VERSION_STRING "10.1.0"
|
||||
#define HB_VERSION_STRING "10.2.0"
|
||||
|
||||
/**
|
||||
* HB_VERSION_ATLEAST:
|
||||
|
Loading…
x
Reference in New Issue
Block a user