OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2004, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. | 2 * Copyright (C) 2004, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved. |
3 * Copyright (C) 2006 Alexey Proskuryakov <ap@nypop.com> | 3 * Copyright (C) 2006 Alexey Proskuryakov <ap@nypop.com> |
4 * Copyright (C) 2007-2009 Torch Mobile, Inc. | 4 * Copyright (C) 2007-2009 Torch Mobile, Inc. |
5 * | 5 * |
6 * Redistribution and use in source and binary forms, with or without | 6 * Redistribution and use in source and binary forms, with or without |
7 * modification, are permitted provided that the following conditions | 7 * modification, are permitted provided that the following conditions |
8 * are met: | 8 * are met: |
9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
(...skipping 27 matching lines...) Expand all Loading... |
38 namespace WTF { | 38 namespace WTF { |
39 | 39 |
40 static const TextEncoding& UTF7Encoding() | 40 static const TextEncoding& UTF7Encoding() |
41 { | 41 { |
42 static TextEncoding globalUTF7Encoding("UTF-7"); | 42 static TextEncoding globalUTF7Encoding("UTF-7"); |
43 return globalUTF7Encoding; | 43 return globalUTF7Encoding; |
44 } | 44 } |
45 | 45 |
46 TextEncoding::TextEncoding(const char* name) | 46 TextEncoding::TextEncoding(const char* name) |
47 : m_name(atomicCanonicalTextEncodingName(name)) | 47 : m_name(atomicCanonicalTextEncodingName(name)) |
48 , m_backslashAsCurrencySymbol(backslashAsCurrencySymbol()) | |
49 { | 48 { |
50 // Aliases are valid, but not "replacement" itself. | 49 // Aliases are valid, but not "replacement" itself. |
51 if (m_name && isReplacementEncoding(name)) | 50 if (m_name && isReplacementEncoding(name)) |
52 m_name = 0; | 51 m_name = 0; |
53 } | 52 } |
54 | 53 |
55 TextEncoding::TextEncoding(const String& name) | 54 TextEncoding::TextEncoding(const String& name) |
56 : m_name(atomicCanonicalTextEncodingName(name)) | 55 : m_name(atomicCanonicalTextEncodingName(name)) |
57 , m_backslashAsCurrencySymbol(backslashAsCurrencySymbol()) | |
58 { | 56 { |
59 // Aliases are valid, but not "replacement" itself. | 57 // Aliases are valid, but not "replacement" itself. |
60 if (m_name && isReplacementEncoding(name)) | 58 if (m_name && isReplacementEncoding(name)) |
61 m_name = 0; | 59 m_name = 0; |
62 } | 60 } |
63 | 61 |
64 String TextEncoding::decode(const char* data, size_t length, bool stopOnError, b
ool& sawError) const | 62 String TextEncoding::decode(const char* data, size_t length, bool stopOnError, b
ool& sawError) const |
65 { | 63 { |
66 if (!m_name) | 64 if (!m_name) |
67 return String(); | 65 return String(); |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
127 | 125 |
128 bool TextEncoding::usesVisualOrdering() const | 126 bool TextEncoding::usesVisualOrdering() const |
129 { | 127 { |
130 if (noExtendedTextEncodingNameUsed()) | 128 if (noExtendedTextEncodingNameUsed()) |
131 return false; | 129 return false; |
132 | 130 |
133 static const char* const a = atomicCanonicalTextEncodingName("ISO-8859-8"); | 131 static const char* const a = atomicCanonicalTextEncodingName("ISO-8859-8"); |
134 return m_name == a; | 132 return m_name == a; |
135 } | 133 } |
136 | 134 |
137 UChar TextEncoding::backslashAsCurrencySymbol() const | |
138 { | |
139 return shouldShowBackslashAsCurrencySymbolIn(m_name) ? 0x00A5 : '\\'; | |
140 } | |
141 | |
142 bool TextEncoding::isNonByteBasedEncoding() const | 135 bool TextEncoding::isNonByteBasedEncoding() const |
143 { | 136 { |
144 if (noExtendedTextEncodingNameUsed()) { | 137 if (noExtendedTextEncodingNameUsed()) { |
145 return *this == UTF16LittleEndianEncoding() | 138 return *this == UTF16LittleEndianEncoding() |
146 || *this == UTF16BigEndianEncoding(); | 139 || *this == UTF16BigEndianEncoding(); |
147 } | 140 } |
148 | 141 |
149 return *this == UTF16LittleEndianEncoding() | 142 return *this == UTF16LittleEndianEncoding() |
150 || *this == UTF16BigEndianEncoding() | 143 || *this == UTF16BigEndianEncoding() |
151 || *this == UTF32BigEndianEncoding() | 144 || *this == UTF32BigEndianEncoding() |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
222 return globalUTF8Encoding; | 215 return globalUTF8Encoding; |
223 } | 216 } |
224 | 217 |
225 const TextEncoding& WindowsLatin1Encoding() | 218 const TextEncoding& WindowsLatin1Encoding() |
226 { | 219 { |
227 static TextEncoding globalWindowsLatin1Encoding("WinLatin1"); | 220 static TextEncoding globalWindowsLatin1Encoding("WinLatin1"); |
228 return globalWindowsLatin1Encoding; | 221 return globalWindowsLatin1Encoding; |
229 } | 222 } |
230 | 223 |
231 } // namespace WTF | 224 } // namespace WTF |
OLD | NEW |