summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/harfbuzz
Commit message (Collapse)AuthorAgeFilesLines
* Prefix textstream operators with Qt::Lars Knoll2019-05-022-3/+3
| | | | | | | As the non prefixed variants are deprecated Change-Id: I2ba09d71b9cea5203b54297a3f2332e6d44fedcf Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Doc: Improve HarfBuzz configure options documentationPaul Wicking2018-09-271-1/+1
| | | | | | | Task-number: QTBUG-63632 Change-Id: Iedaf34d016d13eeae3dc2e9030a3cea28e602ccc Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io> Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Fix the copyright attribution for the HarfBuzz dependencyNicolas Ettlin2018-07-131-7/+5
| | | | | | Task-number: QTBUG-69260 Change-Id: I03079bee5eb17f87f48690e800517831f6215975 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Fix libs build with msvc on Chinese locale on WindowsLiang Qi2017-02-011-1/+1
| | | | | | | | | | | | | | | | | Chinese locale means Code Page 936 here. It's also related with removing C4819 warnings. And it's also following Conventions in Qt source code: All code is ascii only (7-bit characters only, run man ascii if unsure) See also http://wiki.qt.io/Coding_Conventions Task-number: QTBUG-56155 Task-number: QTBUG-58161 Change-Id: I37fa7a0e6a82a16eaf80e1cc99be801099ab87de Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: jian liang <jianliang79@gmail.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix compiler warning/error with clang 3.6Lars Knoll2016-11-081-1/+1
| | | | | | | | Clang warns about self assignment, so use the same mechanism as Q_UNUSED for HB_UNUSED. Change-Id: I0894c72fb0936074b15198053464f5bc4b8991d4 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2016-11-011-0/+8
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: config.tests/win/msvc_version.cpp configure.pri mkspecs/macx-ios-clang/features/default_post.prf mkspecs/macx-ios-clang/features/resolve_config.prf mkspecs/features/uikit/default_post.prf mkspecs/features/uikit/resolve_config.prf src/corelib/io/qsettings_mac.cpp src/corelib/json/qjsondocument.cpp src/plugins/platforms/cocoa/qcocoawindow.h src/plugins/platforms/cocoa/qcocoawindow.mm src/plugins/platforms/cocoa/qnswindowdelegate.h src/plugins/platforms/cocoa/qnswindowdelegate.mm src/plugins/platforms/ios/ios.pro src/plugins/platforms/ios/kernel.pro src/plugins/platforms/ios/qiosintegration.h src/plugins/platforms/minimalegl/qminimaleglintegration.cpp tests/auto/gui/painting/qpainter/tst_qpainter.cpp tools/configure/environment.cpp Change-Id: I654845e54e40f5951fb78aab349ca667e9f27843
| * Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-10-131-0/+8
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also bump minimum required Qt version for Android: Ministro updates. Conflicts: src/android/java/src/org/qtproject/qt5/android/bindings/QtActivityLoader.java src/android/java/src/org/qtproject/qt5/android/bindings/QtLoader.java src/plugins/platforms/android/androidjnimain.cpp Change-Id: I966f249bebf92da37bfdeb995ad21b027eb03301
| | * harfbuzz: compile with GCC 7Marc Mutz2016-10-121-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GCC 7 warns about implicit fall-throughs now. Fix by adding the missing comment. Didn't send a patch to upstream, because upstream harfbuzz-old hasn't seen a commit in four years, and this code is no longer in harfbuzz-ng. Change-Id: Ic97efbe01edd37738dcdf43528e82511197d7fb2 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | | Add qt_attribution.json filesKai Koehne2016-08-121-0/+17
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | The format is documented in http://wiki.qt.io/Qt_attribution.json Also add a LICENSE file in case there is none yet (usually copied from the source headers). Task-number: QTBUG-55139 Change-Id: Ib54c73d0bb9946cfd8579e86c6858035184ca516 Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* | Harfbuzz: Fix warnings of MSVC 64 bitFriedemann Kleint2016-07-272-5/+5
|/ | | | | | | | | | | | | | qtbase\src\3rdparty\harfbuzz\src\harfbuzz-shaper.cpp(97): error C2220: warning treated as error - no 'object' file generated qtbase\src\3rdparty\harfbuzz\src\harfbuzz-shaper.cpp(97): warning C4800: 'int': forcing value to bool 'true' or 'false' (performance warning) qtbase\src\3rdparty\harfbuzz\src\harfbuzz-shaper.cpp(284): warning C4800: 'HB_Bool': forcing value to bool 'true' or 'false' (performance warning) qtbase\src\3rdparty\harfbuzz\src\harfbuzz-arabic.c(924): warning C4244: 'initializing': conversion from '__int64' to 'int', possible loss of data qtbase\src\3rdparty\harfbuzz\src\harfbuzz-arabic.c(984): warning C4244: '=': conversion from '__int64' to 'int', possible loss of data qtbase\src\3rdparty\harfbuzz\src\harfbuzz-arabic.c(995): warning C4244: '=': conversion from '__int64' to 'int', possible loss of data Required to build QtCore after change a372cf5a80ec1a774f8f624b30b3c8209b800ec8. Change-Id: Ieb65c19e518984dde91bc8acab35203f8c271da3 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Fix MSVC 64 bit compiler warnings in 3rdparty codeKai Koehne2015-05-131-2/+2
| | | | | | | | | Make casts from size_t to int explicit to avoid warnings like warning C4267: '=' : conversion from 'size_t' to 'int', possible loss of data Change-Id: Ib69c25519dadf8732b0c08412cc97887df00a2d4 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* Fix const correctness in HarfbuzzThiago Macieira2015-03-111-2/+2
| | | | | | | | to_tis620 modifies cstr, so it mustn't be const. Change-Id: Ia0aac2f09e9245339951ffff13c8d77c886f767d Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Update copyright headersJani Heikkinen2015-02-1120-20/+20
| | | | | | | | | | | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Outdated header.LGPL removed (use header.LGPL21 instead) Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing combination. New header.LGPL-COMM taken in the use file which were using old header.LGPL3 (src/plugins/platforms/android/extract.cpp) Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license combination Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe Reviewed-by: Matti Paaso <matti.paaso@theqtcompany.com>
* Fix more warnings, found by cross-compiling QtThiago Macieira2013-05-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | KeccakF-1600-opt32.c:497:5: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare] harfbuzz-thai.c:264:49: error: comparison is always false due to limited range of data type [-Werror=type-limits] These warnings are caused by "char" defaulting to unsigned on ARM. In particular, the second warning was introduced by commit 785e95ef0a95ca8fb39ef57678cd4876ee657c43, which is not upstream... qbenchmarkvalgrind.cpp:224:5: error: variable ‘_qzz_res’ set but not used [-Werror=unused-but-set-variable] This one was fixed for x86-64 in 7b54571ec2032628ea71b0af but not for the other platforms. KeccakF-1600-opt32.c:250:5: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare] This one is wasn't caught before because it applies only to big-endian code. Change-Id: Ice33b639e55d95140cbf912bb81b6f508ed3744a Reviewed-by: Richard J. Moore <rich@kde.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix infinit loopMontel Laurent2013-03-271-1/+1
| | | | | Change-Id: Ie1edfeae72e033b14e16cc4c5c9e388f11be1627 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Fix HB incorrectly hides [narrow non-breaking space] characterKonstantin Ritt2013-02-251-1/+1
| | | | | | | | | U+202F is not of a Default_Ignorable property for a loooong time (perhaps was treated like a control code by mistake) Task-number: QTBUG-13280 Change-Id: I3c5ec5fa514039b7bca9ffa28ad6f5355e627855 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Harfbuzz: backporting fixes from upstreamKonstantin Ritt2013-02-257-14/+26
| | | | | | | | | | | | | | 81c8ef785b079980ad5b46be4fe7c7bf156dbf65 Fix crash! 81f2ecafa19b602f950df5a9e6e1b99c4b5ea55e Bug 30319 ff0612c2e7df1b86fc702c72e3015a6a5ae39b4c and 2dbd0fd11799c18bb6c66e337c3e31a1419823d4 Fix OOB access possibility 3bebe289aace6daa84b3d6983cebf5c58ddfad78 Fix problem with Indic shaper and control chars 90138e5a4d15c44f05456f90083ecacdc3196c8e Fix bad memory access in Myanmar shaper b847f24ce855d24f6822bcd9c0006905e81b94d8 Fix Arabic cursive positioning 3ab7b37bdebf0f8773493a1fee910b151c4de30f Fix misc leaks Change-Id: I6f3a6253782bff6abe4bf741d11c09fdd67542db Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Update copyright year in Digia's license headersSergio Ahumada2013-01-1820-20/+20
| | | | | Change-Id: Ic804938fc352291d011800d21e549c10acac66fb Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Change copyrights from Nokia to DigiaSergio Ahumada2012-12-0520-20/+20
| | | | | Change-Id: I841f4e6a6ee90cb3df1ff8f60c55ac84f6dd4125 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* QTextBoundaryFinder: Introduce BoundaryReason::MandatoryBreak flagKonstantin Ritt2012-10-101-1/+1
| | | | | | | | | | that will be returned by boundaryReasons() when the boundary finder is at the line end position (CR, LF, NewLine Function, End of Text, etc.). The MandatoryBreak flag, if set, means the text should be wrapped at a given position. Change-Id: I32d4f570935d2e015bfc5f18915396a15f009fde Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* QCharAttributes: add wordStart/wordEnd flagsKonstantin Ritt2012-09-262-2/+12
| | | | | | | | | | | | | | | A simple heuristic is used to detect the word beginning and ending by looking at the word break property value of surrounding characters. This behaves better than the white-spaces based implementation used before and makes it possible to tailor the default algorithm for complex scripts. BIG FAT WARNING: The QCharAttributes buffer now has to have a length of string length + 1 for the flags at end of text. Task-Id: QTBUG-6498 Change-Id: I5589b191ffde6a50d2af0c14a00430d3852c67b4 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* A step out from Harfbuzz (reduce dependency)Konstantin Ritt2012-09-226-32/+25
| | | | | | | | | | | | | | | | | Introduce QCharAttributes and use it instead of HB_CharAttributes everywhere in Qt (in Harfbuzz, the HB_CharAttributes is only used in the text segmentation algorithm which has been moved from HB to Qt (well, most of it)). Rename some members to better reflect their meaning, remember to keep HB_CharAttributes in sync with QCharAttributes. Also replace HB_ScriptItem with a (temporary) QUnicodeTools::ScriptItem struct that will be replaced with a more efficient/friendly solution a bit later. The soft hyphen and the mandatory break detection has been factored out of the default text breaking algorithm to a higher level in order to refactor the QCharAttributes bitfields and to optimize the implementation for the common case. Change-Id: Ieb365623ae954430f1c8b2dfcd65c82973143eec Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Harfbuzz: fix build with NO_OPENTYPE macro definedKonstantin Ritt2012-08-293-1/+7
| | | | | | | | Remove `DEFINES += QT_NO_OPENTYPE` since there are no QT_NO_OPENTYPE guards and I'm not sure defining NO_OPENTYPE won't break some things. Change-Id: I7b36d3f200408aee99db73c56baa9b4a21cb54f9 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* HarfBuzz: fix unused parameter / variable warningsMarc Mutz2012-08-251-2/+5
| | | | | | Change-Id: I362c80081ac4e4d0b9126385bab5a77826810926 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* Fix performence problem while shaping a lines with many scriptsOlivier Goffart2012-08-231-1/+1
| | | | | | | | | Fix quadradic behaviour regression introduced in commit 2e6b8b4734710377e25c199e3ff7865628e7d723 Task-number: QTBUG-22275 Change-Id: I343452c6b1cd0e571770e5dadd3cd6fd3167c96d Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Remove trailing comma in enumThiago Macieira2012-08-151-1/+1
| | | | | | | | | | | Spotted by ICC: qfreelist_p.h(127): warning #271: trailing comma is nonstandard BlockCount = 4, ^ Change-Id: Ib64d1d19ca0514e7582a295da48cbf6705aa8c44 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
* Silence a false-positive warning about uninitialised variable with ICCThiago Macieira2012-08-153-3/+3
| | | | | | | | | | | | | | | | ICC complains like so: harfbuzz-gpos.c(95): warning #592: variable "error" is used before its value is set return error; ^ However, line 95 is never executed because the condition on line 94 is always false. That's why it's a false positive. The same construct happens in the other two places. Still, silence the warning. Change-Id: I168d916d6837d4ac346facfd22b3e5b4e22ef7f0 Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
* Shift positions for lineBreakTypeKonstantin Ritt2012-06-072-4/+2
| | | | | | | | | | | | | | | | | | | to keep them consistent with positions for all other flags. This changes the internal behavior so that attributes[0].lineBreakType now means "break opportunity at start of the text (before the first character in the string)" and is always assigned with HB_NoBreak to conform rule LB2 (see http://www.unicode.org/reports/tr14/#LB2). The current implementation is based on the sample implementation from tr14 that aimed to be as simple as possible rather than to be optimal. From now, we can use pieces of the attributes array "as is" without having to adjust some positions. Or we can analize some long text by chunks (e.g. paragraph by paragraph) and consume less memory. This introduces a minor overhead that will be eliminated shortly. Change-Id: Ic873a05a9d5203b1c3d5aff2e4445a3f034c4bd2 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Re-generate the Arabic joining tables from UCD 6.1.0Konstantin Ritt2012-05-301-33/+36
| | | | | | | | | | Some names were fixed to meet their values in the Unicode data files (e.g. Zain -> Zhain); Some other names were added as a value alias (Nya -> Noon) or deprecated but retained as a value alias for BC (HamzaOnHehGoal -> TehMarbutaGoal); Newly assigned Arabic characters were mapped into respective joining types and classes) Change-Id: Ic4b4a6baf70f51fb5936f74fe9a173b8790dda11 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Disable GSUB feature when text contains surrogatesEskil Abrahamsen Blomfeldt2012-05-291-1/+12
| | | | | | | | | | | | | | | This is a work-around for a feature missing in Harfbuzz that can make a text run that contains a surrogate and a ligature crash. This will potentially cause the ligatures to break up if you combine them with a surrogate, causing visual changes to the text, but the scripts that require GSUB should not be affected by this, since they will not use surrogates. Still, it's not a permanent fix, but will serve as a bandaid for the crash until the underlying problem has been fixed. Task-number: QTBUG-22275 Change-Id: I90c37fba76bc7d1f369f3afddd1bd0dc306f5750 Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Avoid trying to load libthai again and again if it's not presentSimon Hausmann2012-05-101-1/+3
| | | | | Change-Id: I3bcbde7bbb307fb27c36709c33c8ff5cd09ab7f8 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* move the default text breaking algorithm impl from HarfBuzz to QtKonstantin Ritt2012-05-109-693/+12
| | | | | | | | | | | there are several reasons to do this: * text breaking is not a shaper's job; * since the text breaking rules are bound to a specific Unicode version, updating Qt's internal unicode data would require updating the data in HB as well; * makes porting to HurfBuzz-NG some easier Change-Id: I0bbf8e8a343bc074696f4ddf2ae4e7fa32a61629 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Avoid assert in QTextLayout for certain stringsEskil Abrahamsen Blomfeldt2012-05-091-0/+4
| | | | | | | | | | | | | | | | | | | As in other shapers, we need to make sure that the default attributes of the first character is set before doing the greek-specific composition (which will set the attributes for characters > 0). The effect of this would be that the clusterStart did not default to true in the start of the string, and we would get an unexpected situation in addNextCluster() in QTextLayout which would cause an assert. The example in the task, which combines a greek polytonic (dasia-oxia: u1FDE) with a regular combining diacritic (asterisk under: u0359), is not a correct string, but should not cause an assert. Task-number: QTBUG-22864 Change-Id: Ieaff3cccbd10abc634e95e9a79dcde4c48504a3c Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Revert "Harfbuzz-shaper - fix incorrect logClusters being set in ↵Eskil Abrahamsen Blomfeldt2012-04-261-35/+13
| | | | | | | | | | | | | | HB_OpenTypePosition" This reverts commit add629d4f16a536fc56d55727195e3247b621a54. The commit caused crashes when laying out some text (e.g. ordinary Arabic text) with certain fonts (it triggered the assert in QTextLayout::addNextCluster()). The regressions will have to be weeded out before the fix can be recommitted. Change-Id: Iee457f138367d4cf8fcbd2e518271d8eaa95a62c Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
* Harfbuzz-thai - fix buffer overflow when setting item attributesJohn Tapsell2012-04-021-2/+7
| | | | | | | Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com> Change-Id: I92de853b57e2e06211193a2b30ac7c308374c961 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Fix GPOS positioning for some fontsEskil Abrahamsen Blomfeldt2012-03-201-4/+5
| | | | | | | | | | | | We need to do ACCESS_Frame for each 2 byte frame, otherwise the position of the cursor in the input stream will not be updated by enough, and we will read twice as many pairsets. Depending on the value read for the SecondGlyph in the broken pairsets, we might get strange kerning results. Change-Id: I7fb5a850afe0364b3dd50869d5f36fd14d2f4eaf Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com> Reviewed-by: Adrian Yanes <ext-adrian.yanes@nokia.com>
* Harfbuzz-shaper - fix incorrect logClusters being set in HB_OpenTypePositionJohn Tapsell2012-03-201-13/+35
| | | | | | | | | | | | | | After shaping in HB_OpenTypePosition, when we come to calculate the new logClusters array we have to take into account that the glyphs passed in are not a 1 to 1 correspondance with the original string, because some shaping might have already been done. So we must use the old logClusters values (stored in tmpLogClusters) to map from the glyphs passed in back to the original string. This fixes visual word wrapping problems in thai Change-Id: I384dfa98f0946e9e074728f89542acb2b6b6bc27 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Optimize HB memory consumption of PairPos1 in GPOS tablesEskil Abrahamsen Blomfeldt2012-03-132-28/+101
| | | | | | | | | | | | | This is pretty much the same fix as in be0dfa34737a014e7ad060a90c4c24be9998fe13 but for PairPos format 1 instead of 2. With very simple GPOS tables we would waste a lot of memory on caching an uncompressed table, so we now compress it in memory as well. Change-Id: I601331b4b83f636dab9e1ac403b343558c15b0de Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Harfbuzz GPOS hinting- do not consider a subtable to be invalid if it is ↵John Tapsell2012-03-121-0/+3
| | | | | | | | | | | | just empty Considering a subtable to be invalid when it was empty meant that it returned an error causing all further hinting to be aborted. This means that we get no hinting in certain cases with certain fonts. Change-Id: I840c016dc85935b4f2c4373c66a79b4bd8b3a30d Reviewed-by: Adrian Yanes <ext-adrian.yanes@nokia.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Make cache of opentype tables in Harfbuzz face lazyEskil Abrahamsen Blomfeldt2012-03-062-2/+32
| | | | | | | | | | | | | | | | | | | | The mechanism in fontconfig which determines if a certain character is available (FcCharSetHasChar()) may give false positives, in which case we would load and unload those fonts per every char for which FC gave us a false positive. This was a major performance regression. Specifically the false positives happened when looking at e.g. italic variants of certain multilingual fonts, since we only check the charset of the font family as a whole and not of the specific variant, which may only support a subset of the chars. To optimize this, we remove the deletion of the font engines after loading them, but also wait with loading the opentype tables until they are actually needed. This means that for the false positives, we will load the font, but the cached data for each unused font will be much smaller. Change-Id: Idfc794401a2080da5946bf65204eb947aeb635ed Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Harfbuzz-thai: Hide ZWJ and ZWNJ characters and show Inherited charactersJohn Tapsell2012-02-231-3/+8
| | | | | | | | | | | | | | | | | | | | | | | Thai is not supposed to have ZWJ and ZWNJ characters or any other of the Inherited Unicode Scripts (http://www.verisigninc.com/assets/idn-inherited-unicode-script.pdf) - they don't have a mapping to the thai encoding tis620 which libthai requires. However it is an unfortunate fact that there are many websites etc that liberally place these ZWJ and ZWNJ characters throughout thai text to force word boundaries, so we must also deal with them. We deal with all Inherited characters by mapping them to the invalid code ~0 in tis620 encoding, following what libthai does internally in its own tis620 encoding functions, and then replacing this character with the original unicode and setting dontPrint to true to hide the ZWJ and ZWNJ characters. Includes a unit test to check the behaviour. Change-Id: I1ee8388b650cb5fc61bcb265efb9843c73f327ac Reviewed-by: Adrian Yanes <ext-adrian.yanes@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Harfbuzz-thai - When calling HB_OpenTypePosition we must set doLogClusters ↵John Tapsell2012-02-231-1/+1
| | | | | | | | | | | | | to true for thai This bug resulted in word wrapping not working correctly for thai. Reviewed-by: Adrian Yanes <ext-adrian.yanes@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com> (cherry picked from commit 7495f2c7c55917a98c903547858be923028b7827) Change-Id: Iedb26a10078c6cc4e90d090176ab63499293d69d Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Harfbuzz-thai - fix to_tis620 function for latin charactersJohn Tapsell2012-02-231-1/+1
| | | | | | | | | | | | This was an obvious typo - a missing "else" in a group of if statements. Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com> Reviewed-by: Adrian Yanes <ext-adrian.yanes@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com> (cherry picked from commit a784bdcabe895ab927cbc28118d427c6e932b9fc) Change-Id: Icbd458034e42cf7f2af33c1ecc9b0e4f1aa8724a Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Fix height of some Thai charactersMarko Kenttala2012-02-231-0/+28
| | | | | | | | | | | | | | | | | Some Thai characters with two above glyphs were higher than fonts ascent. This caused them to be clipped in for example qtcomponents buttons. Added checking for this and calculation of new lower offset between glyphs if needed. Task-Number: ou1cimx1#898104 Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Sami Merilä <sami.merila@nokia.com> Reviewed-by: Pasi Pentikäinen <ext-pasi.a.pentikainen@nokia.com> (cherry picked from commit d7c7bf721c93fe7629f725c181b52ad9ca645a7a) Change-Id: Ie4ac69de75f50b68b2ba87353d83098846f319f4 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
* Optimize memory consumption for simple GPOS tablesEskil Abrahamsen Blomfeldt2012-02-152-57/+170
| | | | | | | | | | | | | | | Sometimes GPOS tables are used for kerning and can grow quite large if the font is unoptimized. In that case, allocating the maximum size for each ValueRecord will have a great impact on memory consumption. For GPOS tables which do not contain device tables, we only allocate the memory actually need to store the data instead. While it would be possible to optimize memory for GPOS tables that contain device tables as well, this is not a part of this patch. Change-Id: Id665b2821675ef955c497c782f09f99af765b8a3 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Fix isolated Thai SARA AM handlingJiang Jiang2012-01-171-7/+26
| | | | | | | | | | | | | | Since 5e07a3ac58f93bd5e09715d43b58c20950c2befa Thai text layout is handled by libthai to special case of the SARA AM. It didn't handle isolated SARA AM. This patch fixed it and added detailed explaination on the special case. The dotted circle should be shown rather than hidden. Add an test case to verify that with Waree. Change-Id: I4967715627cbe15f5a3e9ab3e3844420ab541aed Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Update copyright year in license headers.Jason McDonald2012-01-051-1/+1
| | | | | Change-Id: I02f2c620296fcd91d4967d58767ea33fc4e1e7dc Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Remove TESTED_CLASS/TESTED_FILES comments from tests.Jason McDonald2011-12-061-3/+0
| | | | | | | | | These comments were mostly empty or inaccurate. Appropriate naming of tests and appropriate placement of tests within the directory tree provide more reliable indicators of what is being tested. Change-Id: Ib6bf373d9e79917e4ab1417ee5c1264a2c2d7027 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
* Fix HarfBuzz Thai character SARA AM handlingJiang Jiang2011-11-243-40/+352
| | | | | | | | | | | | | | This patch is contributed by Thanomsub Noppaburana from libthai. It added a special thai shaping function to handle SARA AM character for fonts without OpenType rules to support it, like Nokia Pure Text AS. With modification to logClusters assignment to make sure that QTextLine::glyphRuns(int from, int length) returns correct glyphs. Task-number: QTBUG-21206 Change-Id: I5a78ee1ab2b4c874c7d0df17d4ee6d264ed5a790 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Harfbuzz shaper: kerning adjustment does not need to be modified by RTLJohn Tapsell2011-11-181-1/+1
| | | | | | | Merge-request: 1435 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> (cherry picked from commit 1b928f5e41888150c4d85ff4df8a9fcab9b06d90) Change-Id: I1b928f5e41888150c4d85ff4df8a9fcab9b06d90