summaryrefslogtreecommitdiffstats
path: root/intl/uconv/nsUConvModule.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'intl/uconv/nsUConvModule.cpp')
-rw-r--r--intl/uconv/nsUConvModule.cpp582
1 files changed, 582 insertions, 0 deletions
diff --git a/intl/uconv/nsUConvModule.cpp b/intl/uconv/nsUConvModule.cpp
new file mode 100644
index 000000000..98ec9772b
--- /dev/null
+++ b/intl/uconv/nsUConvModule.cpp
@@ -0,0 +1,582 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+#include "mozilla/ModuleUtils.h"
+#include "nsEncoderDecoderUtils.h"
+#include "nsIUnicodeDecoder.h"
+#include "nsIUnicodeEncoder.h"
+
+#include "nsUConvCID.h"
+#include "nsTextToSubURI.h"
+#include "nsUTF8ConverterService.h"
+#include "nsConverterInputStream.h"
+#include "nsConverterOutputStream.h"
+#include "nsScriptableUConv.h"
+#include "nsIOutputStream.h"
+#include "nsITextToSubURI.h"
+
+#include "nsISO88591ToUnicode.h"
+#include "nsCP1252ToUnicode.h"
+#include "nsMacRomanToUnicode.h"
+#include "nsReplacementToUnicode.h"
+#include "nsUTF8ToUnicode.h"
+#include "nsUnicodeToISO88591.h"
+#include "nsUnicodeToCP1252.h"
+#include "nsUnicodeToMacRoman.h"
+#include "nsUnicodeToUTF8.h"
+
+// ucvlatin
+#include "nsUCvLatinCID.h"
+#include "nsISO88592ToUnicode.h"
+#include "nsISO88593ToUnicode.h"
+#include "nsISO88594ToUnicode.h"
+#include "nsISO88595ToUnicode.h"
+#include "nsISO88596ToUnicode.h"
+#include "nsISO88597ToUnicode.h"
+#include "nsISO88598ToUnicode.h"
+#include "nsISO88598IToUnicode.h"
+#include "nsISO885910ToUnicode.h"
+#include "nsISO885913ToUnicode.h"
+#include "nsISO885914ToUnicode.h"
+#include "nsISO885915ToUnicode.h"
+#include "nsISO885916ToUnicode.h"
+#include "nsCP1250ToUnicode.h"
+#include "nsCP1251ToUnicode.h"
+#include "nsCP1253ToUnicode.h"
+#include "nsCP1254ToUnicode.h"
+#include "nsCP1255ToUnicode.h"
+#include "nsCP1256ToUnicode.h"
+#include "nsCP1257ToUnicode.h"
+#include "nsCP1258ToUnicode.h"
+#include "nsCP874ToUnicode.h"
+#include "nsCP866ToUnicode.h"
+#include "nsKOI8RToUnicode.h"
+#include "nsKOI8UToUnicode.h"
+#include "nsMacCEToUnicode.h"
+#include "nsMacGreekToUnicode.h"
+#include "nsMacTurkishToUnicode.h"
+#include "nsMacCroatianToUnicode.h"
+#include "nsMacRomanianToUnicode.h"
+#include "nsMacCyrillicToUnicode.h"
+#include "nsMacIcelandicToUnicode.h"
+#include "nsUTF16ToUnicode.h"
+#include "nsUserDefinedToUnicode.h"
+#include "nsUnicodeToISO88592.h"
+#include "nsUnicodeToISO88593.h"
+#include "nsUnicodeToISO88594.h"
+#include "nsUnicodeToISO88595.h"
+#include "nsUnicodeToISO88596.h"
+#include "nsUnicodeToISO88597.h"
+#include "nsUnicodeToISO88598.h"
+#include "nsUnicodeToISO88598I.h"
+#include "nsUnicodeToISO885910.h"
+#include "nsUnicodeToISO885913.h"
+#include "nsUnicodeToISO885914.h"
+#include "nsUnicodeToISO885915.h"
+#include "nsUnicodeToISO885916.h"
+#include "nsUnicodeToCP1250.h"
+#include "nsUnicodeToCP1251.h"
+#include "nsUnicodeToCP1253.h"
+#include "nsUnicodeToCP1254.h"
+#include "nsUnicodeToCP1255.h"
+#include "nsUnicodeToCP1256.h"
+#include "nsUnicodeToCP1257.h"
+#include "nsUnicodeToCP1258.h"
+#include "nsUnicodeToCP874.h"
+#include "nsUnicodeToCP866.h"
+#include "nsUnicodeToKOI8R.h"
+#include "nsUnicodeToKOI8U.h"
+#include "nsUnicodeToMacCyrillic.h"
+#include "nsUnicodeToUTF16.h"
+#include "nsUnicodeToUserDefined.h"
+#include "nsMacArabicToUnicode.h"
+#include "nsMacDevanagariToUnicode.h"
+#include "nsMacFarsiToUnicode.h"
+#include "nsMacGujaratiToUnicode.h"
+#include "nsMacGurmukhiToUnicode.h"
+#include "nsMacHebrewToUnicode.h"
+
+// ucvja
+#include "nsUCVJACID.h"
+#include "nsUCVJA2CID.h"
+#include "nsUCVJADll.h"
+#include "nsJapaneseToUnicode.h"
+#include "nsUnicodeToSJIS.h"
+#include "nsUnicodeToEUCJP.h"
+#include "nsUnicodeToISO2022JP.h"
+
+// ucvtw
+#include "nsBIG5ToUnicode.h"
+#include "nsUnicodeToBIG5.h"
+
+// ucvko
+#include "nsUCvKOCID.h"
+#include "nsUCvKODll.h"
+#include "nsCP949ToUnicode.h"
+#include "nsUnicodeToCP949.h"
+
+// ucvcn
+#include "nsUCvCnCID.h"
+#include "nsGBKToUnicode.h"
+#include "nsUnicodeToGBK.h"
+#include "gbku.h"
+
+NS_CONVERTER_REGISTRY_START
+NS_UCONV_REG_UNREG("ISO-8859-1", NS_ISO88591TOUNICODE_CID, NS_UNICODETOISO88591_CID)
+NS_UCONV_REG_UNREG("windows-1252", NS_CP1252TOUNICODE_CID, NS_UNICODETOCP1252_CID)
+NS_UCONV_REG_UNREG("macintosh", NS_MACROMANTOUNICODE_CID, NS_UNICODETOMACROMAN_CID)
+NS_UCONV_REG_UNREG("UTF-8", NS_UTF8TOUNICODE_CID, NS_UNICODETOUTF8_CID)
+NS_UCONV_REG_UNREG("replacement", NS_REPLACEMENTTOUNICODE_CID, NS_UNICODETOUTF8_CID)
+
+ // ucvlatin
+NS_UCONV_REG_UNREG("ISO-8859-2", NS_ISO88592TOUNICODE_CID, NS_UNICODETOISO88592_CID)
+NS_UCONV_REG_UNREG("ISO-8859-3", NS_ISO88593TOUNICODE_CID, NS_UNICODETOISO88593_CID)
+NS_UCONV_REG_UNREG("ISO-8859-4", NS_ISO88594TOUNICODE_CID, NS_UNICODETOISO88594_CID)
+NS_UCONV_REG_UNREG("ISO-8859-5", NS_ISO88595TOUNICODE_CID, NS_UNICODETOISO88595_CID)
+NS_UCONV_REG_UNREG("ISO-8859-6", NS_ISO88596TOUNICODE_CID, NS_UNICODETOISO88596_CID)
+NS_UCONV_REG_UNREG("ISO-8859-7", NS_ISO88597TOUNICODE_CID, NS_UNICODETOISO88597_CID)
+NS_UCONV_REG_UNREG("ISO-8859-8", NS_ISO88598TOUNICODE_CID, NS_UNICODETOISO88598_CID)
+NS_UCONV_REG_UNREG("ISO-8859-8-I", NS_ISO88598ITOUNICODE_CID, NS_UNICODETOISO88598I_CID)
+NS_UCONV_REG_UNREG("ISO-8859-10", NS_ISO885910TOUNICODE_CID, NS_UNICODETOISO885910_CID)
+NS_UCONV_REG_UNREG("ISO-8859-13", NS_ISO885913TOUNICODE_CID, NS_UNICODETOISO885913_CID)
+NS_UCONV_REG_UNREG("ISO-8859-14", NS_ISO885914TOUNICODE_CID, NS_UNICODETOISO885914_CID)
+NS_UCONV_REG_UNREG("ISO-8859-15", NS_ISO885915TOUNICODE_CID, NS_UNICODETOISO885915_CID)
+NS_UCONV_REG_UNREG("ISO-8859-16", NS_ISO885916TOUNICODE_CID, NS_UNICODETOISO885916_CID)
+NS_UCONV_REG_UNREG("windows-1250", NS_CP1250TOUNICODE_CID, NS_UNICODETOCP1250_CID)
+NS_UCONV_REG_UNREG("windows-1251", NS_CP1251TOUNICODE_CID, NS_UNICODETOCP1251_CID)
+NS_UCONV_REG_UNREG("windows-1253", NS_CP1253TOUNICODE_CID, NS_UNICODETOCP1253_CID)
+NS_UCONV_REG_UNREG("windows-1254", NS_CP1254TOUNICODE_CID, NS_UNICODETOCP1254_CID)
+NS_UCONV_REG_UNREG("windows-1255", NS_CP1255TOUNICODE_CID, NS_UNICODETOCP1255_CID)
+NS_UCONV_REG_UNREG("windows-1256", NS_CP1256TOUNICODE_CID, NS_UNICODETOCP1256_CID)
+NS_UCONV_REG_UNREG("windows-1257", NS_CP1257TOUNICODE_CID, NS_UNICODETOCP1257_CID)
+NS_UCONV_REG_UNREG("windows-1258", NS_CP1258TOUNICODE_CID, NS_UNICODETOCP1258_CID)
+NS_UCONV_REG_UNREG("windows-874", NS_CP874TOUNICODE_CID, NS_UNICODETOCP874_CID)
+NS_UCONV_REG_UNREG("IBM866", NS_CP866TOUNICODE_CID, NS_UNICODETOCP866_CID)
+NS_UCONV_REG_UNREG("KOI8-R", NS_KOI8RTOUNICODE_CID, NS_UNICODETOKOI8R_CID)
+NS_UCONV_REG_UNREG("KOI8-U", NS_KOI8UTOUNICODE_CID, NS_UNICODETOKOI8U_CID)
+NS_UCONV_REG_UNREG_DECODER("x-mac-ce", NS_MACCETOUNICODE_CID)
+NS_UCONV_REG_UNREG_DECODER("x-mac-greek", NS_MACGREEKTOUNICODE_CID)
+NS_UCONV_REG_UNREG_DECODER("x-mac-turkish", NS_MACTURKISHTOUNICODE_CID)
+NS_UCONV_REG_UNREG_DECODER("x-mac-croatian", NS_MACCROATIANTOUNICODE_CID)
+NS_UCONV_REG_UNREG_DECODER("x-mac-romanian", NS_MACROMANIANTOUNICODE_CID)
+NS_UCONV_REG_UNREG("x-mac-cyrillic", NS_MACCYRILLICTOUNICODE_CID, NS_UNICODETOMACCYRILLIC_CID)
+NS_UCONV_REG_UNREG_DECODER("x-mac-icelandic", NS_MACICELANDICTOUNICODE_CID)
+NS_UCONV_REG_UNREG("UTF-16", NS_UTF16TOUNICODE_CID, NS_UNICODETOUTF16_CID)
+NS_UCONV_REG_UNREG("UTF-16BE", NS_UTF16BETOUNICODE_CID, NS_UNICODETOUTF16BE_CID)
+NS_UCONV_REG_UNREG("UTF-16LE", NS_UTF16LETOUNICODE_CID, NS_UNICODETOUTF16LE_CID)
+NS_UCONV_REG_UNREG("x-user-defined", NS_USERDEFINEDTOUNICODE_CID, NS_UNICODETOUSERDEFINED_CID)
+NS_UCONV_REG_UNREG_DECODER("x-mac-arabic" , NS_MACARABICTOUNICODE_CID)
+NS_UCONV_REG_UNREG_DECODER("x-mac-devanagari" , NS_MACDEVANAGARITOUNICODE_CID)
+NS_UCONV_REG_UNREG_DECODER("x-mac-farsi" , NS_MACFARSITOUNICODE_CID)
+NS_UCONV_REG_UNREG_DECODER("x-mac-gurmukhi" , NS_MACGURMUKHITOUNICODE_CID)
+NS_UCONV_REG_UNREG_DECODER("x-mac-gujarati" , NS_MACGUJARATITOUNICODE_CID)
+NS_UCONV_REG_UNREG_DECODER("x-mac-hebrew" , NS_MACHEBREWTOUNICODE_CID)
+
+ // ucvja
+NS_UCONV_REG_UNREG("Shift_JIS", NS_SJISTOUNICODE_CID, NS_UNICODETOSJIS_CID)
+NS_UCONV_REG_UNREG("ISO-2022-JP", NS_ISO2022JPTOUNICODE_CID, NS_UNICODETOISO2022JP_CID)
+NS_UCONV_REG_UNREG("EUC-JP", NS_EUCJPTOUNICODE_CID, NS_UNICODETOEUCJP_CID)
+
+ // ucvtw
+NS_UCONV_REG_UNREG("Big5", NS_BIG5TOUNICODE_CID, NS_UNICODETOBIG5_CID)
+
+ // ucvko
+NS_UCONV_REG_UNREG("EUC-KR", NS_EUCKRTOUNICODE_CID, NS_UNICODETOEUCKR_CID)
+
+// ucvcn
+NS_UCONV_REG_UNREG("gbk", NS_GBKTOUNICODE_CID, NS_UNICODETOGBK_CID)
+NS_UCONV_REG_UNREG("gb18030", NS_GB18030TOUNICODE_CID, NS_UNICODETOGB18030_CID)
+
+NS_CONVERTER_REGISTRY_END
+
+NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToUTF8)
+NS_GENERIC_FACTORY_CONSTRUCTOR(nsUTF8ToUnicode)
+NS_GENERIC_FACTORY_CONSTRUCTOR(nsReplacementToUnicode)
+
+// ucvlatin
+NS_GENERIC_FACTORY_CONSTRUCTOR(nsUTF16ToUnicode)
+NS_GENERIC_FACTORY_CONSTRUCTOR(nsUTF16BEToUnicode)
+NS_GENERIC_FACTORY_CONSTRUCTOR(nsUTF16LEToUnicode)
+NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToUTF16BE)
+NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToUTF16LE)
+NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToUTF16)
+
+// ucvja
+NS_GENERIC_FACTORY_CONSTRUCTOR(nsShiftJISToUnicode)
+NS_GENERIC_FACTORY_CONSTRUCTOR(nsEUCJPToUnicodeV2)
+NS_GENERIC_FACTORY_CONSTRUCTOR(nsISO2022JPToUnicodeV2)
+NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToISO2022JP)
+
+// ucvtw
+NS_GENERIC_FACTORY_CONSTRUCTOR(nsBIG5ToUnicode)
+NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToBIG5)
+
+// ucvko
+
+// ucvcn
+NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToGBK)
+NS_GENERIC_FACTORY_CONSTRUCTOR(nsGB18030ToUnicode)
+NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToGB18030)
+
+
+//----------------------------------------------------------------------------
+// Global functions and data [declaration]
+
+// ucvja
+const uint16_t g_uf0201Mapping[] = {
+#include "jis0201.uf"
+};
+
+const uint16_t g_uf0201GLMapping[] = {
+#include "jis0201gl.uf"
+};
+
+const uint16_t g_uf0208Mapping[] = {
+#include "jis0208.uf"
+};
+
+const uint16_t g_uf0208extMapping[] = {
+#include "jis0208ext.uf"
+};
+
+const uint16_t g_ASCIIMappingTable[] = {
+ 0x0001, 0x0004, 0x0005, 0x0008, 0x0000, 0x0000, 0x007F, 0x0000
+};
+
+// ucvko
+const uint16_t g_utKSC5601Mapping[] = {
+#include "u20kscgl.ut"
+};
+
+const uint16_t g_ufKSC5601Mapping[] = {
+#include "u20kscgl.uf"
+};
+
+const uint16_t g_HangulNullMapping[] ={
+ 0x0001, 0x0004, 0x0005, 0x0008, 0x0000, 0xAC00, 0xD7A3, 0xAC00
+};
+
+NS_GENERIC_FACTORY_CONSTRUCTOR(nsTextToSubURI)
+NS_GENERIC_FACTORY_CONSTRUCTOR(nsUTF8ConverterService)
+NS_GENERIC_FACTORY_CONSTRUCTOR(nsConverterInputStream)
+NS_GENERIC_FACTORY_CONSTRUCTOR(nsConverterOutputStream)
+NS_GENERIC_FACTORY_CONSTRUCTOR(nsScriptableUnicodeConverter)
+
+NS_DEFINE_NAMED_CID(NS_TEXTTOSUBURI_CID);
+NS_DEFINE_NAMED_CID(NS_CONVERTERINPUTSTREAM_CID);
+NS_DEFINE_NAMED_CID(NS_CONVERTEROUTPUTSTREAM_CID);
+NS_DEFINE_NAMED_CID(NS_ISCRIPTABLEUNICODECONVERTER_CID);
+NS_DEFINE_NAMED_CID(NS_UTF8CONVERTERSERVICE_CID);
+NS_DEFINE_NAMED_CID(NS_ISO88591TOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_CP1252TOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_MACROMANTOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_UTF8TOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_REPLACEMENTTOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOISO88591_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOCP1252_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOMACROMAN_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOUTF8_CID);
+NS_DEFINE_NAMED_CID(NS_ISO88592TOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_ISO88593TOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_ISO88594TOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_ISO88595TOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_ISO88596TOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_ISO88597TOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_ISO88598TOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_ISO88598ITOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_ISO885910TOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_ISO885913TOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_ISO885914TOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_ISO885915TOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_ISO885916TOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_CP1250TOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_CP1251TOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_CP1253TOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_CP1254TOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_CP1255TOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_CP1256TOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_CP1257TOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_CP1258TOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_CP874TOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_CP866TOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_KOI8RTOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_KOI8UTOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_MACCETOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_MACGREEKTOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_MACTURKISHTOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_MACCROATIANTOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_MACROMANIANTOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_MACCYRILLICTOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_MACICELANDICTOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_UTF16TOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_UTF16BETOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_UTF16LETOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_USERDEFINEDTOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_MACARABICTOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_MACDEVANAGARITOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_MACFARSITOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_MACGURMUKHITOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_MACGUJARATITOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_MACHEBREWTOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOISO88592_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOISO88593_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOISO88594_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOISO88595_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOISO88596_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOISO88597_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOISO88598_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOISO88598I_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOISO885910_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOISO885913_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOISO885914_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOISO885915_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOISO885916_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOCP1250_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOCP1251_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOCP1253_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOCP1254_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOCP1255_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOCP1256_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOCP1257_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOCP1258_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOCP874_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOCP866_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOKOI8R_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOKOI8U_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOMACCYRILLIC_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOUTF16BE_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOUTF16LE_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOUTF16_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOUSERDEFINED_CID);
+NS_DEFINE_NAMED_CID(NS_SJISTOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_EUCJPTOUNICODE_CID);
+NS_DEFINE_NAMED_CID( NS_ISO2022JPTOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOSJIS_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOEUCJP_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOISO2022JP_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOBIG5_CID);
+NS_DEFINE_NAMED_CID(NS_BIG5TOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_EUCKRTOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOEUCKR_CID);
+NS_DEFINE_NAMED_CID(NS_GBKTOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOGBK_CID);
+NS_DEFINE_NAMED_CID(NS_GB18030TOUNICODE_CID);
+NS_DEFINE_NAMED_CID(NS_UNICODETOGB18030_CID);
+
+static const mozilla::Module::CIDEntry kUConvCIDs[] = {
+ { &kNS_TEXTTOSUBURI_CID, false, nullptr, nsTextToSubURIConstructor },
+ { &kNS_CONVERTERINPUTSTREAM_CID, false, nullptr, nsConverterInputStreamConstructor },
+ { &kNS_CONVERTEROUTPUTSTREAM_CID, false, nullptr, nsConverterOutputStreamConstructor },
+ { &kNS_ISCRIPTABLEUNICODECONVERTER_CID, false, nullptr, nsScriptableUnicodeConverterConstructor },
+ { &kNS_UTF8CONVERTERSERVICE_CID, false, nullptr, nsUTF8ConverterServiceConstructor },
+ { &kNS_ISO88591TOUNICODE_CID, false, nullptr, nsCP1252ToUnicodeConstructor },
+ { &kNS_CP1252TOUNICODE_CID, false, nullptr, nsCP1252ToUnicodeConstructor },
+ { &kNS_MACROMANTOUNICODE_CID, false, nullptr, nsMacRomanToUnicodeConstructor },
+ { &kNS_REPLACEMENTTOUNICODE_CID, false, nullptr, nsReplacementToUnicodeConstructor },
+ { &kNS_UTF8TOUNICODE_CID, false, nullptr, nsUTF8ToUnicodeConstructor },
+ { &kNS_UNICODETOISO88591_CID, false, nullptr, nsUnicodeToISO88591Constructor },
+ { &kNS_UNICODETOCP1252_CID, false, nullptr, nsUnicodeToCP1252Constructor },
+ { &kNS_UNICODETOMACROMAN_CID, false, nullptr, nsUnicodeToMacRomanConstructor },
+ { &kNS_UNICODETOUTF8_CID, false, nullptr, nsUnicodeToUTF8Constructor },
+ { &kNS_ISO88592TOUNICODE_CID, false, nullptr, nsISO88592ToUnicodeConstructor },
+ { &kNS_ISO88593TOUNICODE_CID, false, nullptr, nsISO88593ToUnicodeConstructor },
+ { &kNS_ISO88594TOUNICODE_CID, false, nullptr, nsISO88594ToUnicodeConstructor },
+ { &kNS_ISO88595TOUNICODE_CID, false, nullptr, nsISO88595ToUnicodeConstructor },
+ { &kNS_ISO88596TOUNICODE_CID, false, nullptr, nsISO88596ToUnicodeConstructor },
+ { &kNS_ISO88597TOUNICODE_CID, false, nullptr, nsISO88597ToUnicodeConstructor },
+ { &kNS_ISO88598TOUNICODE_CID, false, nullptr, nsISO88598ToUnicodeConstructor },
+ { &kNS_ISO88598ITOUNICODE_CID, false, nullptr, nsISO88598IToUnicodeConstructor },
+ { &kNS_ISO885910TOUNICODE_CID, false, nullptr, nsISO885910ToUnicodeConstructor },
+ { &kNS_ISO885913TOUNICODE_CID, false, nullptr, nsISO885913ToUnicodeConstructor },
+ { &kNS_ISO885914TOUNICODE_CID, false, nullptr, nsISO885914ToUnicodeConstructor },
+ { &kNS_ISO885915TOUNICODE_CID, false, nullptr, nsISO885915ToUnicodeConstructor },
+ { &kNS_ISO885916TOUNICODE_CID, false, nullptr, nsISO885916ToUnicodeConstructor },
+ { &kNS_CP1250TOUNICODE_CID, false, nullptr, nsCP1250ToUnicodeConstructor },
+ { &kNS_CP1251TOUNICODE_CID, false, nullptr, nsCP1251ToUnicodeConstructor },
+ { &kNS_CP1253TOUNICODE_CID, false, nullptr, nsCP1253ToUnicodeConstructor },
+ { &kNS_CP1254TOUNICODE_CID, false, nullptr, nsCP1254ToUnicodeConstructor },
+ { &kNS_CP1255TOUNICODE_CID, false, nullptr, nsCP1255ToUnicodeConstructor },
+ { &kNS_CP1256TOUNICODE_CID, false, nullptr, nsCP1256ToUnicodeConstructor },
+ { &kNS_CP1257TOUNICODE_CID, false, nullptr, nsCP1257ToUnicodeConstructor },
+ { &kNS_CP1258TOUNICODE_CID, false, nullptr, nsCP1258ToUnicodeConstructor },
+ { &kNS_CP874TOUNICODE_CID, false, nullptr, nsCP874ToUnicodeConstructor },
+ { &kNS_CP866TOUNICODE_CID, false, nullptr, nsCP866ToUnicodeConstructor },
+ { &kNS_KOI8RTOUNICODE_CID, false, nullptr, nsKOI8RToUnicodeConstructor },
+ { &kNS_KOI8UTOUNICODE_CID, false, nullptr, nsKOI8UToUnicodeConstructor },
+ { &kNS_MACCETOUNICODE_CID, false, nullptr, nsMacCEToUnicodeConstructor },
+ { &kNS_MACGREEKTOUNICODE_CID, false, nullptr, nsMacGreekToUnicodeConstructor },
+ { &kNS_MACTURKISHTOUNICODE_CID, false, nullptr, nsMacTurkishToUnicodeConstructor },
+ { &kNS_MACCROATIANTOUNICODE_CID, false, nullptr, nsMacCroatianToUnicodeConstructor },
+ { &kNS_MACROMANIANTOUNICODE_CID, false, nullptr, nsMacRomanianToUnicodeConstructor },
+ { &kNS_MACCYRILLICTOUNICODE_CID, false, nullptr, nsMacCyrillicToUnicodeConstructor },
+ { &kNS_MACICELANDICTOUNICODE_CID, false, nullptr, nsMacIcelandicToUnicodeConstructor },
+ { &kNS_UTF16TOUNICODE_CID, false, nullptr, nsUTF16ToUnicodeConstructor },
+ { &kNS_UTF16BETOUNICODE_CID, false, nullptr, nsUTF16BEToUnicodeConstructor },
+ { &kNS_UTF16LETOUNICODE_CID, false, nullptr, nsUTF16LEToUnicodeConstructor },
+ { &kNS_USERDEFINEDTOUNICODE_CID, false, nullptr, nsUserDefinedToUnicodeConstructor },
+ { &kNS_MACARABICTOUNICODE_CID, false, nullptr, nsMacArabicToUnicodeConstructor },
+ { &kNS_MACDEVANAGARITOUNICODE_CID, false, nullptr, nsMacDevanagariToUnicodeConstructor },
+ { &kNS_MACFARSITOUNICODE_CID, false, nullptr, nsMacFarsiToUnicodeConstructor },
+ { &kNS_MACGURMUKHITOUNICODE_CID, false, nullptr, nsMacGurmukhiToUnicodeConstructor },
+ { &kNS_MACGUJARATITOUNICODE_CID, false, nullptr, nsMacGujaratiToUnicodeConstructor },
+ { &kNS_MACHEBREWTOUNICODE_CID, false, nullptr, nsMacHebrewToUnicodeConstructor },
+ { &kNS_UNICODETOISO88592_CID, false, nullptr, nsUnicodeToISO88592Constructor },
+ { &kNS_UNICODETOISO88593_CID, false, nullptr, nsUnicodeToISO88593Constructor },
+ { &kNS_UNICODETOISO88594_CID, false, nullptr, nsUnicodeToISO88594Constructor },
+ { &kNS_UNICODETOISO88595_CID, false, nullptr, nsUnicodeToISO88595Constructor },
+ { &kNS_UNICODETOISO88596_CID, false, nullptr, nsUnicodeToISO88596Constructor },
+ { &kNS_UNICODETOISO88597_CID, false, nullptr, nsUnicodeToISO88597Constructor },
+ { &kNS_UNICODETOISO88598_CID, false, nullptr, nsUnicodeToISO88598Constructor },
+ { &kNS_UNICODETOISO88598I_CID, false, nullptr, nsUnicodeToISO88598IConstructor },
+ { &kNS_UNICODETOISO885910_CID, false, nullptr, nsUnicodeToISO885910Constructor },
+ { &kNS_UNICODETOISO885913_CID, false, nullptr, nsUnicodeToISO885913Constructor },
+ { &kNS_UNICODETOISO885914_CID, false, nullptr, nsUnicodeToISO885914Constructor },
+ { &kNS_UNICODETOISO885915_CID, false, nullptr, nsUnicodeToISO885915Constructor },
+ { &kNS_UNICODETOISO885916_CID, false, nullptr, nsUnicodeToISO885916Constructor },
+ { &kNS_UNICODETOCP1250_CID, false, nullptr, nsUnicodeToCP1250Constructor },
+ { &kNS_UNICODETOCP1251_CID, false, nullptr, nsUnicodeToCP1251Constructor },
+ { &kNS_UNICODETOCP1253_CID, false, nullptr, nsUnicodeToCP1253Constructor },
+ { &kNS_UNICODETOCP1254_CID, false, nullptr, nsUnicodeToCP1254Constructor },
+ { &kNS_UNICODETOCP1255_CID, false, nullptr, nsUnicodeToCP1255Constructor },
+ { &kNS_UNICODETOCP1256_CID, false, nullptr, nsUnicodeToCP1256Constructor },
+ { &kNS_UNICODETOCP1257_CID, false, nullptr, nsUnicodeToCP1257Constructor },
+ { &kNS_UNICODETOCP1258_CID, false, nullptr, nsUnicodeToCP1258Constructor },
+ { &kNS_UNICODETOCP874_CID, false, nullptr, nsUnicodeToCP874Constructor },
+ { &kNS_UNICODETOCP866_CID, false, nullptr, nsUnicodeToCP866Constructor },
+ { &kNS_UNICODETOKOI8R_CID, false, nullptr, nsUnicodeToKOI8RConstructor },
+ { &kNS_UNICODETOKOI8U_CID, false, nullptr, nsUnicodeToKOI8UConstructor },
+ { &kNS_UNICODETOMACCYRILLIC_CID, false, nullptr, nsUnicodeToMacCyrillicConstructor },
+ { &kNS_UNICODETOUTF16BE_CID, false, nullptr, nsUnicodeToUTF16BEConstructor },
+ { &kNS_UNICODETOUTF16LE_CID, false, nullptr, nsUnicodeToUTF16LEConstructor },
+ { &kNS_UNICODETOUTF16_CID, false, nullptr, nsUnicodeToUTF16Constructor },
+ { &kNS_UNICODETOUSERDEFINED_CID, false, nullptr, nsUnicodeToUserDefinedConstructor },
+ { &kNS_SJISTOUNICODE_CID, false, nullptr, nsShiftJISToUnicodeConstructor },
+ { &kNS_EUCJPTOUNICODE_CID, false, nullptr, nsEUCJPToUnicodeV2Constructor },
+ { &kNS_ISO2022JPTOUNICODE_CID, false, nullptr, nsISO2022JPToUnicodeV2Constructor },
+ { &kNS_UNICODETOSJIS_CID, false, nullptr, nsUnicodeToSJISConstructor },
+ { &kNS_UNICODETOEUCJP_CID, false, nullptr, nsUnicodeToEUCJPConstructor },
+ { &kNS_UNICODETOISO2022JP_CID, false, nullptr, nsUnicodeToISO2022JPConstructor },
+ { &kNS_UNICODETOBIG5_CID, false, nullptr, nsUnicodeToBIG5Constructor },
+ { &kNS_BIG5TOUNICODE_CID, false, nullptr, nsBIG5ToUnicodeConstructor },
+ { &kNS_EUCKRTOUNICODE_CID, false, nullptr, nsCP949ToUnicodeConstructor },
+ { &kNS_UNICODETOEUCKR_CID, false, nullptr, nsUnicodeToCP949Constructor },
+ { &kNS_GBKTOUNICODE_CID, false, nullptr, nsGB18030ToUnicodeConstructor },
+ { &kNS_UNICODETOGBK_CID, false, nullptr, nsUnicodeToGBKConstructor },
+ { &kNS_GB18030TOUNICODE_CID, false, nullptr, nsGB18030ToUnicodeConstructor },
+ { &kNS_UNICODETOGB18030_CID, false, nullptr, nsUnicodeToGB18030Constructor },
+ { nullptr },
+};
+
+static const mozilla::Module::ContractIDEntry kUConvContracts[] = {
+ { NS_ITEXTTOSUBURI_CONTRACTID, &kNS_TEXTTOSUBURI_CID },
+ { NS_CONVERTERINPUTSTREAM_CONTRACTID, &kNS_CONVERTERINPUTSTREAM_CID },
+ { "@mozilla.org/intl/converter-output-stream;1", &kNS_CONVERTEROUTPUTSTREAM_CID },
+ { NS_ISCRIPTABLEUNICODECONVERTER_CONTRACTID, &kNS_ISCRIPTABLEUNICODECONVERTER_CID },
+ { NS_UTF8CONVERTERSERVICE_CONTRACTID, &kNS_UTF8CONVERTERSERVICE_CID },
+ { NS_ISO88591TOUNICODE_CONTRACTID, &kNS_ISO88591TOUNICODE_CID },
+ { NS_CP1252TOUNICODE_CONTRACTID, &kNS_CP1252TOUNICODE_CID },
+ { NS_MACROMANTOUNICODE_CONTRACTID, &kNS_MACROMANTOUNICODE_CID },
+ { NS_REPLACEMENTTOUNICODE_CONTRACTID, &kNS_REPLACEMENTTOUNICODE_CID },
+ { NS_UTF8TOUNICODE_CONTRACTID, &kNS_UTF8TOUNICODE_CID },
+ { NS_UNICODETOISO88591_CONTRACTID, &kNS_UNICODETOISO88591_CID },
+ { NS_UNICODETOCP1252_CONTRACTID, &kNS_UNICODETOCP1252_CID },
+ { NS_UNICODETOMACROMAN_CONTRACTID, &kNS_UNICODETOMACROMAN_CID },
+ { NS_UNICODETOUTF8_CONTRACTID, &kNS_UNICODETOUTF8_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-2", &kNS_ISO88592TOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-3", &kNS_ISO88593TOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-4", &kNS_ISO88594TOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-5", &kNS_ISO88595TOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-6", &kNS_ISO88596TOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-7", &kNS_ISO88597TOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-8", &kNS_ISO88598TOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-8-I", &kNS_ISO88598ITOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-10", &kNS_ISO885910TOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-13", &kNS_ISO885913TOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-14", &kNS_ISO885914TOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-15", &kNS_ISO885915TOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-16", &kNS_ISO885916TOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "windows-1250", &kNS_CP1250TOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "windows-1251", &kNS_CP1251TOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "windows-1253", &kNS_CP1253TOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "windows-1254", &kNS_CP1254TOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "windows-1255", &kNS_CP1255TOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "windows-1256", &kNS_CP1256TOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "windows-1257", &kNS_CP1257TOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "windows-1258", &kNS_CP1258TOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "windows-874", &kNS_CP874TOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "IBM866", &kNS_CP866TOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "KOI8-R", &kNS_KOI8RTOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "KOI8-U", &kNS_KOI8UTOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-ce", &kNS_MACCETOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-greek", &kNS_MACGREEKTOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-turkish", &kNS_MACTURKISHTOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-croatian", &kNS_MACCROATIANTOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-romanian", &kNS_MACROMANIANTOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-cyrillic", &kNS_MACCYRILLICTOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-icelandic", &kNS_MACICELANDICTOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "UTF-16", &kNS_UTF16TOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "UTF-16BE", &kNS_UTF16BETOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "UTF-16LE", &kNS_UTF16LETOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "x-user-defined", &kNS_USERDEFINEDTOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-arabic", &kNS_MACARABICTOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-devanagari", &kNS_MACDEVANAGARITOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-farsi", &kNS_MACFARSITOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-gurmukhi", &kNS_MACGURMUKHITOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-gujarati", &kNS_MACGUJARATITOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-hebrew", &kNS_MACHEBREWTOUNICODE_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-2", &kNS_UNICODETOISO88592_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-3", &kNS_UNICODETOISO88593_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-4", &kNS_UNICODETOISO88594_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-5", &kNS_UNICODETOISO88595_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-6", &kNS_UNICODETOISO88596_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-7", &kNS_UNICODETOISO88597_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-8", &kNS_UNICODETOISO88598_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-8-I", &kNS_UNICODETOISO88598I_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-10", &kNS_UNICODETOISO885910_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-13", &kNS_UNICODETOISO885913_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-14", &kNS_UNICODETOISO885914_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-15", &kNS_UNICODETOISO885915_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-16", &kNS_UNICODETOISO885916_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "windows-1250", &kNS_UNICODETOCP1250_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "windows-1251", &kNS_UNICODETOCP1251_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "windows-1253", &kNS_UNICODETOCP1253_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "windows-1254", &kNS_UNICODETOCP1254_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "windows-1255", &kNS_UNICODETOCP1255_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "windows-1256", &kNS_UNICODETOCP1256_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "windows-1257", &kNS_UNICODETOCP1257_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "windows-1258", &kNS_UNICODETOCP1258_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "windows-874", &kNS_UNICODETOCP874_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "IBM866", &kNS_UNICODETOCP866_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "KOI8-R", &kNS_UNICODETOKOI8R_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "KOI8-U", &kNS_UNICODETOKOI8U_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-cyrillic", &kNS_UNICODETOMACCYRILLIC_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "UTF-16BE", &kNS_UNICODETOUTF16BE_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "UTF-16LE", &kNS_UNICODETOUTF16LE_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "UTF-16", &kNS_UNICODETOUTF16_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "x-user-defined", &kNS_UNICODETOUSERDEFINED_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "Shift_JIS", &kNS_SJISTOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "EUC-JP", &kNS_EUCJPTOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-2022-JP", &kNS_ISO2022JPTOUNICODE_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "Shift_JIS", &kNS_UNICODETOSJIS_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "EUC-JP", &kNS_UNICODETOEUCJP_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-2022-JP", &kNS_UNICODETOISO2022JP_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "Big5", &kNS_UNICODETOBIG5_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "Big5", &kNS_BIG5TOUNICODE_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "EUC-KR", &kNS_EUCKRTOUNICODE_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "EUC-KR", &kNS_UNICODETOEUCKR_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "gbk", &kNS_GBKTOUNICODE_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "gbk", &kNS_UNICODETOGBK_CID },
+ { NS_UNICODEDECODER_CONTRACTID_BASE "gb18030", &kNS_GB18030TOUNICODE_CID },
+ { NS_UNICODEENCODER_CONTRACTID_BASE "gb18030", &kNS_UNICODETOGB18030_CID },
+ { nullptr }
+};
+
+static const mozilla::Module kUConvModule = {
+ mozilla::Module::kVersion,
+ kUConvCIDs,
+ kUConvContracts,
+ kUConvCategories
+};
+
+NSMODULE_DEFN(nsUConvModule) = &kUConvModule;