History log of /frameworks/minikin/libs/minikin/WordBreaker.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
74b56175e5d41c1c1dc992208842b5576973d452 26-May-2016 Roozbeh Pournader <roozbeh@google.com> Do not break after Myanmar viramas

This is to work around a bug in ICU's line breaker, which thinks
there is a valid line break between a Myanmar kinzi and a consonant.
See http://bugs.icu-project.org/trac/ticket/12561 for the ICU bug.

Bug: 28964845
Change-Id: I076ac15077e5627cbccf6732900bcc60d8596dda
/frameworks/minikin/libs/minikin/WordBreaker.cpp
77f488345316fba46c271fc04bea470819ae1712 19-Apr-2016 Seigo Nonaka <nona@google.com> Do not break before and after ZWJ.

The emoji list is generated from external/unicode/emoji-data.txt

Bug: 28248662
Change-Id: Ie49b3782505665d62c24371ca23d317ae5e9c5f7
/frameworks/minikin/libs/minikin/WordBreaker.cpp
d8917c69a9f7b7ca52f7ac850922dab4322113f5 16-Mar-2016 Roozbeh Pournader <roozbeh@google.com> Do not allow line breaks before currency symbols

Implement the change proposed in UTC document L2/16-043R
(http://www.unicode.org/L2/L2016/16043r-line-break-pr-po.txt) to make
sure we do not break between letters and currency symbols.

Bug: 24959657
Change-Id: Ia29d0e5625f84870bd910d0c6e19036d17206704
/frameworks/minikin/libs/minikin/WordBreaker.cpp
56840e8006ca2b822adb401fc8a65f3c075cde10 25-Feb-2016 Raph Levien <raph@google.com> Suppress line breaks in emoji + modifier

An emoji base with an emoji modifier renders as a single glyph and
thus should not be a line break. Current (Unicode 8) logic does
indicate a line break, so we override the results of the ICU line
break iterator. The code references a proposal to improve Unicode
behavior; when that is adopted and we upgrade ICU accordingly, the
special-case code should be deleted, but the tests can remain.

Bug: 27343378
Change-Id: I5de9c53e9a34c503816f9131e3d894e6f7a57d13
/frameworks/minikin/libs/minikin/WordBreaker.cpp
d3f45892c721fb1738bf02fe19a5143a320ca4bf 19-Feb-2016 Raph Levien <raph@google.com> Suppress linebreaks in emoji ZWJ sequences

Due to the way emoji ZWJ sequences are defined, the ICU line breaking
algorithm determines that there are valid line breaks inside the
sequence. This patch suppresses these line breaks.

This is an adaptation of I225ebebc0f4186e4b8f48fee399c4a62b3f0218a
into the nyc-dev branch.

Bug: 25433289
Change-Id: I84b50b1e6ef13d436965eab389659d02a30d100f
/frameworks/minikin/libs/minikin/WordBreaker.cpp
c88ef135fcc2661ec7addc171ebc60787df38aff 09-Sep-2015 Raph Levien <raph@google.com> Add penalty for breaks in URLs and email addresses

Recent changes have added special cases for line breaks within URLs
and email addresses. Such breaks are undesirable when they can be
avoided, but at other times are needed to avoid huge gaps, or indeed
to make the line fit at all.

This patch assigns a penalty for such breaks, equal to the hyphenation
penalty. The mechanism is currently very simple, but would be easy to
fine-tune based on more detailed information about break quality.

Bug: 20126487
Bug: 20566159
Change-Id: I0d3323897737a2850f1e734fa17b96b065eabd9c
/frameworks/minikin/libs/minikin/WordBreaker.cpp
6d15657e4a3826d4d47d5358f1dde211484527e9 09-Sep-2015 Raph Levien <raph@google.com> Add line breaks to email addresses and URLs

This change adds accceptable line breaks according to sections 7.42
(Dividing URLs and e-mail addresses) and 14.12 (URLs or DOIs and line
breaks) of the Chicago Manual of Style (16th ed.). In general, these
place breaks before punctuation symbols, and suppresses them after
hyphens.

Bug: 20126487
Bug: 20566159
Change-Id: I2d07d516b920a506a2f718c38fb435c5eb1ee1f8
/frameworks/minikin/libs/minikin/WordBreaker.cpp
9c4cc648abcae144f3b99d612e58ef01d5e52cce 09-Sep-2015 Raph Levien <raph@google.com> Special-case URLs and email addresses for line breaking

Detect URLs and email addresses, and suppress both line breaking and
hyphenation within them.

Bug: 20126487
Bug: 20566159

Change-Id: I43629347a063dcf579e355e5b678d7195f453ad9
/frameworks/minikin/libs/minikin/WordBreaker.cpp
57b6dae9894b9362ef04517ff477fd491f9d433b 05-Sep-2015 Raph Levien <raph@google.com> Refine hyphenation around punctuation

Implement a WordBreaker that defines our concept of valid word
boundaries, customizing the ICU behavior. Currently, we suppress line
breaks at soft hyphens (these are handled specially). Also, the
new WordBreaker class has methods that determine the start and end
of the word (punctuation stripped) for the purpose of hyphenation.

This patch, in its current form, doesn't handle email addresses and
URLs specially, but the WordBreaker class is the correct place to do
so. Also, special case handling of hyphens and dashes is still done
in LineBreaker, but all of that should be moved to WordBreaker.

Bug: 20126487
Bug: 20566159
Change-Id: I492cbad963f9b74a2915f010dad46bb91f97b2fe
/frameworks/minikin/libs/minikin/WordBreaker.cpp