From a6175d5a7aaff03388ab631f27d384edfac0b00f Mon Sep 17 00:00:00 2001 From: Than Ngo Date: Thu, 23 Sep 2010 15:07:58 +0200 Subject: [PATCH] - fix bz#562049, bn-IN Incorrect rendering - fix bz#562058, bn_IN init feature is not applied properly - fix bz#631732, indic invalid syllable's are not recognized properly - fix bz#636399, oriya script open type features are not applied properly --- qt-4.6.3-bn-rendering-bz562049.patch | 15 +++++++++++++ qt-4.6.3-bn-rendering-bz562058.patch | 12 ++++++++++ qt-4.6.3-indic-rendering-bz631732.patch | 14 ++++++++++++ qt-4.6.3-indic-rendering-bz636399.patch | 30 +++++++++++++++++++++++++ qt.spec | 17 +++++++++++++- 5 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 qt-4.6.3-bn-rendering-bz562049.patch create mode 100644 qt-4.6.3-bn-rendering-bz562058.patch create mode 100644 qt-4.6.3-indic-rendering-bz631732.patch create mode 100644 qt-4.6.3-indic-rendering-bz636399.patch diff --git a/qt-4.6.3-bn-rendering-bz562049.patch b/qt-4.6.3-bn-rendering-bz562049.patch new file mode 100644 index 0000000..0e562e4 --- /dev/null +++ b/qt-4.6.3-bn-rendering-bz562049.patch @@ -0,0 +1,15 @@ +diff -rup qt-everywhere-opensource-src-4.6.3/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp qt-everywhere-opensource-src-4.6.3_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp +--- qt-everywhere-opensource-src-4.6.3/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp 2010-06-02 07:33:13.000000000 +0530 ++++ qt-everywhere-opensource-src-4.6.3_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp 2010-09-04 13:27:33.000000000 +0530 +@@ -1741,6 +1741,11 @@ static int indic_nextSyllableBoundary(HB + if (state == Halant && uc[pos] == 0x200d /* ZWJ */) + break; + // the control character should be the last char in the item ++ if (state == Consonant && script == HB_Script_Bengali && uc[pos-1] == 0x09B0 && uc[pos] == 0x200d /* ZWJ */) ++ break; ++ if (state == Consonant && script == HB_Script_Kannada && uc[pos-1] == 0x0CB0 && uc[pos] == 0x200d /* ZWJ */) ++ break; ++ // Bengali and Kannada has a special exception for rendering yaphala with ra (to avoid reph) see http://www.unicode.org/faq/indic.html#15 + ++pos; + goto finish; + case Consonant: diff --git a/qt-4.6.3-bn-rendering-bz562058.patch b/qt-4.6.3-bn-rendering-bz562058.patch new file mode 100644 index 0000000..ee76927 --- /dev/null +++ b/qt-4.6.3-bn-rendering-bz562058.patch @@ -0,0 +1,12 @@ +diff -rup qt-everywhere-opensource-src-4.7.0-beta2/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp qt-everywhere-opensource-src-4.7.0-beta2_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp +--- qt-everywhere-opensource-src-4.7.0-beta2/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp 2010-06-30 07:23:12.000000000 +0530 ++++ qt-everywhere-opensource-src-4.7.0-beta2_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp 2010-09-22 14:33:33.000000000 +0530 +@@ -37,7 +37,7 @@ static HB_Bool isLetter(HB_UChar16 ucs) + FLAG(HB_Letter_Titlecase) | + FLAG(HB_Letter_Modifier) | + FLAG(HB_Letter_Other); +- return FLAG(HB_GetUnicodeCharCategory(ucs)) & test; ++ return (FLAG(HB_GetUnicodeCharCategory(ucs)) & test) != 0; + } + + static HB_Bool isMark(HB_UChar16 ucs) diff --git a/qt-4.6.3-indic-rendering-bz631732.patch b/qt-4.6.3-indic-rendering-bz631732.patch new file mode 100644 index 0000000..507f876 --- /dev/null +++ b/qt-4.6.3-indic-rendering-bz631732.patch @@ -0,0 +1,14 @@ +diff -rup qt-everywhere-opensource-src-4.6.3/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp qt-everywhere-opensource-src-4.6.3_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp +--- qt-everywhere-opensource-src-4.6.3/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp 2010-06-02 07:33:13.000000000 +0530 ++++ qt-everywhere-opensource-src-4.6.3_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp 2010-09-10 18:37:23.000000000 +0530 +@@ -1779,10 +1779,6 @@ static int indic_nextSyllableBoundary(HB + case Matra: + if (state == Consonant || state == Nukta) + break; +- if (state == Matra) { +- // ### needs proper testing for correct two/three part matras +- break; +- } + // ### not sure if this is correct. If it is, does it apply only to Bengali or should + // it work for all Indic languages? + // the combination Independent_A + Vowel Sign AA is allowed. diff --git a/qt-4.6.3-indic-rendering-bz636399.patch b/qt-4.6.3-indic-rendering-bz636399.patch new file mode 100644 index 0000000..bf49f30 --- /dev/null +++ b/qt-4.6.3-indic-rendering-bz636399.patch @@ -0,0 +1,30 @@ +diff -rup qt-everywhere-opensource-src-4.7.0-beta2/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp qt-everywhere-opensource-src-4.7.0-beta2_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp +--- qt-everywhere-opensource-src-4.7.0-beta2/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp 2010-06-30 07:23:12.000000000 +0530 ++++ qt-everywhere-opensource-src-4.7.0-beta2_mod/src/3rdparty/harfbuzz/src/harfbuzz-indic.cpp 2010-09-20 11:40:58.000000000 +0530 +@@ -660,18 +660,18 @@ static const unsigned char indicPosition + None, None, None, None, + + None, None, None, None, +- None, None, None, None, +- None, None, None, None, +- None, None, None, None, ++ None, Below, Below, Below, ++ Below, Below, Below, Below, ++ Below, Below, None, Below, + +- None, None, None, None, +- Below, None, None, None, +- Below, None, None, None, ++ Below, Below, Below, Below, ++ Below, Below, Below, Below, ++ Below, None, Below, Below, + Below, Below, Below, Post, + + Below, None, Below, Below, +- None, None, None, None, +- None, None, None, None, ++ None, Below, Below, Below, ++ Below, Below, None, None, + None, None, Post, Above, + + Post, Below, Below, Below, diff --git a/qt.spec b/qt.spec index 54223dc..3c7fc5b 100644 --- a/qt.spec +++ b/qt.spec @@ -15,7 +15,7 @@ Summary: Qt toolkit Name: qt Epoch: 1 Version: 4.7.0 -Release: 1%{?dist} +Release: 2%{?dist} # See LGPL_EXCEPTIONS.txt, LICENSE.GPL3, respectively, for exception details License: LGPLv2 with exceptions or GPLv3 with exceptions @@ -59,6 +59,11 @@ Patch55: qt-everywhere-opensource-src-4.6.2-cups.patch Patch56: qt-everywhere-opensource-src-4.7.0-beta1-s390x.patch # qtwebkit to search nspluginwrapper paths too Patch58: qt-everywhere-opensource-src-4.7.0-beta1-qtwebkit_pluginpath.patch +# indic Incorrect rendering +Patch59: qt-4.6.3-bn-rendering-bz562049.patch +Patch60: qt-4.6.3-bn-rendering-bz562058.patch +Patch61: qt-4.6.3-indic-rendering-bz631732.patch +Patch62: qt-4.6.3-indic-rendering-bz636399.patch # security patches @@ -415,6 +420,10 @@ Qt libraries used for drawing widgets and OpenGL items. %patch55 -p1 -b .cups-1 %patch56 -p1 -b .s390x %patch58 -p1 -b .qtwebkit_pluginpath +%patch59 -p1 -b .bn-rendering-bz562049 +%patch60 -p1 -b .bn-rendering-bz562058 +%patch61 -p1 -b .indic-rendering-bz631732 +%patch62 -p1 -b .indic-rendering-bz636399 # security fixes @@ -1087,6 +1096,12 @@ fi %changelog +* Thu Sep 23 2010 Than Ngo - 4.7.0-2 +- fix bz#562049, bn-IN Incorrect rendering +- fix bz#562058, bn_IN init feature is not applied properly +- fix bz#631732, indic invalid syllable's are not recognized properly +- fix bz#636399, oriya script open type features are not applied properly + * Tue Sep 21 2010 Than Ngo - 4.7.0-1 - 4.7.0