diff options
author | evan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-15 21:38:18 +0000 |
---|---|---|
committer | evan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-15 21:38:18 +0000 |
commit | a1d1ca839b89485079d21282e1a4d8f4ed938d9b (patch) | |
tree | b6700ccae9c90e6b28ff6a0a50d6979a6544454a /third_party/harfbuzz | |
parent | 3b13c31b62fba930d227c053e51a6701ee365d83 (diff) | |
download | chromium_src-a1d1ca839b89485079d21282e1a4d8f4ed938d9b.zip chromium_src-a1d1ca839b89485079d21282e1a4d8f4ed938d9b.tar.gz chromium_src-a1d1ca839b89485079d21282e1a4d8f4ed938d9b.tar.bz2 |
linux: fix multicharacter hebrew shaping
When we have base + vowel1 + vowel2, and there's no composed version
of base + vowel1, attempt to compose base + vowel2 rather than composing
vowel1 + vowel2 and then giving up on it because they don't compose.
Review URL: http://codereview.chromium.org/549069
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36413 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'third_party/harfbuzz')
-rw-r--r-- | third_party/harfbuzz/src/harfbuzz-hebrew.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/third_party/harfbuzz/src/harfbuzz-hebrew.c b/third_party/harfbuzz/src/harfbuzz-hebrew.c index 2bda386..d2664de 100644 --- a/third_party/harfbuzz/src/harfbuzz-hebrew.c +++ b/third_party/harfbuzz/src/harfbuzz-hebrew.c @@ -86,7 +86,7 @@ HB_Bool HB_HebrewShape(HB_ShaperItem *shaper_item) logClusters[0] = 0; for (i = 1; i < shaper_item->item.length; ++i) { - hb_uint16 base = shapedChars[slen-1]; + hb_uint16 base = shapedChars[cluster_start]; hb_uint16 shaped = 0; HB_Bool invalid = FALSE; if (uc[i] == Dagesh) { @@ -145,7 +145,7 @@ HB_Bool HB_HebrewShape(HB_ShaperItem *shaper_item) } if (shaped) { if (shaper_item->font->klass->canRender(shaper_item->font, (HB_UChar16 *)&shaped, 1)) { - shapedChars[slen-1] = shaped; + shapedChars[cluster_start] = shaped; } else shaped = 0; } |