| OLD | NEW |
| 1 /* | 1 /* |
| 2 * (C) 1999 Lars Knoll (knoll@kde.org) | 2 * (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2010, 2012 Apple Inc. All rights
reserved. | 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2010, 2012 Apple Inc. All rights
reserved. |
| 4 * Copyright (C) 2007-2009 Torch Mobile, Inc. | 4 * Copyright (C) 2007-2009 Torch Mobile, Inc. |
| 5 * | 5 * |
| 6 * This library is free software; you can redistribute it and/or | 6 * This library is free software; you can redistribute it and/or |
| 7 * modify it under the terms of the GNU Library General Public | 7 * modify it under the terms of the GNU Library General Public |
| 8 * License as published by the Free Software Foundation; either | 8 * License as published by the Free Software Foundation; either |
| 9 * version 2 of the License, or (at your option) any later version. | 9 * version 2 of the License, or (at your option) any later version. |
| 10 * | 10 * |
| (...skipping 782 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 793 while (characters < charactersEnd) { | 793 while (characters < charactersEnd) { |
| 794 // Use strict conversion to detect unpaired surrogates. | 794 // Use strict conversion to detect unpaired surrogates. |
| 795 ConversionResult result = convertUTF16ToUTF8(&characters, charac
tersEnd, &buffer, bufferEnd, true); | 795 ConversionResult result = convertUTF16ToUTF8(&characters, charac
tersEnd, &buffer, bufferEnd, true); |
| 796 ASSERT(result != targetExhausted); | 796 ASSERT(result != targetExhausted); |
| 797 // Conversion fails when there is an unpaired surrogate. | 797 // Conversion fails when there is an unpaired surrogate. |
| 798 // Put replacement character (U+FFFD) instead of the unpaired su
rrogate. | 798 // Put replacement character (U+FFFD) instead of the unpaired su
rrogate. |
| 799 if (result != conversionOK) { | 799 if (result != conversionOK) { |
| 800 ASSERT((0xD800 <= *characters && *characters <= 0xDFFF)); | 800 ASSERT((0xD800 <= *characters && *characters <= 0xDFFF)); |
| 801 // There should be room left, since one UChar hasn't been co
nverted. | 801 // There should be room left, since one UChar hasn't been co
nverted. |
| 802 ASSERT((buffer + 3) <= bufferEnd); | 802 ASSERT((buffer + 3) <= bufferEnd); |
| 803 putUTF8Triple(buffer, replacementCharacter); | 803 putUTF8Triple(buffer, characterReplacement); |
| 804 ++characters; | 804 ++characters; |
| 805 } | 805 } |
| 806 } | 806 } |
| 807 } else { | 807 } else { |
| 808 bool strict = mode == StrictUTF8Conversion; | 808 bool strict = mode == StrictUTF8Conversion; |
| 809 ConversionResult result = convertUTF16ToUTF8(&characters, characters
+ length, &buffer, buffer + bufferVector.size(), strict); | 809 ConversionResult result = convertUTF16ToUTF8(&characters, characters
+ length, &buffer, buffer + bufferVector.size(), strict); |
| 810 ASSERT(result != targetExhausted); // (length * 3) should be suffici
ent for any conversion | 810 ASSERT(result != targetExhausted); // (length * 3) should be suffici
ent for any conversion |
| 811 | 811 |
| 812 // Only produced from strict conversion. | 812 // Only produced from strict conversion. |
| 813 if (result == sourceIllegal) { | 813 if (result == sourceIllegal) { |
| (...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1216 buffer.append('\0'); | 1216 buffer.append('\0'); |
| 1217 return buffer; | 1217 return buffer; |
| 1218 } | 1218 } |
| 1219 | 1219 |
| 1220 Vector<char> asciiDebug(String& string) | 1220 Vector<char> asciiDebug(String& string) |
| 1221 { | 1221 { |
| 1222 return asciiDebug(string.impl()); | 1222 return asciiDebug(string.impl()); |
| 1223 } | 1223 } |
| 1224 | 1224 |
| 1225 #endif | 1225 #endif |
| OLD | NEW |