diff options
Diffstat (limited to 'WebCore/platform/text/TextEncoding.cpp')
-rw-r--r-- | WebCore/platform/text/TextEncoding.cpp | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/WebCore/platform/text/TextEncoding.cpp b/WebCore/platform/text/TextEncoding.cpp index ed58412..5fa927b 100644 --- a/WebCore/platform/text/TextEncoding.cpp +++ b/WebCore/platform/text/TextEncoding.cpp @@ -31,7 +31,7 @@ #include "PlatformString.h" #include "TextCodec.h" #include "TextEncodingRegistry.h" -#if USE(ICU_UNICODE) +#if USE(ICU_UNICODE) || USE(GLIB_ICU_UNICODE_HYBRID) #include <unicode/unorm.h> #elif USE(QT4_UNICODE) #include <QString> @@ -83,7 +83,7 @@ CString TextEncoding::encode(const UChar* characters, size_t length, Unencodable if (!length) return ""; -#if USE(ICU_UNICODE) +#if USE(ICU_UNICODE) || USE(GLIB_ICU_UNICODE_HYBRID) // FIXME: What's the right place to do normalization? // It's a little strange to do it inside the encode function. // Perhaps normalization should be an explicit step done before calling encode. @@ -116,6 +116,24 @@ CString TextEncoding::encode(const UChar* characters, size_t length, Unencodable #endif } +const char* TextEncoding::domName() const +{ + if (noExtendedTextEncodingNameUsed()) + return m_name; + + // We treat EUC-KR as windows-949 (its superset), but need to expose + // the name 'EUC-KR' because the name 'windows-949' is not recognized by + // most Korean web servers even though they do use the encoding + // 'windows-949' with the name 'EUC-KR'. + // FIXME: This is not thread-safe. At the moment, this function is + // only accessed in a single thread, but eventually has to be made + // thread-safe along with usesVisualOrdering(). + static const char* const a = atomicCanonicalTextEncodingName("windows-949"); + if (m_name == a) + return "EUC-KR"; + return m_name; +} + bool TextEncoding::usesVisualOrdering() const { if (noExtendedTextEncodingNameUsed()) |