diff options
author | reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2008-12-17 16:22:13 +0000 |
---|---|---|
committer | reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2008-12-17 16:22:13 +0000 |
commit | e3be725d2b67982a8751f6f7311b6bb2e50c8028 (patch) | |
tree | 1dccd2f1c5826c447b2585ad0b1d38b27174869a /src/core/SkUtils.cpp | |
parent | 8a1c16ff38322f0210116fa7293eb8817c7e477e (diff) |
merge in from android: fix unichar->utf8 conversion
git-svn-id: http://skia.googlecode.com/svn/trunk@28 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/core/SkUtils.cpp')
-rw-r--r-- | src/core/SkUtils.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/core/SkUtils.cpp b/src/core/SkUtils.cpp index 4f5ba6eaf8..20f7ddc759 100644 --- a/src/core/SkUtils.cpp +++ b/src/core/SkUtils.cpp @@ -268,7 +268,7 @@ size_t SkUTF8_FromUnichar(SkUnichar uni, char utf8[]) SkDEBUGCODE(SkUnichar orig = uni;) - while (uni > 0x3F) + while (uni > 0x7F >> count) { *p++ = (char)(0x80 | (uni & 0x3F)); uni >>= 6; @@ -545,8 +545,15 @@ void SkUtils::UnitTest() SkUnichar fUni; } gTest[] = { { "a", 'a' }, + { "\x7f", 0x7f }, + { "\xC2\x80", 0x80 }, { "\xC3\x83", (3 << 6) | 3 }, + { "\xDF\xBF", 0x7ff }, + { "\xE0\xA0\x80", 0x800 }, + { "\xE0\xB0\xB8", 0xC38 }, { "\xE3\x83\x83", (3 << 12) | (3 << 6) | 3 }, + { "\xEF\xBF\xBF", 0xFFFF }, + { "\xF0\x90\x80\x80", 0x10000 }, { "\xF3\x83\x83\x83", (3 << 18) | (3 << 12) | (3 << 6) | 3 } }; |