Update the Unicode Text Breaking Algorithm implementation
authorKonstantin Ritt <ritt.ks@gmail.com>
Thu, 7 Jun 2012 22:30:04 +0000 (01:30 +0300)
committerQt by Nokia <qt-info@nokia.com>
Sun, 10 Jun 2012 13:58:02 +0000 (15:58 +0200)
commitd64cb5f7073f8a219c12fce605eae35e3887f65b
tree5231bfb35bb19178ea0583028798d18fdc0254d6
parentf32a7f1e21570b44e9602058454359cd196676e4
Update the Unicode Text Breaking Algorithm implementation

to make it conformant to the Unicode 6.1 specifications #14 and #29.

The most important changes are:
* The implementation has been reworked from scratch to fix all known bugs;
* Separate-out the grapheme and the line breaking implementation to eliminate
  an overhead due to calculating unnecessary breaks;
* Stop using deprecated SG class in favor of resolving pairs of surrogates;
* A proper support for SMP code points;
* Support for extended grapheme clusters (a drop-in replacement for the legacy
  grapheme clusters as of Unicode 5.1);
* The hardcoded tailoring of UBA has been eliminated which breaks the 7 years-old
  lineBreaking test. Some later, we'll investigate if such a tailoring is still needed.

Change-Id: I9f5867b3cec753b4fc120bc5a7e20f9a73d89370
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
src/corelib/tools/qtextboundaryfinder.cpp
src/corelib/tools/qunicodetools.cpp
tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp