Changeset 20667 in webkit


Ignore:
Timestamp:
Apr 2, 2007 1:38:53 PM (17 years ago)
Author:
zbujtas
Message:

2007-03-30 jadhan <jade.han@nokia.com>

Reviewed by Zalan <zbujtas@gmail.com>
DESC: special handling for utf8 encoding of danish character. Merged fix from 3.2 to 3.1
http://bugs.webkit.org/show_bug.cgi?id=13231

WARNING: NO TEST CASES ADDED OR CHANGED

  • ChangeLog:
  • kwq/KWQTextCodec.cpp: (validateUtf8):
Location:
S60/branches/3.1m/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • S60/branches/3.1m/WebCore/ChangeLog

    r20655 r20667  
     12007-03-30  jadhan  <jade.han@nokia.com>
     2
     3        Reviewed by Zalan <zbujtas@gmail.com>
     4        DESC: special handling for utf8 encoding of danish character.  Merged fix from 3.2 to 3.1
     5        http://bugs.webkit.org/show_bug.cgi?id=13231
     6
     7        WARNING: NO TEST CASES ADDED OR CHANGED
     8
     9        * ChangeLog:
     10        * kwq/KWQTextCodec.cpp:
     11        (validateUtf8):
     12
    1132007-04-02  yongjzha  <yonjun.zhang@nokia.com>
    214
  • S60/branches/3.1m/WebCore/kwq/KWQTextCodec.cpp

    r18937 r20667  
    106106    int seqRem=0;
    107107    bool isUtf8 = true;
     108    bool wrongUtf8 = false;
    108109    validMultiByteChars = 0;
    109110    while (c<e)
    110111        {
     112        if( seqRem == 0 )
     113            b = c;
    111114        // test validity of a multibyte sequence
    112115        if (seqRem>0) {
     
    115118                seqRem--;
    116119            else {
    117                 isUtf8 = false;
    118                 break;
     120                //Some times, there is wrong UTF-8 encoding in the characters.
     121                //For example ( 0xd8 0x73). Then allow at least one byte wrong encoding.
     122                //This has been found in the real site. Also, this means here that is an
     123                //ASCII character.  ASCII can be handled in the UTF-8 also.
     124                wrongUtf8 = true;
    119125            }
    120126            if (seqRem==0)
     
    137143            break;
    138144        }
     145        if ( wrongUtf8 ){
     146             if( seqRem == 1 ){
     147                 seqRem--;
     148                 wrongUtf8 = false;
     149             }
     150             else {
     151                 isUtf8 = false;
     152                 break;
     153             }
     154         } //end if ( wrongUtf8 )
    139155        c++;
    140     }
     156    } //end while
    141157    return isUtf8;
    142158}
Note: See TracChangeset for help on using the changeset viewer.