#ifdef HAVE_GLIB /* Port from c++ is protected by a GNU Lesser GPLv3 Copyright © 2013 Sylvain BERTRAND <sylvain.bertrand@gmail.com> <sylware@legeek.net> */ #include "hb.h" #include "hb-private.h" #include "hb-atomic-private.h" #include "hb-glib.h" #include "hb-unicode-private.h" GUnicodeScript hb_glib_script_from_script(hb_script_t script) { return g_unicode_script_from_iso15924(script); } hb_script_t hb_glib_script_to_script(GUnicodeScript script) { return (hb_script_t) g_unicode_script_to_iso15924(script); } static hb_unicode_combining_class_t hb_glib_unicode_combining_class(hb_unicode_funcs_t * ufuncs HB_UNUSED, hb_codepoint_t unicode, void *user_data HB_UNUSED) { return (hb_unicode_combining_class_t) g_unichar_combining_class(unicode); } static unsigned int hb_glib_unicode_eastasian_width(hb_unicode_funcs_t * ufuncs HB_UNUSED, hb_codepoint_t unicode, void *user_data HB_UNUSED) { return g_unichar_iswide(unicode) ? 2 : 1; } static hb_unicode_general_category_t hb_glib_unicode_general_category(hb_unicode_funcs_t * ufuncs HB_UNUSED, hb_codepoint_t unicode, void *user_data HB_UNUSED) { /*hb_unicode_general_category_t and GUnicodeType are identical */ return (hb_unicode_general_category_t) g_unichar_type(unicode); } static hb_codepoint_t hb_glib_unicode_mirroring(hb_unicode_funcs_t * ufuncs HB_UNUSED, hb_codepoint_t unicode, void *user_data HB_UNUSED) { g_unichar_get_mirror_char(unicode, &unicode); return unicode; } static hb_script_t hb_glib_unicode_script(hb_unicode_funcs_t * ufuncs HB_UNUSED, hb_codepoint_t unicode, void *user_data HB_UNUSED) { return hb_glib_script_to_script(g_unichar_get_script(unicode)); } static hb_bool_t hb_glib_unicode_compose(hb_unicode_funcs_t * ufuncs HB_UNUSED, hb_codepoint_t a, hb_codepoint_t b, hb_codepoint_t * ab, void *user_data HB_UNUSED) { return g_unichar_compose(a, b, ab); } static hb_bool_t hb_glib_unicode_decompose(hb_unicode_funcs_t * ufuncs HB_UNUSED, hb_codepoint_t ab, hb_codepoint_t * a, hb_codepoint_t * b, void *user_data HB_UNUSED) { return g_unichar_decompose(ab, a, b); } static unsigned int hb_glib_unicode_decompose_compatibility(hb_unicode_funcs_t * ufuncs HB_UNUSED, hb_codepoint_t u, hb_codepoint_t * decomposed, void *user_data HB_UNUSED) { return g_unichar_fully_decompose(u, TRUE, decomposed, HB_UNICODE_MAX_DECOMPOSITION_LEN); } /*XXX:should go in lib "global init"*/ static hb_unicode_funcs_t hb_glib_unicode_funcs = { REF_CNT_INVALID_VAL, /*ref_cnt */ NULL, /*parent */ TRUE, /*immutable */ { /*func */ hb_glib_unicode_combining_class, hb_glib_unicode_eastasian_width, hb_glib_unicode_general_category, hb_glib_unicode_mirroring, hb_glib_unicode_script, hb_glib_unicode_compose, hb_glib_unicode_decompose, hb_glib_unicode_decompose_compatibility}, { /*user_data */ NULL, /*combining_class */ NULL, /*eastasian_width */ NULL, /*general_category */ NULL, /*mirroring */ NULL, /*script */ NULL, /*compose */ NULL, /*decompose */ NULL /*decompose_compatibility */ }, { /*destroy */ NULL, /*combining_class */ NULL, /*eastasian_width */ NULL, /*general_category */ NULL, /*mirroring */ NULL, /*script */ NULL, /*compose */ NULL, /*decompose */ NULL /*decompose_compatibility */ } }; hb_unicode_funcs_t *hb_glib_get_unicode_funcs(void) { return &hb_glib_unicode_funcs; } #endif
Mode | Type | Size | Ref | File |
---|---|---|---|---|
100644 | blob | 215 | 9381999f3aeff23f92475e7aef7a141e7b31c938 | ABBREVIATIONS |
100644 | blob | 120 | b5b8344f6c0ab2a879570909dfc67753d036ea10 | FIXME |
100644 | blob | 241 | 9c28271a27b1d0acd9a2a8f412a4f107767e4df2 | README |
100644 | blob | 240 | 18919b3e2f18beb79b9077d0fde23d77d8e115b0 | harfbuzz.pc.in |
100644 | blob | 1192 | 833e0c5e348c3c7663711b84cd05baf7f2ec4b6b | hb-atomic-private.h |
100644 | blob | 119 | 154fbbb0957b9a8247993436984ab9cda943720c | hb-blob-private.h |
100644 | blob | 4603 | 6cc79394dfa9884d604a6e958268d841c370f3f1 | hb-blob.c |
100644 | blob | 3534 | ef3fc98c05de6d2fa43f6303d6419f6620d474bf | hb-blob.h |
100644 | blob | 1326 | 3b93b65480793ced5bdd1c6e2587d3c2a66f3a53 | hb-buffer-private.h |
100644 | blob | 11355 | 24118c098a5412ec39226fe2a18b7e192dd902b2 | hb-buffer.c |
100644 | blob | 10513 | d3a2512d800fde857f72764b150aaa392fd8b15d | hb-buffer.h |
100644 | blob | 3302 | 92b54dbaf82493e6f281bb20231df3e1ecb9d63c | hb-common.c |
100644 | blob | 13612 | af17d780c27fc757441d5ce0fce1db120bd87c9b | hb-common.h |
100644 | blob | 1746 | 82066e4e0dc0b2770a8800f9a9fb417e14d9d7d0 | hb-coretext.h |
100644 | blob | 1584 | 30ae4b1caf76dd03cc682eda7458728b5380ad6c | hb-deprecated.h |
100644 | blob | 1175 | 5e43e30983efc3b0936efbdaf3921eecbfc1635a | hb-face-private.h |
100644 | blob | 5222 | 770d81b8c6b9bafd4c9eb018f1420e369ba09647 | hb-face.c |
100644 | blob | 2985 | 91237b70850bc9750516c73aca7051228e5c22c1 | hb-face.h |
100644 | blob | 3268 | cdc0ae9a6a50a1b444db3a148db08f01bececa7c | hb-fallback-shape.c |
100644 | blob | 2875 | dce2474d44b59f5349528718422dd9af7975cf52 | hb-font-private.h |
100644 | blob | 24805 | 80df40b5a885a7e2ae668ef1fc01020247a4e155 | hb-font.c |
100644 | blob | 13844 | c3165e1d74c123fc1aa289ce503e38f870b43611 | hb-font.h |
100644 | blob | 2502 | 551d6e47f67a13ce27d21f4bfadc86a8091507ce | hb-ft.c |
100644 | blob | 3790 | dc8ef8558484cb4faaa3cbe6906a84d8005a3a10 | hb-ft.h |
100644 | blob | 3637 | 1468f247a5f2d3c48a0de2a9a9156e17fe4521dc | hb-glib.c |
100644 | blob | 1627 | a6b6ff82026f3a0016eab1f5201e13afbde93feb | hb-glib.h |
100644 | blob | 3140 | 0ea3b12cf1676dc6a2da8e546d9d6b7cbc60ed41 | hb-gobject-structs.h |
100644 | blob | 1334 | ea1bd25df82d46a222436a1ad078d0fc95d5c303 | hb-gobject.h |
100644 | blob | 1461 | 122c3e476366b341bc74ced282f424d863255ca7 | hb-graphite2.h |
100644 | blob | 1525 | 2db6a7b6797bddc46688f7b583de991a956a2e2a | hb-icu.h |
100644 | blob | 2133 | 3e4514517efb14434d2ac3a08b82a06eedf8ffaa | hb-open-file-private.h |
100644 | blob | 2674 | 18b89705a885521c6d8d08448eac1f65395a3a0d | hb-open-file.c |
100644 | blob | 65 | 642c3d3d45fdc42619d000cc9f7b3c890bdc0190 | hb-ot-face-private.h |
100644 | blob | 1365 | 80eaa54b1add7333d975fbee27c00bc777f3e046 | hb-ot-font.h |
100644 | blob | 2784 | 91122b51fbb221aeb52634439405e47e700a1e80 | hb-ot-layout.c |
100644 | blob | 9658 | eb23d45b68aabd24538b46bb482ac187c5f61d73 | hb-ot-layout.h |
100644 | blob | 1712 | 7b1bcc0637808bbbceda020409b61d947237d925 | hb-ot-shape.h |
100644 | blob | 730 | bfa3d45093e12bf9aa7a0a8920d6a573145e1f99 | hb-ot-tag.c |
100644 | blob | 1728 | 54fb747f582301c6d46bbe33ede8a2ef127dc999 | hb-ot-tag.h |
100644 | blob | 1348 | 47c92a58e4b7ddc3225e7cb65ce20aafceb3b81a | hb-ot.h |
100644 | blob | 2541 | 827e6c9b4e8f90ba02b24a259ddd10fa8b7f34cb | hb-private.h |
100644 | blob | 3828 | 2164c1a6549afc39d9f3c6e82bb6ca8f0b8f732d | hb-set.h |
100644 | blob | 1417 | 62ff962974ac05946c099ea7d4fb3473bd95f6ba | hb-shape-plan-private.h |
100644 | blob | 14266 | 11f405cdb548fd9ac6aaebda60059202512d5831 | hb-shape-plan.c |
100644 | blob | 2837 | aa5e0c7d6f519b841c4519811f18845cdf92ee77 | hb-shape-plan.h |
100644 | blob | 5057 | 00628cd3079786a1cf9c2534458ceeac98bcc9b6 | hb-shape.c |
100644 | blob | 2170 | 53bb845bf48f40758c69ae31a399054b43690413 | hb-shape.h |
100644 | blob | 1015 | ee80e4526b63481a48b348fe279c15e757363776 | hb-shaper-private.h |
100644 | blob | 2250 | 8073a7cc168f5624424250b6a81f0440243fc015 | hb-shaper.c |
100644 | blob | 1210 | 276c97e391a35215a71ad538b77696c69dd16eb1 | hb-unicode-private.h |
100644 | blob | 7644 | 53862e6db7e90afb058efbc0f0bad27cd25b28c1 | hb-unicode.c |
100644 | blob | 14695 | 33b68aa0d85b666090c2820e46c7a5242992b228 | hb-unicode.h |
100644 | blob | 1391 | 4e4ef9986a62e3df91d1d4ea048ec89d3526498d | hb-uniscribe.h |
100644 | blob | 4990 | 319e112fe2de8d3ccb9249fec39a96971d13f1fc | hb-utf-private.c |
100644 | blob | 1246 | dca4a18b95114b239706d6917a6c74eac87b3279 | hb-utf-private.h |
100644 | blob | 1887 | 0ffd889b278962a33f2b8882e1dba4b41af6b672 | hb-version.h.in |
100644 | blob | 1521 | 7402034f4379372b3a7d0529142e4c87e4b4599d | hb.h |
100644 | blob | 7651 | 65c5ca88a67c30becee01c5a8816d964b03862f9 | license.md |
100755 | blob | 5867 | d786a7162742b83e67d6039f51d97c6e34d39768 | make |