--- qt-x11-free-3.2.2/src/kernel/qscriptengine_x11.cpp.orig Fri Oct 10 10:47:32 2003 +++ qt-x11-free-3.2.2/src/kernel/qscriptengine_x11.cpp Wed Oct 22 16:32:31 2003 @@ -2665,16 +2665,16 @@ if (syllableLength == 2) { int LIndex = ch[0].unicode() - Hangul_LBase; int VIndex = ch[1].unicode() - Hangul_VBase; - if (LIndex > 0 && LIndex < Hangul_LCount && - VIndex > 0 && VIndex < Hangul_VCount) + if (LIndex >= 0 && LIndex < Hangul_LCount && + VIndex >= 0 && VIndex < Hangul_VCount) composed = (LIndex * Hangul_VCount + VIndex) * Hangul_TCount + Hangul_SBase; } else if (syllableLength == 3) { int LIndex = ch[0].unicode() - Hangul_LBase; int VIndex = ch[1].unicode() - Hangul_VBase; - int TIndex = ch[1].unicode() - Hangul_TBase; - if (LIndex > 0 && LIndex < Hangul_LCount && - VIndex > 0 && VIndex < Hangul_VCount && - TIndex > 0 && TIndex < Hangul_TCount ) + int TIndex = ch[2].unicode() - Hangul_TBase; + if (LIndex >= 0 && LIndex < Hangul_LCount && + VIndex >= 0 && VIndex < Hangul_VCount && + TIndex >= 0 && TIndex < Hangul_TCount ) composed = (LIndex * Hangul_VCount + VIndex) * Hangul_TCount + TIndex + Hangul_SBase; } @@ -2723,7 +2723,7 @@ }; const int *f = features; while (*f) - openType->applyGSUBFeature(*f); + openType->applyGSUBFeature(*f++); openType->applyGPOSFeatures(); GlyphAttributes *glyphAttrs = engine->glyphAttributes(si)+si->num_glyphs; @@ -2760,7 +2760,7 @@ advance_t *advances = engine->advances(si)+si->num_glyphs; GlyphAttributes *glyphAttributes = engine->glyphAttributes(si)+si->num_glyphs; - int error = si->fontEngine->stringToCMap(ch, len, glyphs, advances, &len, + int error = si->fontEngine->stringToCMap(chars, len, glyphs, advances, &len, (si->analysis.bidiLevel %2)); assert (!error);