Huw Davies : usp10: Clusters are represented by glyph indices not character positions.
Module: wine Branch: master Commit: 5e5d8d215b60c83d3919711c17a73fa719b6bb41 URL: http://source.winehq.org/git/wine.git/?a=commit;h=5e5d8d215b60c83d3919711c17... Author: Huw Davies <huw(a)codeweavers.com> Date: Wed Feb 20 09:51:10 2013 +0000 usp10: Clusters are represented by glyph indices not character positions. --- dlls/usp10/usp10.c | 10 ++++++---- 1 files changed, 6 insertions(+), 4 deletions(-) diff --git a/dlls/usp10/usp10.c b/dlls/usp10/usp10.c index 8bfe156..5287556 100644 --- a/dlls/usp10/usp10.c +++ b/dlls/usp10/usp10.c @@ -2534,8 +2534,9 @@ HRESULT WINAPI ScriptCPtoX(int iCP, if (check >= cChars && !iMaxPos) { - for (check = clust; check < cChars; check++) - special_size += get_glyph_cluster_advance(piAdvance, psva, pwLogClust, cGlyphs, cChars, check, 1); + int glyph; + for (glyph = clust; glyph < cGlyphs; glyph++) + special_size += get_glyph_cluster_advance(piAdvance, psva, pwLogClust, cGlyphs, cChars, glyph, 1); iSpecial = item; special_size /= (cChars - item); iPosX += special_size; @@ -2666,8 +2667,9 @@ HRESULT WINAPI ScriptXtoCP(int iX, if (check >= cChars && direction > 0) { - for (check = clust; check < cChars; check++) - special_size += get_glyph_cluster_advance(piAdvance, psva, pwLogClust, cGlyphs, cChars, check, direction); + int glyph; + for (glyph = clust; glyph < cGlyphs; glyph++) + special_size += get_glyph_cluster_advance(piAdvance, psva, pwLogClust, cGlyphs, cChars, glyph, direction); iSpecial = item; special_size /= (cChars - item); iPosX += special_size;
participants (1)
-
Alexandre Julliard