| 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 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 94 return m_name == a; | 94 return m_name == a; |
| 95 } | 95 } |
| 96 | 96 |
| 97 bool TextEncoding::isNonByteBasedEncoding() const { | 97 bool TextEncoding::isNonByteBasedEncoding() const { |
| 98 if (noExtendedTextEncodingNameUsed()) { | 98 if (noExtendedTextEncodingNameUsed()) { |
| 99 return *this == UTF16LittleEndianEncoding() || | 99 return *this == UTF16LittleEndianEncoding() || |
| 100 *this == UTF16BigEndianEncoding(); | 100 *this == UTF16BigEndianEncoding(); |
| 101 } | 101 } |
| 102 | 102 |
| 103 return *this == UTF16LittleEndianEncoding() || | 103 return *this == UTF16LittleEndianEncoding() || |
| 104 *this == UTF16BigEndianEncoding() || | 104 *this == UTF16BigEndianEncoding() || *this == UTF32Encoding() || |
| 105 *this == UTF32BigEndianEncoding() || | 105 *this == UTF32BigEndianEncoding() || |
| 106 *this == UTF32LittleEndianEncoding(); | 106 *this == UTF32LittleEndianEncoding(); |
| 107 } | 107 } |
| 108 | 108 |
| 109 bool TextEncoding::isUTF7Encoding() const { | 109 bool TextEncoding::isUTF7Encoding() const { |
| 110 if (noExtendedTextEncodingNameUsed()) | 110 if (noExtendedTextEncodingNameUsed()) |
| 111 return false; | 111 return false; |
| 112 | 112 |
| 113 return *this == UTF7Encoding(); | 113 return *this == UTF7Encoding(); |
| 114 } | 114 } |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 149 return globalUTF16BigEndianEncoding; | 149 return globalUTF16BigEndianEncoding; |
| 150 } | 150 } |
| 151 | 151 |
| 152 const TextEncoding& UTF16LittleEndianEncoding() { | 152 const TextEncoding& UTF16LittleEndianEncoding() { |
| 153 DEFINE_THREAD_SAFE_STATIC_LOCAL(const TextEncoding, | 153 DEFINE_THREAD_SAFE_STATIC_LOCAL(const TextEncoding, |
| 154 globalUTF16LittleEndianEncoding, | 154 globalUTF16LittleEndianEncoding, |
| 155 new TextEncoding("UTF-16LE")); | 155 new TextEncoding("UTF-16LE")); |
| 156 return globalUTF16LittleEndianEncoding; | 156 return globalUTF16LittleEndianEncoding; |
| 157 } | 157 } |
| 158 | 158 |
| 159 // UTF-32 is UTF-32LE with an implicit BOM. |
| 160 const TextEncoding& UTF32Encoding() { |
| 161 DEFINE_THREAD_SAFE_STATIC_LOCAL(const TextEncoding, globalUTF32Encoding, |
| 162 new TextEncoding("UTF-32")); |
| 163 return globalUTF32Encoding; |
| 164 } |
| 165 |
| 159 const TextEncoding& UTF32BigEndianEncoding() { | 166 const TextEncoding& UTF32BigEndianEncoding() { |
| 160 DEFINE_THREAD_SAFE_STATIC_LOCAL(const TextEncoding, | 167 DEFINE_THREAD_SAFE_STATIC_LOCAL(const TextEncoding, |
| 161 globalUTF32BigEndianEncoding, | 168 globalUTF32BigEndianEncoding, |
| 162 new TextEncoding("UTF-32BE")); | 169 new TextEncoding("UTF-32BE")); |
| 163 return globalUTF32BigEndianEncoding; | 170 return globalUTF32BigEndianEncoding; |
| 164 } | 171 } |
| 165 | 172 |
| 166 const TextEncoding& UTF32LittleEndianEncoding() { | 173 const TextEncoding& UTF32LittleEndianEncoding() { |
| 167 DEFINE_THREAD_SAFE_STATIC_LOCAL(const TextEncoding, | 174 DEFINE_THREAD_SAFE_STATIC_LOCAL(const TextEncoding, |
| 168 globalUTF32LittleEndianEncoding, | 175 globalUTF32LittleEndianEncoding, |
| 169 new TextEncoding("UTF-32LE")); | 176 new TextEncoding("UTF-32LE")); |
| 170 return globalUTF32LittleEndianEncoding; | 177 return globalUTF32LittleEndianEncoding; |
| 171 } | 178 } |
| 172 | 179 |
| 173 const TextEncoding& UTF8Encoding() { | 180 const TextEncoding& UTF8Encoding() { |
| 174 DEFINE_THREAD_SAFE_STATIC_LOCAL(const TextEncoding, globalUTF8Encoding, | 181 DEFINE_THREAD_SAFE_STATIC_LOCAL(const TextEncoding, globalUTF8Encoding, |
| 175 new TextEncoding("UTF-8")); | 182 new TextEncoding("UTF-8")); |
| 176 ASSERT(globalUTF8Encoding.isValid()); | 183 ASSERT(globalUTF8Encoding.isValid()); |
| 177 return globalUTF8Encoding; | 184 return globalUTF8Encoding; |
| 178 } | 185 } |
| 179 | 186 |
| 180 const TextEncoding& WindowsLatin1Encoding() { | 187 const TextEncoding& WindowsLatin1Encoding() { |
| 181 DEFINE_THREAD_SAFE_STATIC_LOCAL(const TextEncoding, | 188 DEFINE_THREAD_SAFE_STATIC_LOCAL(const TextEncoding, |
| 182 globalWindowsLatin1Encoding, | 189 globalWindowsLatin1Encoding, |
| 183 new TextEncoding("WinLatin1")); | 190 new TextEncoding("WinLatin1")); |
| 184 return globalWindowsLatin1Encoding; | 191 return globalWindowsLatin1Encoding; |
| 185 } | 192 } |
| 186 | 193 |
| 187 } // namespace WTF | 194 } // namespace WTF |
| OLD | NEW |