[ucdn] Fix Hangul composition
https://github.com/grigorig/ucdn/issues/23
This commit is contained in:
parent
b2ab15a78c
commit
f39934983f
|
@ -163,7 +163,8 @@ static int hangul_pair_decompose(uint32_t code, uint32_t *a, uint32_t *b)
|
||||||
|
|
||||||
static int hangul_pair_compose(uint32_t *code, uint32_t a, uint32_t b)
|
static int hangul_pair_compose(uint32_t *code, uint32_t a, uint32_t b)
|
||||||
{
|
{
|
||||||
if (a >= SBASE && a < (SBASE + SCOUNT) && b >= TBASE && b < (TBASE + TCOUNT)) {
|
if (a >= SBASE && a < (SBASE + SCOUNT) && b > TBASE && b < (TBASE + TCOUNT) &&
|
||||||
|
!((a - SBASE) % TCOUNT)) {
|
||||||
/* LV,T */
|
/* LV,T */
|
||||||
*code = a + (b - TBASE);
|
*code = a + (b - TBASE);
|
||||||
return 3;
|
return 3;
|
||||||
|
|
|
@ -755,6 +755,10 @@ test_unicode_normalization (gconstpointer user_data)
|
||||||
g_assert (hb_unicode_compose (uf, 0xCE20, 0x11B8, &ab) && ab == 0xCE31);
|
g_assert (hb_unicode_compose (uf, 0xCE20, 0x11B8, &ab) && ab == 0xCE31);
|
||||||
g_assert (hb_unicode_compose (uf, 0x110E, 0x1173, &ab) && ab == 0xCE20);
|
g_assert (hb_unicode_compose (uf, 0x110E, 0x1173, &ab) && ab == 0xCE20);
|
||||||
|
|
||||||
|
g_assert (!hb_unicode_compose (uf, 0xAC00, 0x11A7, &ab));
|
||||||
|
g_assert (hb_unicode_compose (uf, 0xAC00, 0x11A8, &ab) && ab == 0xAC01);
|
||||||
|
g_assert (!hb_unicode_compose (uf, 0xAC01, 0x11A8, &ab));
|
||||||
|
|
||||||
|
|
||||||
/* Test decompose() */
|
/* Test decompose() */
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue