Changeset 92005 in webkit


Ignore:
Timestamp:
Jul 29, 2011 1:20:52 PM (13 years ago)
Author:
mitz@apple.com
Message:

Source/WebCore: Added the regional indicator symbols to the set of codepoints that force use of the complex text code path.

Fixes <rdar://problem/9864578> Regional indicator symbols do not combine into national flags
https://bugs.webkit.org/show_bug.cgi?id=65380

Reviewed by Anders Carlsson.

Test: fast/text/regional-indicator-symobls.html

  • platform/graphics/Font.cpp:

(WebCore::Font::codePath): Added handling of surrogate pairs, which returns Complex for characters in
the range U+1F1E6..U+1F1FF.

LayoutTests: Test for <rdar://problem/9864578> Regional indicator symbols do not combine into national flags
https://bugs.webkit.org/show_bug.cgi?id=65380

Reviewed by Anders Carlsson.

  • fast/text/regional-indicator-symobls-expected.txt: Added.
  • fast/text/regional-indicator-symobls.html: Added.
Location:
trunk
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r92003 r92005  
     12011-07-29  Dan Bernstein  <mitz@apple.com>
     2
     3        Test for <rdar://problem/9864578> Regional indicator symbols do not combine into national flags
     4        https://bugs.webkit.org/show_bug.cgi?id=65380
     5
     6        Reviewed by Anders Carlsson.
     7
     8        * fast/text/regional-indicator-symobls-expected.txt: Added.
     9        * fast/text/regional-indicator-symobls.html: Added.
     10
    1112011-07-29  Anna Cavender  <annacc@chromium.org>
    212
  • trunk/Source/WebCore/ChangeLog

    r92004 r92005  
     12011-07-29  Dan Bernstein  <mitz@apple.com>
     2
     3        Added the regional indicator symbols to the set of codepoints that force use of the complex text code path.
     4
     5        Fixes <rdar://problem/9864578> Regional indicator symbols do not combine into national flags
     6        https://bugs.webkit.org/show_bug.cgi?id=65380
     7
     8        Reviewed by Anders Carlsson.
     9
     10        Test: fast/text/regional-indicator-symobls.html
     11
     12        * platform/graphics/Font.cpp:
     13        (WebCore::Font::codePath): Added handling of surrogate pairs, which returns Complex for characters in
     14        the range U+1F1E6..U+1F1FF.
     15
    1162011-07-28  David Hyatt  <hyatt@apple.com>
    217
  • trunk/Source/WebCore/platform/graphics/Font.cpp

    r89733 r92005  
    383383            return Complex;
    384384
     385        if (c <= 0xDBFF) {
     386            // High surrogate
     387
     388            if (i == run.length() - 1)
     389                continue;
     390
     391            UChar next = run[++i];
     392            if (!U16_IS_TRAIL(next))
     393                continue;
     394
     395            UChar32 supplementaryCharacter = U16_GET_SUPPLEMENTARY(c, next);
     396
     397            if (supplementaryCharacter < 0x1F1E6) // U+1F1E6 through U+1F1FF Regional Indicator Symbols
     398                continue;
     399            if (supplementaryCharacter <= 0x1F1FF)
     400                return Complex;
     401
     402            // FIXME: Check for Brahmi (U+11000 block), Kaithi (U+11080 block) and other complex scripts
     403            // in plane 1 or higher.
     404
     405            continue;
     406        }
     407
    385408        if (c < 0xFE20) // U+FE20 through U+FE2F Combining half marks
    386409            continue;
    387410        if (c <= 0xFE2F)
    388411            return Complex;
    389 
    390         // FIXME: Make this loop UTF-16-aware and check for Brahmi (U+11000 block)
    391         // Kaithi (U+11080 block) and other complex scripts in plane 1 or higher.
    392412    }
    393413
Note: See TracChangeset for help on using the changeset viewer.