intl/uconv/src/nsUConvModule.cpp

Wed, 31 Dec 2014 07:22:50 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 07:22:50 +0100
branch
TOR_BUG_3246
changeset 4
fc2d59ddac77
permissions
-rw-r--r--

Correct previous dual key logic pending first delivery installment.

     1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
     2 /* This Source Code Form is subject to the terms of the Mozilla Public
     3  * License, v. 2.0. If a copy of the MPL was not distributed with this
     4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     5 #include "mozilla/ModuleUtils.h"
     6 #include "nsICharsetConverterManager.h"
     7 #include "nsEncoderDecoderUtils.h"
     8 #include "nsIUnicodeDecoder.h"
     9 #include "nsIUnicodeEncoder.h"
    11 #include "nsUConvCID.h"
    12 #include "nsCharsetConverterManager.h"
    13 #include "nsTextToSubURI.h"
    14 #include "nsUTF8ConverterService.h"
    15 #include "nsConverterInputStream.h"
    16 #include "nsConverterOutputStream.h"
    17 #include "nsScriptableUConv.h"
    18 #include "nsIOutputStream.h"
    19 #include "nsITextToSubURI.h"
    21 #include "nsISO88591ToUnicode.h"
    22 #include "nsCP1252ToUnicode.h"
    23 #include "nsMacRomanToUnicode.h"
    24 #include "nsReplacementToUnicode.h"
    25 #include "nsUTF8ToUnicode.h"
    26 #include "nsUnicodeToISO88591.h"
    27 #include "nsUnicodeToCP1252.h"
    28 #include "nsUnicodeToMacRoman.h"
    29 #include "nsUnicodeToUTF8.h"
    31 // ucvlatin
    32 #include "nsUCvLatinCID.h"
    33 #include "nsAsciiToUnicode.h"
    34 #include "nsISO88592ToUnicode.h"
    35 #include "nsISO88593ToUnicode.h"
    36 #include "nsISO88594ToUnicode.h"
    37 #include "nsISO88595ToUnicode.h"
    38 #include "nsISO88596ToUnicode.h"
    39 #include "nsISO88596EToUnicode.h"
    40 #include "nsISO88596IToUnicode.h"
    41 #include "nsISO88597ToUnicode.h"
    42 #include "nsISO88598ToUnicode.h"
    43 #include "nsISO88598EToUnicode.h"
    44 #include "nsISO88598IToUnicode.h"
    45 #include "nsISO88599ToUnicode.h"
    46 #include "nsISO885910ToUnicode.h"
    47 #include "nsISO885913ToUnicode.h"
    48 #include "nsISO885914ToUnicode.h"
    49 #include "nsISO885915ToUnicode.h"
    50 #include "nsISO885916ToUnicode.h"
    51 #include "nsISOIR111ToUnicode.h"
    52 #include "nsCP1250ToUnicode.h"
    53 #include "nsCP1251ToUnicode.h"
    54 #include "nsCP1253ToUnicode.h"
    55 #include "nsCP1254ToUnicode.h"
    56 #include "nsCP1255ToUnicode.h"
    57 #include "nsCP1256ToUnicode.h"
    58 #include "nsCP1257ToUnicode.h"
    59 #include "nsCP1258ToUnicode.h"
    60 #include "nsCP874ToUnicode.h"
    61 #include "nsISO885911ToUnicode.h"
    62 #include "nsTIS620ToUnicode.h"
    63 #include "nsCP866ToUnicode.h"
    64 #include "nsKOI8RToUnicode.h"
    65 #include "nsKOI8UToUnicode.h"
    66 #include "nsMacCEToUnicode.h"
    67 #include "nsMacGreekToUnicode.h"
    68 #include "nsMacTurkishToUnicode.h"
    69 #include "nsMacCroatianToUnicode.h"
    70 #include "nsMacRomanianToUnicode.h"
    71 #include "nsMacCyrillicToUnicode.h"
    72 #include "nsMacIcelandicToUnicode.h"
    73 #include "nsARMSCII8ToUnicode.h"
    74 #include "nsTCVN5712ToUnicode.h"
    75 #include "nsVISCIIToUnicode.h"
    76 #include "nsVPSToUnicode.h"
    77 #include "nsUTF16ToUnicode.h"
    78 #include "nsT61ToUnicode.h"
    79 #include "nsUserDefinedToUnicode.h"
    80 #include "nsUnicodeToAscii.h"
    81 #include "nsUnicodeToISO88592.h"
    82 #include "nsUnicodeToISO88593.h"
    83 #include "nsUnicodeToISO88594.h"
    84 #include "nsUnicodeToISO88595.h"
    85 #include "nsUnicodeToISO88596.h"
    86 #include "nsUnicodeToISO88596E.h"
    87 #include "nsUnicodeToISO88596I.h"
    88 #include "nsUnicodeToISO88597.h"
    89 #include "nsUnicodeToISO88598.h"
    90 #include "nsUnicodeToISO88598E.h"
    91 #include "nsUnicodeToISO88598I.h"
    92 #include "nsUnicodeToISO88599.h"
    93 #include "nsUnicodeToISO885910.h"
    94 #include "nsUnicodeToISO885913.h"
    95 #include "nsUnicodeToISO885914.h"
    96 #include "nsUnicodeToISO885915.h"
    97 #include "nsUnicodeToISO885916.h"
    98 #include "nsUnicodeToISOIR111.h"
    99 #include "nsUnicodeToCP1250.h"
   100 #include "nsUnicodeToCP1251.h"
   101 #include "nsUnicodeToCP1253.h"
   102 #include "nsUnicodeToCP1254.h"
   103 #include "nsUnicodeToCP1255.h"
   104 #include "nsUnicodeToCP1256.h"
   105 #include "nsUnicodeToCP1257.h"
   106 #include "nsUnicodeToCP1258.h"
   107 #include "nsUnicodeToCP874.h"
   108 #include "nsUnicodeToISO885911.h"
   109 #include "nsUnicodeToTIS620.h"
   110 #include "nsUnicodeToCP866.h"
   111 #include "nsUnicodeToKOI8R.h"
   112 #include "nsUnicodeToKOI8U.h"
   113 #include "nsUnicodeToMacCE.h"
   114 #include "nsUnicodeToMacGreek.h"
   115 #include "nsUnicodeToMacTurkish.h"
   116 #include "nsUnicodeToMacCroatian.h"
   117 #include "nsUnicodeToMacRomanian.h"
   118 #include "nsUnicodeToMacCyrillic.h"
   119 #include "nsUnicodeToMacIcelandic.h"
   120 #include "nsUnicodeToARMSCII8.h"
   121 #include "nsUnicodeToTCVN5712.h"
   122 #include "nsUnicodeToVISCII.h"
   123 #include "nsUnicodeToVPS.h"
   124 #include "nsUnicodeToUTF16.h"
   125 #include "nsUnicodeToT61.h"
   126 #include "nsUnicodeToUserDefined.h"
   127 #include "nsMacArabicToUnicode.h"
   128 #include "nsMacDevanagariToUnicode.h"
   129 #include "nsMacFarsiToUnicode.h"
   130 #include "nsMacGujaratiToUnicode.h"
   131 #include "nsMacGurmukhiToUnicode.h"
   132 #include "nsMacHebrewToUnicode.h"
   133 #include "nsUnicodeToMacArabic.h"
   134 #include "nsUnicodeToMacDevanagari.h"
   135 #include "nsUnicodeToMacFarsi.h"
   136 #include "nsUnicodeToMacGujarati.h"
   137 #include "nsUnicodeToMacGurmukhi.h"
   138 #include "nsUnicodeToMacHebrew.h"
   140 // ucvibm
   141 #include "nsUCvIBMCID.h"
   142 #include "nsCP850ToUnicode.h"
   143 #include "nsCP852ToUnicode.h"
   144 #include "nsCP855ToUnicode.h"
   145 #include "nsCP857ToUnicode.h"
   146 #include "nsCP862ToUnicode.h"
   147 #include "nsCP864ToUnicode.h"
   148 #include "nsUnicodeToCP850.h"
   149 #include "nsUnicodeToCP852.h"
   150 #include "nsUnicodeToCP855.h"
   151 #include "nsUnicodeToCP857.h"
   152 #include "nsUnicodeToCP862.h"
   153 #include "nsUnicodeToCP864.h"
   155 // ucvja
   156 #include "nsUCVJACID.h"
   157 #include "nsUCVJA2CID.h"
   158 #include "nsUCVJADll.h"
   159 #include "nsJapaneseToUnicode.h"
   160 #include "nsUnicodeToSJIS.h"
   161 #include "nsUnicodeToEUCJP.h"
   162 #include "nsUnicodeToISO2022JP.h"
   163 #include "nsUnicodeToJISx0201.h"
   165 // ucvtw2
   166 #include "nsUCvTW2CID.h"
   167 #include "nsUCvTW2Dll.h"
   168 #include "nsEUCTWToUnicode.h"
   169 #include "nsUnicodeToEUCTW.h"
   171 // ucvtw
   172 #include "nsUCvTWCID.h"
   173 #include "nsUCvTWDll.h"
   174 #include "nsBIG5ToUnicode.h"
   175 #include "nsUnicodeToBIG5.h"
   176 #include "nsBIG5HKSCSToUnicode.h"
   177 #include "nsUnicodeToBIG5HKSCS.h"
   178 #include "nsUnicodeToHKSCS.h"
   180 // ucvko
   181 #include "nsUCvKOCID.h"
   182 #include "nsUCvKODll.h"
   183 #include "nsJohabToUnicode.h"
   184 #include "nsUnicodeToJohab.h"
   185 #include "nsCP949ToUnicode.h"
   186 #include "nsUnicodeToCP949.h"
   187 #include "nsISO2022KRToUnicode.h"
   189 // ucvcn
   190 #include "nsUCvCnCID.h"
   191 #include "nsHZToUnicode.h"
   192 #include "nsUnicodeToHZ.h"
   193 #include "nsGBKToUnicode.h"
   194 #include "nsUnicodeToGBK.h"
   195 #include "nsGB2312ToUnicodeV2.h"
   196 #include "nsUnicodeToGB2312V2.h"
   197 #include "nsISO2022CNToUnicode.h"
   198 #include "gbku.h"
   200 NS_CONVERTER_REGISTRY_START
   201 NS_UCONV_REG_UNREG("ISO-8859-1", NS_ISO88591TOUNICODE_CID, NS_UNICODETOISO88591_CID)
   202 NS_UCONV_REG_UNREG("windows-1252", NS_CP1252TOUNICODE_CID, NS_UNICODETOCP1252_CID)
   203 NS_UCONV_REG_UNREG("macintosh", NS_MACROMANTOUNICODE_CID, NS_UNICODETOMACROMAN_CID)
   204 NS_UCONV_REG_UNREG("UTF-8", NS_UTF8TOUNICODE_CID, NS_UNICODETOUTF8_CID)
   205 NS_UCONV_REG_UNREG("replacement", NS_REPLACEMENTTOUNICODE_CID, NS_UNICODETOUTF8_CID)
   207   // ucvlatin
   208 NS_UCONV_REG_UNREG("us-ascii", NS_ASCIITOUNICODE_CID, NS_UNICODETOASCII_CID)
   209 NS_UCONV_REG_UNREG("ISO-8859-2", NS_ISO88592TOUNICODE_CID, NS_UNICODETOISO88592_CID)
   210 NS_UCONV_REG_UNREG("ISO-8859-3", NS_ISO88593TOUNICODE_CID, NS_UNICODETOISO88593_CID)
   211 NS_UCONV_REG_UNREG("ISO-8859-4", NS_ISO88594TOUNICODE_CID, NS_UNICODETOISO88594_CID)
   212 NS_UCONV_REG_UNREG("ISO-8859-5", NS_ISO88595TOUNICODE_CID, NS_UNICODETOISO88595_CID)
   213 NS_UCONV_REG_UNREG("ISO-8859-6", NS_ISO88596TOUNICODE_CID, NS_UNICODETOISO88596_CID)
   214 NS_UCONV_REG_UNREG("ISO-8859-6-I", NS_ISO88596ITOUNICODE_CID, NS_UNICODETOISO88596I_CID)
   215 NS_UCONV_REG_UNREG("ISO-8859-6-E", NS_ISO88596ETOUNICODE_CID, NS_UNICODETOISO88596E_CID)
   216 NS_UCONV_REG_UNREG("ISO-8859-7", NS_ISO88597TOUNICODE_CID, NS_UNICODETOISO88597_CID)
   217 NS_UCONV_REG_UNREG("ISO-8859-8", NS_ISO88598TOUNICODE_CID, NS_UNICODETOISO88598_CID)
   218 NS_UCONV_REG_UNREG("ISO-8859-8-I", NS_ISO88598ITOUNICODE_CID, NS_UNICODETOISO88598I_CID)
   219 NS_UCONV_REG_UNREG("ISO-8859-8-E", NS_ISO88598ETOUNICODE_CID, NS_UNICODETOISO88598E_CID)
   220 NS_UCONV_REG_UNREG("ISO-8859-9", NS_ISO88599TOUNICODE_CID, NS_UNICODETOISO88599_CID)
   221 NS_UCONV_REG_UNREG("ISO-8859-10", NS_ISO885910TOUNICODE_CID, NS_UNICODETOISO885910_CID)
   222 NS_UCONV_REG_UNREG("ISO-8859-13", NS_ISO885913TOUNICODE_CID, NS_UNICODETOISO885913_CID)
   223 NS_UCONV_REG_UNREG("ISO-8859-14", NS_ISO885914TOUNICODE_CID, NS_UNICODETOISO885914_CID)
   224 NS_UCONV_REG_UNREG("ISO-8859-15", NS_ISO885915TOUNICODE_CID, NS_UNICODETOISO885915_CID)
   225 NS_UCONV_REG_UNREG("ISO-8859-16", NS_ISO885916TOUNICODE_CID, NS_UNICODETOISO885916_CID)
   226 NS_UCONV_REG_UNREG("ISO-IR-111", NS_ISOIR111TOUNICODE_CID, NS_UNICODETOISOIR111_CID)
   227 NS_UCONV_REG_UNREG("windows-1250", NS_CP1250TOUNICODE_CID, NS_UNICODETOCP1250_CID)
   228 NS_UCONV_REG_UNREG("windows-1251", NS_CP1251TOUNICODE_CID, NS_UNICODETOCP1251_CID)
   229 NS_UCONV_REG_UNREG("windows-1253", NS_CP1253TOUNICODE_CID, NS_UNICODETOCP1253_CID)
   230 NS_UCONV_REG_UNREG("windows-1254", NS_CP1254TOUNICODE_CID, NS_UNICODETOCP1254_CID)
   231 NS_UCONV_REG_UNREG("windows-1255", NS_CP1255TOUNICODE_CID, NS_UNICODETOCP1255_CID)
   232 NS_UCONV_REG_UNREG("windows-1256", NS_CP1256TOUNICODE_CID, NS_UNICODETOCP1256_CID)
   233 NS_UCONV_REG_UNREG("windows-1257", NS_CP1257TOUNICODE_CID, NS_UNICODETOCP1257_CID)
   234 NS_UCONV_REG_UNREG("windows-1258", NS_CP1258TOUNICODE_CID, NS_UNICODETOCP1258_CID)
   235 NS_UCONV_REG_UNREG("TIS-620", NS_TIS620TOUNICODE_CID, NS_UNICODETOTIS620_CID)
   236 NS_UCONV_REG_UNREG("windows-874", NS_CP874TOUNICODE_CID, NS_UNICODETOCP874_CID)
   237 NS_UCONV_REG_UNREG("ISO-8859-11", NS_ISO885911TOUNICODE_CID, NS_UNICODETOISO885911_CID)
   238 NS_UCONV_REG_UNREG("IBM866", NS_CP866TOUNICODE_CID, NS_UNICODETOCP866_CID)
   239 NS_UCONV_REG_UNREG("KOI8-R", NS_KOI8RTOUNICODE_CID, NS_UNICODETOKOI8R_CID)
   240 NS_UCONV_REG_UNREG("KOI8-U", NS_KOI8UTOUNICODE_CID, NS_UNICODETOKOI8U_CID)
   241 NS_UCONV_REG_UNREG("x-mac-ce", NS_MACCETOUNICODE_CID, NS_UNICODETOMACCE_CID)
   242 NS_UCONV_REG_UNREG("x-mac-greek", NS_MACGREEKTOUNICODE_CID, NS_UNICODETOMACGREEK_CID)
   243 NS_UCONV_REG_UNREG("x-mac-turkish", NS_MACTURKISHTOUNICODE_CID, NS_UNICODETOMACTURKISH_CID)
   244 NS_UCONV_REG_UNREG("x-mac-croatian", NS_MACCROATIANTOUNICODE_CID, NS_UNICODETOMACCROATIAN_CID)
   245 NS_UCONV_REG_UNREG("x-mac-romanian", NS_MACROMANIANTOUNICODE_CID, NS_UNICODETOMACROMANIAN_CID)
   246 NS_UCONV_REG_UNREG("x-mac-cyrillic", NS_MACCYRILLICTOUNICODE_CID, NS_UNICODETOMACCYRILLIC_CID)
   247 NS_UCONV_REG_UNREG("x-mac-icelandic", NS_MACICELANDICTOUNICODE_CID, NS_UNICODETOMACICELANDIC_CID)
   248 NS_UCONV_REG_UNREG("armscii-8", NS_ARMSCII8TOUNICODE_CID, NS_UNICODETOARMSCII8_CID)
   249 NS_UCONV_REG_UNREG("x-viet-tcvn5712", NS_TCVN5712TOUNICODE_CID, NS_UNICODETOTCVN5712_CID)
   250 NS_UCONV_REG_UNREG("VISCII", NS_VISCIITOUNICODE_CID, NS_UNICODETOVISCII_CID)
   251 NS_UCONV_REG_UNREG("x-viet-vps", NS_VPSTOUNICODE_CID, NS_UNICODETOVPS_CID)
   252 NS_UCONV_REG_UNREG("UTF-16", NS_UTF16TOUNICODE_CID, NS_UNICODETOUTF16_CID)
   253 NS_UCONV_REG_UNREG("UTF-16BE", NS_UTF16BETOUNICODE_CID, NS_UNICODETOUTF16BE_CID)
   254 NS_UCONV_REG_UNREG("UTF-16LE", NS_UTF16LETOUNICODE_CID, NS_UNICODETOUTF16LE_CID)
   255 NS_UCONV_REG_UNREG("T.61-8bit", NS_T61TOUNICODE_CID, NS_UNICODETOT61_CID)
   256 NS_UCONV_REG_UNREG("x-user-defined", NS_USERDEFINEDTOUNICODE_CID, NS_UNICODETOUSERDEFINED_CID)
   257 NS_UCONV_REG_UNREG("x-mac-arabic" , NS_MACARABICTOUNICODE_CID, NS_UNICODETOMACARABIC_CID)
   258 NS_UCONV_REG_UNREG("x-mac-devanagari" , NS_MACDEVANAGARITOUNICODE_CID, NS_UNICODETOMACDEVANAGARI_CID)
   259 NS_UCONV_REG_UNREG("x-mac-farsi" , NS_MACFARSITOUNICODE_CID, NS_UNICODETOMACFARSI_CID)
   260 NS_UCONV_REG_UNREG("x-mac-gurmukhi" , NS_MACGURMUKHITOUNICODE_CID, NS_UNICODETOMACGURMUKHI_CID)
   261 NS_UCONV_REG_UNREG("x-mac-gujarati" , NS_MACGUJARATITOUNICODE_CID, NS_UNICODETOMACGUJARATI_CID)
   262 NS_UCONV_REG_UNREG("x-mac-hebrew" , NS_MACHEBREWTOUNICODE_CID, NS_UNICODETOMACHEBREW_CID)
   264   // ucvibm
   265 NS_UCONV_REG_UNREG("IBM850", NS_CP850TOUNICODE_CID, NS_UNICODETOCP850_CID)
   266 NS_UCONV_REG_UNREG("IBM852", NS_CP852TOUNICODE_CID, NS_UNICODETOCP852_CID)
   267 NS_UCONV_REG_UNREG("IBM855", NS_CP855TOUNICODE_CID, NS_UNICODETOCP855_CID)
   268 NS_UCONV_REG_UNREG("IBM857", NS_CP857TOUNICODE_CID, NS_UNICODETOCP857_CID)
   269 NS_UCONV_REG_UNREG("IBM862", NS_CP862TOUNICODE_CID, NS_UNICODETOCP862_CID)
   270 NS_UCONV_REG_UNREG("IBM864", NS_CP864TOUNICODE_CID, NS_UNICODETOCP864_CID)
   272     // ucvja
   273 NS_UCONV_REG_UNREG("Shift_JIS", NS_SJISTOUNICODE_CID, NS_UNICODETOSJIS_CID)
   274 NS_UCONV_REG_UNREG("ISO-2022-JP", NS_ISO2022JPTOUNICODE_CID, NS_UNICODETOISO2022JP_CID)
   275 NS_UCONV_REG_UNREG("EUC-JP", NS_EUCJPTOUNICODE_CID, NS_UNICODETOEUCJP_CID)
   277 NS_UCONV_REG_UNREG_ENCODER("jis_0201" , NS_UNICODETOJISX0201_CID)
   279     // ucvtw2
   280 NS_UCONV_REG_UNREG("x-euc-tw", NS_EUCTWTOUNICODE_CID, NS_UNICODETOEUCTW_CID)
   282     // ucvtw
   283 NS_UCONV_REG_UNREG("Big5", NS_BIG5TOUNICODE_CID, NS_UNICODETOBIG5_CID)
   284 NS_UCONV_REG_UNREG("Big5-HKSCS", NS_BIG5HKSCSTOUNICODE_CID, NS_UNICODETOBIG5HKSCS_CID)
   286 NS_UCONV_REG_UNREG_ENCODER("hkscs-1" , NS_UNICODETOHKSCS_CID)
   288     // ucvko
   289 NS_UCONV_REG_UNREG("EUC-KR", NS_EUCKRTOUNICODE_CID, NS_UNICODETOEUCKR_CID)
   290 NS_UCONV_REG_UNREG("x-johab", NS_JOHABTOUNICODE_CID, NS_UNICODETOJOHAB_CID)
   291 NS_UCONV_REG_UNREG_DECODER("ISO-2022-KR", NS_ISO2022KRTOUNICODE_CID)
   293 // ucvcn
   294 NS_UCONV_REG_UNREG("GB2312", NS_GB2312TOUNICODE_CID, NS_UNICODETOGB2312_CID)
   295 NS_UCONV_REG_UNREG("gbk", NS_GBKTOUNICODE_CID, NS_UNICODETOGBK_CID)
   296 NS_UCONV_REG_UNREG("HZ-GB-2312", NS_HZTOUNICODE_CID, NS_UNICODETOHZ_CID)
   297 NS_UCONV_REG_UNREG("gb18030", NS_GB18030TOUNICODE_CID, NS_UNICODETOGB18030_CID)
   298 NS_UCONV_REG_UNREG_DECODER("ISO-2022-CN", NS_ISO2022CNTOUNICODE_CID)
   300 { NS_TITLE_BUNDLE_CATEGORY, "chrome://global/locale/charsetTitles.properties", "" },
   301 { NS_DATA_BUNDLE_CATEGORY, "resource://gre-resources/charsetData.properties", "" },
   303 NS_CONVERTER_REGISTRY_END
   305 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToUTF8)
   306 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUTF8ToUnicode)
   307 NS_GENERIC_FACTORY_CONSTRUCTOR(nsReplacementToUnicode)
   309 // ucvlatin
   310 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUTF16ToUnicode)
   311 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUTF16BEToUnicode)
   312 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUTF16LEToUnicode)
   313 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToUTF16BE)
   314 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToUTF16LE)
   315 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToUTF16)
   317 // ucvibm
   319 // ucvja
   320 NS_GENERIC_FACTORY_CONSTRUCTOR(nsShiftJISToUnicode)
   321 NS_GENERIC_FACTORY_CONSTRUCTOR(nsEUCJPToUnicodeV2)
   322 NS_GENERIC_FACTORY_CONSTRUCTOR(nsISO2022JPToUnicodeV2)
   323 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToISO2022JP)
   325 // ucvtw2
   327 // ucvtw
   329 // ucvko
   330 NS_GENERIC_FACTORY_CONSTRUCTOR(nsISO2022KRToUnicode)
   332 // ucvcn
   333 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToGB2312V2)
   334 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToGBK)
   335 NS_GENERIC_FACTORY_CONSTRUCTOR(nsHZToUnicode)
   336 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToHZ)
   337 NS_GENERIC_FACTORY_CONSTRUCTOR(nsGB18030ToUnicode)
   338 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToGB18030)
   339 NS_GENERIC_FACTORY_CONSTRUCTOR(nsISO2022CNToUnicode)
   342 //----------------------------------------------------------------------------
   343 // Global functions and data [declaration]
   345 // ucvja
   346 const uint16_t g_uf0201Mapping[] = {
   347 #include "jis0201.uf"
   348 };
   350 const uint16_t g_uf0201GLMapping[] = {
   351 #include "jis0201gl.uf"
   352 };
   354 const uint16_t g_uf0208Mapping[] = {
   355 #include "jis0208.uf"
   356 };
   358 const uint16_t g_uf0208extMapping[] = {
   359 #include "jis0208ext.uf"
   360 };
   362 // ucvtw2
   363 const uint16_t g_ufCNS1MappingTable[] = {
   364 #include "cns_1.uf"
   365 };
   367 const uint16_t g_ufCNS2MappingTable[] = {
   368 #include "cns_2.uf"
   369 };
   371 const uint16_t g_ufCNS3MappingTable[] = {
   372 #include "cns3.uf"
   373 };
   375 const uint16_t g_ufCNS4MappingTable[] = {
   376 #include "cns4.uf"
   377 };
   379 const uint16_t g_ufCNS5MappingTable[] = {
   380 #include "cns5.uf"
   381 };
   383 const uint16_t g_ufCNS6MappingTable[] = {
   384 #include "cns6.uf"
   385 };
   387 const uint16_t g_ufCNS7MappingTable[] = {
   388 #include "cns7.uf"
   389 };
   391 const uint16_t g_utCNS1MappingTable[] = {
   392 #include "cns_1.ut"
   393 };
   395 const uint16_t g_utCNS2MappingTable[] = {
   396 #include "cns_2.ut"
   397 };
   399 const uint16_t g_utCNS3MappingTable[] = {
   400 #include "cns3.ut"
   401 };
   403 const uint16_t g_utCNS4MappingTable[] = {
   404 #include "cns4.ut"
   405 };
   407 const uint16_t g_utCNS5MappingTable[] = {
   408 #include "cns5.ut"
   409 };
   411 const uint16_t g_utCNS6MappingTable[] = {
   412 #include "cns6.ut"
   413 };
   415 const uint16_t g_utCNS7MappingTable[] = {
   416 #include "cns7.ut"
   417 };
   419 const uint16_t g_ASCIIMappingTable[] = {
   420   0x0001, 0x0004, 0x0005, 0x0008, 0x0000, 0x0000, 0x007F, 0x0000
   421 };
   423 // ucvtw
   424 const uint16_t g_ufBig5Mapping[] = {
   425 #include "big5.uf"
   426 };
   428 const uint16_t g_utBIG5Mapping[] = {
   429 #include "big5.ut"
   430 };
   432 const uint16_t g_ufBig5HKSCSMapping[] = {
   433 #include "hkscs.uf"
   434 };
   436 const uint16_t g_utBig5HKSCSMapping[] = {
   437 #include "hkscs.ut"
   438 };
   440 // ucvko
   441 const uint16_t g_utKSC5601Mapping[] = {
   442 #include "u20kscgl.ut"
   443 };
   445 const uint16_t g_ufKSC5601Mapping[] = {
   446 #include "u20kscgl.uf"
   447 };
   449 const uint16_t g_HangulNullMapping[] ={
   450   0x0001, 0x0004, 0x0005, 0x0008, 0x0000, 0xAC00, 0xD7A3, 0xAC00
   451 };
   453 const uint16_t g_ufJohabJamoMapping[] ={   
   454 #include "johabjamo.uf"
   455 };
   457 NS_GENERIC_FACTORY_CONSTRUCTOR(nsCharsetConverterManager)
   458 NS_GENERIC_FACTORY_CONSTRUCTOR(nsTextToSubURI)
   459 NS_GENERIC_FACTORY_CONSTRUCTOR(nsUTF8ConverterService)
   460 NS_GENERIC_FACTORY_CONSTRUCTOR(nsConverterInputStream)
   461 NS_GENERIC_FACTORY_CONSTRUCTOR(nsConverterOutputStream)
   462 NS_GENERIC_FACTORY_CONSTRUCTOR(nsScriptableUnicodeConverter)
   464 NS_DEFINE_NAMED_CID(NS_ICHARSETCONVERTERMANAGER_CID);
   465 NS_DEFINE_NAMED_CID(NS_TEXTTOSUBURI_CID);
   466 NS_DEFINE_NAMED_CID(NS_CONVERTERINPUTSTREAM_CID);
   467 NS_DEFINE_NAMED_CID(NS_CONVERTEROUTPUTSTREAM_CID);
   468 NS_DEFINE_NAMED_CID(NS_ISCRIPTABLEUNICODECONVERTER_CID);
   469 NS_DEFINE_NAMED_CID(NS_UTF8CONVERTERSERVICE_CID);
   470 NS_DEFINE_NAMED_CID(NS_ISO88591TOUNICODE_CID);
   471 NS_DEFINE_NAMED_CID(NS_CP1252TOUNICODE_CID);
   472 NS_DEFINE_NAMED_CID(NS_MACROMANTOUNICODE_CID);
   473 NS_DEFINE_NAMED_CID(NS_UTF8TOUNICODE_CID);
   474 NS_DEFINE_NAMED_CID(NS_REPLACEMENTTOUNICODE_CID);
   475 NS_DEFINE_NAMED_CID(NS_UNICODETOISO88591_CID);
   476 NS_DEFINE_NAMED_CID(NS_UNICODETOCP1252_CID);
   477 NS_DEFINE_NAMED_CID(NS_UNICODETOMACROMAN_CID);
   478 NS_DEFINE_NAMED_CID(NS_UNICODETOUTF8_CID);
   479 NS_DEFINE_NAMED_CID(NS_ASCIITOUNICODE_CID);
   480 NS_DEFINE_NAMED_CID(NS_ISO88592TOUNICODE_CID);
   481 NS_DEFINE_NAMED_CID(NS_ISO88593TOUNICODE_CID);
   482 NS_DEFINE_NAMED_CID(NS_ISO88594TOUNICODE_CID);
   483 NS_DEFINE_NAMED_CID(NS_ISO88595TOUNICODE_CID);
   484 NS_DEFINE_NAMED_CID(NS_ISO88596TOUNICODE_CID);
   485 NS_DEFINE_NAMED_CID(NS_ISO88596ITOUNICODE_CID);
   486 NS_DEFINE_NAMED_CID(NS_ISO88596ETOUNICODE_CID);
   487 NS_DEFINE_NAMED_CID(NS_ISO88597TOUNICODE_CID);
   488 NS_DEFINE_NAMED_CID(NS_ISO88598TOUNICODE_CID);
   489 NS_DEFINE_NAMED_CID(NS_ISO88598ITOUNICODE_CID);
   490 NS_DEFINE_NAMED_CID(NS_ISO88598ETOUNICODE_CID);
   491 NS_DEFINE_NAMED_CID(NS_ISO88599TOUNICODE_CID);
   492 NS_DEFINE_NAMED_CID(NS_ISO885910TOUNICODE_CID);
   493 NS_DEFINE_NAMED_CID(NS_ISO885913TOUNICODE_CID);
   494 NS_DEFINE_NAMED_CID(NS_ISO885914TOUNICODE_CID);
   495 NS_DEFINE_NAMED_CID(NS_ISO885915TOUNICODE_CID);
   496 NS_DEFINE_NAMED_CID(NS_ISO885916TOUNICODE_CID);
   497 NS_DEFINE_NAMED_CID(NS_ISOIR111TOUNICODE_CID);
   498 NS_DEFINE_NAMED_CID(NS_CP1250TOUNICODE_CID);
   499 NS_DEFINE_NAMED_CID(NS_CP1251TOUNICODE_CID);
   500 NS_DEFINE_NAMED_CID(NS_CP1253TOUNICODE_CID);
   501 NS_DEFINE_NAMED_CID(NS_CP1254TOUNICODE_CID);
   502 NS_DEFINE_NAMED_CID(NS_CP1255TOUNICODE_CID);
   503 NS_DEFINE_NAMED_CID(NS_CP1256TOUNICODE_CID);
   504 NS_DEFINE_NAMED_CID(NS_CP1257TOUNICODE_CID);
   505 NS_DEFINE_NAMED_CID(NS_CP1258TOUNICODE_CID);
   506 NS_DEFINE_NAMED_CID(NS_TIS620TOUNICODE_CID);
   507 NS_DEFINE_NAMED_CID(NS_ISO885911TOUNICODE_CID);
   508 NS_DEFINE_NAMED_CID(NS_CP874TOUNICODE_CID);
   509 NS_DEFINE_NAMED_CID(NS_CP866TOUNICODE_CID);
   510 NS_DEFINE_NAMED_CID(NS_KOI8RTOUNICODE_CID);
   511 NS_DEFINE_NAMED_CID(NS_KOI8UTOUNICODE_CID);
   512 NS_DEFINE_NAMED_CID(NS_MACCETOUNICODE_CID);
   513 NS_DEFINE_NAMED_CID(NS_MACGREEKTOUNICODE_CID);
   514 NS_DEFINE_NAMED_CID(NS_MACTURKISHTOUNICODE_CID);
   515 NS_DEFINE_NAMED_CID(NS_MACCROATIANTOUNICODE_CID);
   516 NS_DEFINE_NAMED_CID(NS_MACROMANIANTOUNICODE_CID);
   517 NS_DEFINE_NAMED_CID(NS_MACCYRILLICTOUNICODE_CID);
   518 NS_DEFINE_NAMED_CID(NS_MACICELANDICTOUNICODE_CID);
   519 NS_DEFINE_NAMED_CID(NS_ARMSCII8TOUNICODE_CID);
   520 NS_DEFINE_NAMED_CID(NS_TCVN5712TOUNICODE_CID);
   521 NS_DEFINE_NAMED_CID(NS_VISCIITOUNICODE_CID);
   522 NS_DEFINE_NAMED_CID(NS_VPSTOUNICODE_CID);
   523 NS_DEFINE_NAMED_CID(NS_UTF16TOUNICODE_CID);
   524 NS_DEFINE_NAMED_CID(NS_UTF16BETOUNICODE_CID);
   525 NS_DEFINE_NAMED_CID(NS_UTF16LETOUNICODE_CID);
   526 NS_DEFINE_NAMED_CID(NS_T61TOUNICODE_CID);
   527 NS_DEFINE_NAMED_CID(NS_USERDEFINEDTOUNICODE_CID);
   528 NS_DEFINE_NAMED_CID(NS_MACARABICTOUNICODE_CID);
   529 NS_DEFINE_NAMED_CID(NS_MACDEVANAGARITOUNICODE_CID);
   530 NS_DEFINE_NAMED_CID(NS_MACFARSITOUNICODE_CID);
   531 NS_DEFINE_NAMED_CID(NS_MACGURMUKHITOUNICODE_CID);
   532 NS_DEFINE_NAMED_CID(NS_MACGUJARATITOUNICODE_CID);
   533 NS_DEFINE_NAMED_CID(NS_MACHEBREWTOUNICODE_CID);
   534 NS_DEFINE_NAMED_CID(NS_UNICODETOASCII_CID);
   535 NS_DEFINE_NAMED_CID(NS_UNICODETOISO88592_CID);
   536 NS_DEFINE_NAMED_CID(NS_UNICODETOISO88593_CID);
   537 NS_DEFINE_NAMED_CID(NS_UNICODETOISO88594_CID);
   538 NS_DEFINE_NAMED_CID(NS_UNICODETOISO88595_CID);
   539 NS_DEFINE_NAMED_CID(NS_UNICODETOISO88596_CID);
   540 NS_DEFINE_NAMED_CID(NS_UNICODETOISO88596I_CID);
   541 NS_DEFINE_NAMED_CID(NS_UNICODETOISO88596E_CID);
   542 NS_DEFINE_NAMED_CID(NS_UNICODETOISO88597_CID);
   543 NS_DEFINE_NAMED_CID(NS_UNICODETOISO88598_CID);
   544 NS_DEFINE_NAMED_CID(NS_UNICODETOISO88598I_CID);
   545 NS_DEFINE_NAMED_CID(NS_UNICODETOISO88598E_CID);
   546 NS_DEFINE_NAMED_CID(NS_UNICODETOISO88599_CID);
   547 NS_DEFINE_NAMED_CID(NS_UNICODETOISO885910_CID);
   548 NS_DEFINE_NAMED_CID(NS_UNICODETOISO885913_CID);
   549 NS_DEFINE_NAMED_CID(NS_UNICODETOISO885914_CID);
   550 NS_DEFINE_NAMED_CID(NS_UNICODETOISO885915_CID);
   551 NS_DEFINE_NAMED_CID(NS_UNICODETOISO885916_CID);
   552 NS_DEFINE_NAMED_CID(NS_UNICODETOISOIR111_CID);
   553 NS_DEFINE_NAMED_CID(NS_UNICODETOCP1250_CID);
   554 NS_DEFINE_NAMED_CID(NS_UNICODETOCP1251_CID);
   555 NS_DEFINE_NAMED_CID(NS_UNICODETOCP1253_CID);
   556 NS_DEFINE_NAMED_CID(NS_UNICODETOCP1254_CID);
   557 NS_DEFINE_NAMED_CID(NS_UNICODETOCP1255_CID);
   558 NS_DEFINE_NAMED_CID(NS_UNICODETOCP1256_CID);
   559 NS_DEFINE_NAMED_CID(NS_UNICODETOCP1257_CID);
   560 NS_DEFINE_NAMED_CID(NS_UNICODETOCP1258_CID);
   561 NS_DEFINE_NAMED_CID(NS_UNICODETOTIS620_CID);
   562 NS_DEFINE_NAMED_CID(NS_UNICODETOISO885911_CID);
   563 NS_DEFINE_NAMED_CID(NS_UNICODETOCP874_CID);
   564 NS_DEFINE_NAMED_CID(NS_UNICODETOCP866_CID);
   565 NS_DEFINE_NAMED_CID(NS_UNICODETOKOI8R_CID);
   566 NS_DEFINE_NAMED_CID(NS_UNICODETOKOI8U_CID);
   567 NS_DEFINE_NAMED_CID(NS_UNICODETOMACCE_CID);
   568 NS_DEFINE_NAMED_CID(NS_UNICODETOMACGREEK_CID);
   569 NS_DEFINE_NAMED_CID(NS_UNICODETOMACTURKISH_CID);
   570 NS_DEFINE_NAMED_CID(NS_UNICODETOMACCROATIAN_CID);
   571 NS_DEFINE_NAMED_CID(NS_UNICODETOMACROMANIAN_CID);
   572 NS_DEFINE_NAMED_CID(NS_UNICODETOMACCYRILLIC_CID);
   573 NS_DEFINE_NAMED_CID(NS_UNICODETOMACICELANDIC_CID);
   574 NS_DEFINE_NAMED_CID(NS_UNICODETOARMSCII8_CID);
   575 NS_DEFINE_NAMED_CID(NS_UNICODETOTCVN5712_CID);
   576 NS_DEFINE_NAMED_CID(NS_UNICODETOVISCII_CID);
   577 NS_DEFINE_NAMED_CID(NS_UNICODETOVPS_CID);
   578 NS_DEFINE_NAMED_CID(NS_UNICODETOUTF16BE_CID);
   579 NS_DEFINE_NAMED_CID(NS_UNICODETOUTF16LE_CID);
   580 NS_DEFINE_NAMED_CID(NS_UNICODETOUTF16_CID);
   581 NS_DEFINE_NAMED_CID(NS_UNICODETOT61_CID);
   582 NS_DEFINE_NAMED_CID(NS_UNICODETOUSERDEFINED_CID);
   583 NS_DEFINE_NAMED_CID(NS_UNICODETOMACARABIC_CID);
   584 NS_DEFINE_NAMED_CID(NS_UNICODETOMACDEVANAGARI_CID);
   585 NS_DEFINE_NAMED_CID(NS_UNICODETOMACFARSI_CID);
   586 NS_DEFINE_NAMED_CID(NS_UNICODETOMACGURMUKHI_CID);
   587 NS_DEFINE_NAMED_CID(NS_UNICODETOMACGUJARATI_CID);
   588 NS_DEFINE_NAMED_CID(NS_UNICODETOMACHEBREW_CID);
   589 NS_DEFINE_NAMED_CID(NS_CP850TOUNICODE_CID);
   590 NS_DEFINE_NAMED_CID(NS_CP852TOUNICODE_CID);
   591 NS_DEFINE_NAMED_CID(NS_CP855TOUNICODE_CID);
   592 NS_DEFINE_NAMED_CID(NS_CP857TOUNICODE_CID);
   593 NS_DEFINE_NAMED_CID(NS_CP862TOUNICODE_CID);
   594 NS_DEFINE_NAMED_CID(NS_CP864TOUNICODE_CID);
   595 NS_DEFINE_NAMED_CID(NS_UNICODETOCP850_CID);
   596 NS_DEFINE_NAMED_CID(NS_UNICODETOCP852_CID);
   597 NS_DEFINE_NAMED_CID(NS_UNICODETOCP855_CID);
   598 NS_DEFINE_NAMED_CID(NS_UNICODETOCP857_CID);
   599 NS_DEFINE_NAMED_CID(NS_UNICODETOCP862_CID);
   600 NS_DEFINE_NAMED_CID(NS_UNICODETOCP864_CID);
   601 NS_DEFINE_NAMED_CID(NS_SJISTOUNICODE_CID);
   602 NS_DEFINE_NAMED_CID(NS_EUCJPTOUNICODE_CID);
   603 NS_DEFINE_NAMED_CID( NS_ISO2022JPTOUNICODE_CID);
   604 NS_DEFINE_NAMED_CID(NS_UNICODETOSJIS_CID);
   605 NS_DEFINE_NAMED_CID(NS_UNICODETOEUCJP_CID);
   606 NS_DEFINE_NAMED_CID(NS_UNICODETOISO2022JP_CID);
   607 NS_DEFINE_NAMED_CID(NS_UNICODETOJISX0201_CID);
   608 NS_DEFINE_NAMED_CID(NS_EUCTWTOUNICODE_CID);
   609 NS_DEFINE_NAMED_CID(NS_UNICODETOEUCTW_CID);
   610 NS_DEFINE_NAMED_CID(NS_UNICODETOBIG5_CID);
   611 NS_DEFINE_NAMED_CID(NS_BIG5TOUNICODE_CID);
   612 NS_DEFINE_NAMED_CID(NS_UNICODETOBIG5HKSCS_CID);
   613 NS_DEFINE_NAMED_CID(NS_UNICODETOHKSCS_CID);
   614 NS_DEFINE_NAMED_CID(NS_BIG5HKSCSTOUNICODE_CID);
   615 NS_DEFINE_NAMED_CID(NS_EUCKRTOUNICODE_CID);
   616 NS_DEFINE_NAMED_CID(NS_UNICODETOEUCKR_CID);
   617 NS_DEFINE_NAMED_CID(NS_JOHABTOUNICODE_CID);
   618 NS_DEFINE_NAMED_CID(NS_UNICODETOJOHAB_CID);
   619 NS_DEFINE_NAMED_CID(NS_ISO2022KRTOUNICODE_CID);
   620 NS_DEFINE_NAMED_CID(NS_GB2312TOUNICODE_CID);
   621 NS_DEFINE_NAMED_CID(NS_UNICODETOGB2312_CID);
   622 NS_DEFINE_NAMED_CID(NS_GBKTOUNICODE_CID);
   623 NS_DEFINE_NAMED_CID(NS_UNICODETOGBK_CID);
   624 NS_DEFINE_NAMED_CID(NS_HZTOUNICODE_CID);
   625 NS_DEFINE_NAMED_CID(NS_UNICODETOHZ_CID);
   626 NS_DEFINE_NAMED_CID(NS_GB18030TOUNICODE_CID);
   627 NS_DEFINE_NAMED_CID(NS_UNICODETOGB18030_CID);
   628 NS_DEFINE_NAMED_CID(NS_ISO2022CNTOUNICODE_CID);
   630 static const mozilla::Module::CIDEntry kUConvCIDs[] = {
   631   { &kNS_ICHARSETCONVERTERMANAGER_CID, false, nullptr, nsCharsetConverterManagerConstructor },
   632   { &kNS_TEXTTOSUBURI_CID, false, nullptr, nsTextToSubURIConstructor },
   633   { &kNS_CONVERTERINPUTSTREAM_CID, false, nullptr, nsConverterInputStreamConstructor },
   634   { &kNS_CONVERTEROUTPUTSTREAM_CID, false, nullptr, nsConverterOutputStreamConstructor },
   635   { &kNS_ISCRIPTABLEUNICODECONVERTER_CID, false, nullptr, nsScriptableUnicodeConverterConstructor },
   636   { &kNS_UTF8CONVERTERSERVICE_CID, false, nullptr, nsUTF8ConverterServiceConstructor },
   637   { &kNS_ISO88591TOUNICODE_CID, false, nullptr, nsISO88591ToUnicodeConstructor },
   638   { &kNS_CP1252TOUNICODE_CID, false, nullptr, nsCP1252ToUnicodeConstructor },
   639   { &kNS_MACROMANTOUNICODE_CID, false, nullptr, nsMacRomanToUnicodeConstructor },
   640   { &kNS_REPLACEMENTTOUNICODE_CID, false, nullptr, nsReplacementToUnicodeConstructor },
   641   { &kNS_UTF8TOUNICODE_CID, false, nullptr, nsUTF8ToUnicodeConstructor },
   642   { &kNS_UNICODETOISO88591_CID, false, nullptr, nsUnicodeToISO88591Constructor },
   643   { &kNS_UNICODETOCP1252_CID, false, nullptr, nsUnicodeToCP1252Constructor },
   644   { &kNS_UNICODETOMACROMAN_CID, false, nullptr, nsUnicodeToMacRomanConstructor },
   645   { &kNS_UNICODETOUTF8_CID, false, nullptr, nsUnicodeToUTF8Constructor },
   646   { &kNS_ASCIITOUNICODE_CID, false, nullptr, nsAsciiToUnicodeConstructor },
   647   { &kNS_ISO88592TOUNICODE_CID, false, nullptr, nsISO88592ToUnicodeConstructor },
   648   { &kNS_ISO88593TOUNICODE_CID, false, nullptr, nsISO88593ToUnicodeConstructor },
   649   { &kNS_ISO88594TOUNICODE_CID, false, nullptr, nsISO88594ToUnicodeConstructor },
   650   { &kNS_ISO88595TOUNICODE_CID, false, nullptr, nsISO88595ToUnicodeConstructor },
   651   { &kNS_ISO88596TOUNICODE_CID, false, nullptr, nsISO88596ToUnicodeConstructor },
   652   { &kNS_ISO88596ITOUNICODE_CID, false, nullptr, nsISO88596IToUnicodeConstructor },
   653   { &kNS_ISO88596ETOUNICODE_CID, false, nullptr, nsISO88596EToUnicodeConstructor },
   654   { &kNS_ISO88597TOUNICODE_CID, false, nullptr, nsISO88597ToUnicodeConstructor },
   655   { &kNS_ISO88598TOUNICODE_CID, false, nullptr, nsISO88598ToUnicodeConstructor },
   656   { &kNS_ISO88598ITOUNICODE_CID, false, nullptr, nsISO88598IToUnicodeConstructor },
   657   { &kNS_ISO88598ETOUNICODE_CID, false, nullptr, nsISO88598EToUnicodeConstructor },
   658   { &kNS_ISO88599TOUNICODE_CID, false, nullptr, nsISO88599ToUnicodeConstructor },
   659   { &kNS_ISO885910TOUNICODE_CID, false, nullptr, nsISO885910ToUnicodeConstructor },
   660   { &kNS_ISO885913TOUNICODE_CID, false, nullptr, nsISO885913ToUnicodeConstructor },
   661   { &kNS_ISO885914TOUNICODE_CID, false, nullptr, nsISO885914ToUnicodeConstructor },
   662   { &kNS_ISO885915TOUNICODE_CID, false, nullptr, nsISO885915ToUnicodeConstructor },
   663   { &kNS_ISO885916TOUNICODE_CID, false, nullptr, nsISO885916ToUnicodeConstructor },
   664   { &kNS_ISOIR111TOUNICODE_CID, false, nullptr, nsISOIR111ToUnicodeConstructor },
   665   { &kNS_CP1250TOUNICODE_CID, false, nullptr, nsCP1250ToUnicodeConstructor },
   666   { &kNS_CP1251TOUNICODE_CID, false, nullptr, nsCP1251ToUnicodeConstructor },
   667   { &kNS_CP1253TOUNICODE_CID, false, nullptr, nsCP1253ToUnicodeConstructor },
   668   { &kNS_CP1254TOUNICODE_CID, false, nullptr, nsCP1254ToUnicodeConstructor },
   669   { &kNS_CP1255TOUNICODE_CID, false, nullptr, nsCP1255ToUnicodeConstructor },
   670   { &kNS_CP1256TOUNICODE_CID, false, nullptr, nsCP1256ToUnicodeConstructor },
   671   { &kNS_CP1257TOUNICODE_CID, false, nullptr, nsCP1257ToUnicodeConstructor },
   672   { &kNS_CP1258TOUNICODE_CID, false, nullptr, nsCP1258ToUnicodeConstructor },
   673   { &kNS_TIS620TOUNICODE_CID, false, nullptr, nsTIS620ToUnicodeConstructor },
   674   { &kNS_ISO885911TOUNICODE_CID, false, nullptr, nsISO885911ToUnicodeConstructor },
   675   { &kNS_CP874TOUNICODE_CID, false, nullptr, nsCP874ToUnicodeConstructor },
   676   { &kNS_CP866TOUNICODE_CID, false, nullptr, nsCP866ToUnicodeConstructor },
   677   { &kNS_KOI8RTOUNICODE_CID, false, nullptr, nsKOI8RToUnicodeConstructor },
   678   { &kNS_KOI8UTOUNICODE_CID, false, nullptr, nsKOI8UToUnicodeConstructor },
   679   { &kNS_MACCETOUNICODE_CID, false, nullptr, nsMacCEToUnicodeConstructor },
   680   { &kNS_MACGREEKTOUNICODE_CID, false, nullptr, nsMacGreekToUnicodeConstructor },
   681   { &kNS_MACTURKISHTOUNICODE_CID, false, nullptr, nsMacTurkishToUnicodeConstructor },
   682   { &kNS_MACCROATIANTOUNICODE_CID, false, nullptr, nsMacCroatianToUnicodeConstructor },
   683   { &kNS_MACROMANIANTOUNICODE_CID, false, nullptr, nsMacRomanianToUnicodeConstructor },
   684   { &kNS_MACCYRILLICTOUNICODE_CID, false, nullptr, nsMacCyrillicToUnicodeConstructor },
   685   { &kNS_MACICELANDICTOUNICODE_CID, false, nullptr, nsMacIcelandicToUnicodeConstructor },
   686   { &kNS_ARMSCII8TOUNICODE_CID, false, nullptr, nsARMSCII8ToUnicodeConstructor },
   687   { &kNS_TCVN5712TOUNICODE_CID, false, nullptr, nsTCVN5712ToUnicodeConstructor },
   688   { &kNS_VISCIITOUNICODE_CID, false, nullptr, nsVISCIIToUnicodeConstructor },
   689   { &kNS_VPSTOUNICODE_CID, false, nullptr, nsVPSToUnicodeConstructor },
   690   { &kNS_UTF16TOUNICODE_CID, false, nullptr, nsUTF16ToUnicodeConstructor },
   691   { &kNS_UTF16BETOUNICODE_CID, false, nullptr, nsUTF16BEToUnicodeConstructor },
   692   { &kNS_UTF16LETOUNICODE_CID, false, nullptr, nsUTF16LEToUnicodeConstructor },
   693   { &kNS_T61TOUNICODE_CID, false, nullptr, nsT61ToUnicodeConstructor },
   694   { &kNS_USERDEFINEDTOUNICODE_CID, false, nullptr, nsUserDefinedToUnicodeConstructor },
   695   { &kNS_MACARABICTOUNICODE_CID, false, nullptr, nsMacArabicToUnicodeConstructor },
   696   { &kNS_MACDEVANAGARITOUNICODE_CID, false, nullptr, nsMacDevanagariToUnicodeConstructor },
   697   { &kNS_MACFARSITOUNICODE_CID, false, nullptr, nsMacFarsiToUnicodeConstructor },
   698   { &kNS_MACGURMUKHITOUNICODE_CID, false, nullptr, nsMacGurmukhiToUnicodeConstructor },
   699   { &kNS_MACGUJARATITOUNICODE_CID, false, nullptr, nsMacGujaratiToUnicodeConstructor },
   700   { &kNS_MACHEBREWTOUNICODE_CID, false, nullptr, nsMacHebrewToUnicodeConstructor },
   701   { &kNS_UNICODETOASCII_CID, false, nullptr, nsUnicodeToAsciiConstructor },
   702   { &kNS_UNICODETOISO88592_CID, false, nullptr, nsUnicodeToISO88592Constructor },
   703   { &kNS_UNICODETOISO88593_CID, false, nullptr, nsUnicodeToISO88593Constructor },
   704   { &kNS_UNICODETOISO88594_CID, false, nullptr, nsUnicodeToISO88594Constructor },
   705   { &kNS_UNICODETOISO88595_CID, false, nullptr, nsUnicodeToISO88595Constructor },
   706   { &kNS_UNICODETOISO88596_CID, false, nullptr, nsUnicodeToISO88596Constructor },
   707   { &kNS_UNICODETOISO88596I_CID, false, nullptr, nsUnicodeToISO88596IConstructor },
   708   { &kNS_UNICODETOISO88596E_CID, false, nullptr, nsUnicodeToISO88596EConstructor },
   709   { &kNS_UNICODETOISO88597_CID, false, nullptr, nsUnicodeToISO88597Constructor },
   710   { &kNS_UNICODETOISO88598_CID, false, nullptr, nsUnicodeToISO88598Constructor },
   711   { &kNS_UNICODETOISO88598I_CID, false, nullptr, nsUnicodeToISO88598IConstructor },
   712   { &kNS_UNICODETOISO88598E_CID, false, nullptr, nsUnicodeToISO88598EConstructor },
   713   { &kNS_UNICODETOISO88599_CID, false, nullptr, nsUnicodeToISO88599Constructor },
   714   { &kNS_UNICODETOISO885910_CID, false, nullptr, nsUnicodeToISO885910Constructor },
   715   { &kNS_UNICODETOISO885913_CID, false, nullptr, nsUnicodeToISO885913Constructor },
   716   { &kNS_UNICODETOISO885914_CID, false, nullptr, nsUnicodeToISO885914Constructor },
   717   { &kNS_UNICODETOISO885915_CID, false, nullptr, nsUnicodeToISO885915Constructor },
   718   { &kNS_UNICODETOISO885916_CID, false, nullptr, nsUnicodeToISO885916Constructor },
   719   { &kNS_UNICODETOISOIR111_CID, false, nullptr, nsUnicodeToISOIR111Constructor },
   720   { &kNS_UNICODETOCP1250_CID, false, nullptr, nsUnicodeToCP1250Constructor },
   721   { &kNS_UNICODETOCP1251_CID, false, nullptr, nsUnicodeToCP1251Constructor },
   722   { &kNS_UNICODETOCP1253_CID, false, nullptr, nsUnicodeToCP1253Constructor },
   723   { &kNS_UNICODETOCP1254_CID, false, nullptr, nsUnicodeToCP1254Constructor },
   724   { &kNS_UNICODETOCP1255_CID, false, nullptr, nsUnicodeToCP1255Constructor },
   725   { &kNS_UNICODETOCP1256_CID, false, nullptr, nsUnicodeToCP1256Constructor },
   726   { &kNS_UNICODETOCP1257_CID, false, nullptr, nsUnicodeToCP1257Constructor },
   727   { &kNS_UNICODETOCP1258_CID, false, nullptr, nsUnicodeToCP1258Constructor },
   728   { &kNS_UNICODETOTIS620_CID, false, nullptr, nsUnicodeToTIS620Constructor },
   729   { &kNS_UNICODETOISO885911_CID, false, nullptr, nsUnicodeToISO885911Constructor },
   730   { &kNS_UNICODETOCP874_CID, false, nullptr, nsUnicodeToCP874Constructor },
   731   { &kNS_UNICODETOCP866_CID, false, nullptr, nsUnicodeToCP866Constructor },
   732   { &kNS_UNICODETOKOI8R_CID, false, nullptr, nsUnicodeToKOI8RConstructor },
   733   { &kNS_UNICODETOKOI8U_CID, false, nullptr, nsUnicodeToKOI8UConstructor },
   734   { &kNS_UNICODETOMACCE_CID, false, nullptr, nsUnicodeToMacCEConstructor },
   735   { &kNS_UNICODETOMACGREEK_CID, false, nullptr, nsUnicodeToMacGreekConstructor },
   736   { &kNS_UNICODETOMACTURKISH_CID, false, nullptr, nsUnicodeToMacTurkishConstructor },
   737   { &kNS_UNICODETOMACCROATIAN_CID, false, nullptr, nsUnicodeToMacCroatianConstructor },
   738   { &kNS_UNICODETOMACROMANIAN_CID, false, nullptr, nsUnicodeToMacRomanianConstructor },
   739   { &kNS_UNICODETOMACCYRILLIC_CID, false, nullptr, nsUnicodeToMacCyrillicConstructor },
   740   { &kNS_UNICODETOMACICELANDIC_CID, false, nullptr, nsUnicodeToMacIcelandicConstructor },
   741   { &kNS_UNICODETOARMSCII8_CID, false, nullptr, nsUnicodeToARMSCII8Constructor },
   742   { &kNS_UNICODETOTCVN5712_CID, false, nullptr, nsUnicodeToTCVN5712Constructor },
   743   { &kNS_UNICODETOVISCII_CID, false, nullptr, nsUnicodeToVISCIIConstructor },
   744   { &kNS_UNICODETOVPS_CID, false, nullptr, nsUnicodeToVPSConstructor },
   745   { &kNS_UNICODETOUTF16BE_CID, false, nullptr, nsUnicodeToUTF16BEConstructor },
   746   { &kNS_UNICODETOUTF16LE_CID, false, nullptr, nsUnicodeToUTF16LEConstructor },
   747   { &kNS_UNICODETOUTF16_CID, false, nullptr, nsUnicodeToUTF16Constructor },
   748   { &kNS_UNICODETOT61_CID, false, nullptr, nsUnicodeToT61Constructor },
   749   { &kNS_UNICODETOUSERDEFINED_CID, false, nullptr, nsUnicodeToUserDefinedConstructor },
   750   { &kNS_UNICODETOMACARABIC_CID, false, nullptr, nsUnicodeToMacArabicConstructor },
   751   { &kNS_UNICODETOMACDEVANAGARI_CID, false, nullptr, nsUnicodeToMacDevanagariConstructor },
   752   { &kNS_UNICODETOMACFARSI_CID, false, nullptr, nsUnicodeToMacFarsiConstructor },
   753   { &kNS_UNICODETOMACGURMUKHI_CID, false, nullptr, nsUnicodeToMacGurmukhiConstructor },
   754   { &kNS_UNICODETOMACGUJARATI_CID, false, nullptr, nsUnicodeToMacGujaratiConstructor },
   755   { &kNS_UNICODETOMACHEBREW_CID, false, nullptr, nsUnicodeToMacHebrewConstructor },
   756   { &kNS_CP850TOUNICODE_CID, false, nullptr, nsCP850ToUnicodeConstructor },
   757   { &kNS_CP852TOUNICODE_CID, false, nullptr, nsCP852ToUnicodeConstructor },
   758   { &kNS_CP855TOUNICODE_CID, false, nullptr, nsCP855ToUnicodeConstructor },
   759   { &kNS_CP857TOUNICODE_CID, false, nullptr, nsCP857ToUnicodeConstructor },
   760   { &kNS_CP862TOUNICODE_CID, false, nullptr, nsCP862ToUnicodeConstructor },
   761   { &kNS_CP864TOUNICODE_CID, false, nullptr, nsCP864ToUnicodeConstructor },
   762   { &kNS_UNICODETOCP850_CID, false, nullptr, nsUnicodeToCP850Constructor },
   763   { &kNS_UNICODETOCP852_CID, false, nullptr, nsUnicodeToCP852Constructor },
   764   { &kNS_UNICODETOCP855_CID, false, nullptr, nsUnicodeToCP855Constructor },
   765   { &kNS_UNICODETOCP857_CID, false, nullptr, nsUnicodeToCP857Constructor },
   766   { &kNS_UNICODETOCP862_CID, false, nullptr, nsUnicodeToCP862Constructor },
   767   { &kNS_UNICODETOCP864_CID, false, nullptr, nsUnicodeToCP864Constructor },
   768   { &kNS_SJISTOUNICODE_CID, false, nullptr, nsShiftJISToUnicodeConstructor },
   769   { &kNS_EUCJPTOUNICODE_CID, false, nullptr, nsEUCJPToUnicodeV2Constructor },
   770   { &kNS_ISO2022JPTOUNICODE_CID, false, nullptr, nsISO2022JPToUnicodeV2Constructor },
   771   { &kNS_UNICODETOSJIS_CID, false, nullptr, nsUnicodeToSJISConstructor },
   772   { &kNS_UNICODETOEUCJP_CID, false, nullptr, nsUnicodeToEUCJPConstructor },
   773   { &kNS_UNICODETOISO2022JP_CID, false, nullptr, nsUnicodeToISO2022JPConstructor },
   774   { &kNS_UNICODETOJISX0201_CID, false, nullptr, nsUnicodeToJISx0201Constructor },
   775   { &kNS_EUCTWTOUNICODE_CID, false, nullptr, nsEUCTWToUnicodeConstructor },
   776   { &kNS_UNICODETOEUCTW_CID, false, nullptr, nsUnicodeToEUCTWConstructor },
   777   { &kNS_UNICODETOBIG5_CID, false, nullptr, nsUnicodeToBIG5Constructor },
   778   { &kNS_BIG5TOUNICODE_CID, false, nullptr, nsBIG5ToUnicodeConstructor },
   779   { &kNS_UNICODETOBIG5HKSCS_CID, false, nullptr, nsUnicodeToBIG5HKSCSConstructor },
   780   { &kNS_UNICODETOHKSCS_CID, false, nullptr, nsUnicodeToHKSCSConstructor },
   781   { &kNS_BIG5HKSCSTOUNICODE_CID, false, nullptr, nsBIG5HKSCSToUnicodeConstructor },
   782   { &kNS_EUCKRTOUNICODE_CID, false, nullptr, nsCP949ToUnicodeConstructor },
   783   { &kNS_UNICODETOEUCKR_CID, false, nullptr, nsUnicodeToCP949Constructor },
   784   { &kNS_JOHABTOUNICODE_CID, false, nullptr, nsJohabToUnicodeConstructor },
   785   { &kNS_UNICODETOJOHAB_CID, false, nullptr, nsUnicodeToJohabConstructor },
   786   { &kNS_ISO2022KRTOUNICODE_CID, false, nullptr, nsISO2022KRToUnicodeConstructor },
   787   { &kNS_GB2312TOUNICODE_CID, false, nullptr, nsGB18030ToUnicodeConstructor },
   788   { &kNS_UNICODETOGB2312_CID, false, nullptr, nsUnicodeToGB2312V2Constructor },
   789   { &kNS_GBKTOUNICODE_CID, false, nullptr, nsGB18030ToUnicodeConstructor },
   790   { &kNS_UNICODETOGBK_CID, false, nullptr, nsUnicodeToGBKConstructor },
   791   { &kNS_HZTOUNICODE_CID, false, nullptr, nsHZToUnicodeConstructor },
   792   { &kNS_UNICODETOHZ_CID, false, nullptr, nsUnicodeToHZConstructor },
   793   { &kNS_GB18030TOUNICODE_CID, false, nullptr, nsGB18030ToUnicodeConstructor },
   794   { &kNS_UNICODETOGB18030_CID, false, nullptr, nsUnicodeToGB18030Constructor },
   795   { &kNS_ISO2022CNTOUNICODE_CID, false, nullptr, nsISO2022CNToUnicodeConstructor },
   796   { nullptr },
   797 };
   799 static const mozilla::Module::ContractIDEntry kUConvContracts[] = {
   800   { NS_CHARSETCONVERTERMANAGER_CONTRACTID, &kNS_ICHARSETCONVERTERMANAGER_CID },
   801   { NS_ITEXTTOSUBURI_CONTRACTID, &kNS_TEXTTOSUBURI_CID },
   802   { NS_CONVERTERINPUTSTREAM_CONTRACTID, &kNS_CONVERTERINPUTSTREAM_CID },
   803   { "@mozilla.org/intl/converter-output-stream;1", &kNS_CONVERTEROUTPUTSTREAM_CID },
   804   { NS_ISCRIPTABLEUNICODECONVERTER_CONTRACTID, &kNS_ISCRIPTABLEUNICODECONVERTER_CID },
   805   { NS_UTF8CONVERTERSERVICE_CONTRACTID, &kNS_UTF8CONVERTERSERVICE_CID },
   806   { NS_ISO88591TOUNICODE_CONTRACTID, &kNS_ISO88591TOUNICODE_CID },
   807   { NS_CP1252TOUNICODE_CONTRACTID, &kNS_CP1252TOUNICODE_CID },
   808   { NS_MACROMANTOUNICODE_CONTRACTID, &kNS_MACROMANTOUNICODE_CID },
   809   { NS_REPLACEMENTTOUNICODE_CONTRACTID, &kNS_REPLACEMENTTOUNICODE_CID },
   810   { NS_UTF8TOUNICODE_CONTRACTID, &kNS_UTF8TOUNICODE_CID },
   811   { NS_UNICODETOISO88591_CONTRACTID, &kNS_UNICODETOISO88591_CID },
   812   { NS_UNICODETOCP1252_CONTRACTID, &kNS_UNICODETOCP1252_CID },
   813   { NS_UNICODETOMACROMAN_CONTRACTID, &kNS_UNICODETOMACROMAN_CID },
   814   { NS_UNICODETOUTF8_CONTRACTID, &kNS_UNICODETOUTF8_CID },
   815   { NS_UNICODEDECODER_CONTRACTID_BASE "us-ascii", &kNS_ASCIITOUNICODE_CID },
   816   { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-2", &kNS_ISO88592TOUNICODE_CID },
   817   { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-3", &kNS_ISO88593TOUNICODE_CID },
   818   { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-4", &kNS_ISO88594TOUNICODE_CID },
   819   { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-5", &kNS_ISO88595TOUNICODE_CID },
   820   { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-6", &kNS_ISO88596TOUNICODE_CID },
   821   { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-6-I", &kNS_ISO88596ITOUNICODE_CID },
   822   { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-6-E", &kNS_ISO88596ETOUNICODE_CID },
   823   { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-7", &kNS_ISO88597TOUNICODE_CID },
   824   { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-8", &kNS_ISO88598TOUNICODE_CID },
   825   { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-8-I", &kNS_ISO88598ITOUNICODE_CID },
   826   { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-8-E", &kNS_ISO88598ETOUNICODE_CID },
   827   { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-9", &kNS_ISO88599TOUNICODE_CID },
   828   { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-10", &kNS_ISO885910TOUNICODE_CID },
   829   { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-13", &kNS_ISO885913TOUNICODE_CID },
   830   { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-14", &kNS_ISO885914TOUNICODE_CID },
   831   { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-15", &kNS_ISO885915TOUNICODE_CID },
   832   { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-16", &kNS_ISO885916TOUNICODE_CID },
   833   { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-IR-111", &kNS_ISOIR111TOUNICODE_CID },
   834   { NS_UNICODEDECODER_CONTRACTID_BASE "windows-1250", &kNS_CP1250TOUNICODE_CID },
   835   { NS_UNICODEDECODER_CONTRACTID_BASE "windows-1251", &kNS_CP1251TOUNICODE_CID },
   836   { NS_UNICODEDECODER_CONTRACTID_BASE "windows-1253", &kNS_CP1253TOUNICODE_CID },
   837   { NS_UNICODEDECODER_CONTRACTID_BASE "windows-1254", &kNS_CP1254TOUNICODE_CID },
   838   { NS_UNICODEDECODER_CONTRACTID_BASE "windows-1255", &kNS_CP1255TOUNICODE_CID },
   839   { NS_UNICODEDECODER_CONTRACTID_BASE "windows-1256", &kNS_CP1256TOUNICODE_CID },
   840   { NS_UNICODEDECODER_CONTRACTID_BASE "windows-1257", &kNS_CP1257TOUNICODE_CID },
   841   { NS_UNICODEDECODER_CONTRACTID_BASE "windows-1258", &kNS_CP1258TOUNICODE_CID },
   842   { NS_UNICODEDECODER_CONTRACTID_BASE "TIS-620", &kNS_TIS620TOUNICODE_CID },
   843   { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-11", &kNS_ISO885911TOUNICODE_CID },
   844   { NS_UNICODEDECODER_CONTRACTID_BASE "windows-874", &kNS_CP874TOUNICODE_CID },
   845   { NS_UNICODEDECODER_CONTRACTID_BASE "IBM866", &kNS_CP866TOUNICODE_CID },
   846   { NS_UNICODEDECODER_CONTRACTID_BASE "KOI8-R", &kNS_KOI8RTOUNICODE_CID },
   847   { NS_UNICODEDECODER_CONTRACTID_BASE "KOI8-U", &kNS_KOI8UTOUNICODE_CID },
   848   { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-ce", &kNS_MACCETOUNICODE_CID },
   849   { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-greek", &kNS_MACGREEKTOUNICODE_CID },
   850   { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-turkish", &kNS_MACTURKISHTOUNICODE_CID },
   851   { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-croatian", &kNS_MACCROATIANTOUNICODE_CID },
   852   { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-romanian", &kNS_MACROMANIANTOUNICODE_CID },
   853   { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-cyrillic", &kNS_MACCYRILLICTOUNICODE_CID },
   854   { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-icelandic", &kNS_MACICELANDICTOUNICODE_CID },
   855   { NS_UNICODEDECODER_CONTRACTID_BASE "armscii-8", &kNS_ARMSCII8TOUNICODE_CID },
   856   { NS_UNICODEDECODER_CONTRACTID_BASE "x-viet-tcvn5712", &kNS_TCVN5712TOUNICODE_CID },
   857   { NS_UNICODEDECODER_CONTRACTID_BASE "VISCII", &kNS_VISCIITOUNICODE_CID },
   858   { NS_UNICODEDECODER_CONTRACTID_BASE "x-viet-vps", &kNS_VPSTOUNICODE_CID },
   859   { NS_UNICODEDECODER_CONTRACTID_BASE "UTF-16", &kNS_UTF16TOUNICODE_CID },
   860   { NS_UNICODEDECODER_CONTRACTID_BASE "UTF-16BE", &kNS_UTF16BETOUNICODE_CID },
   861   { NS_UNICODEDECODER_CONTRACTID_BASE "UTF-16LE", &kNS_UTF16LETOUNICODE_CID },
   862   { NS_UNICODEDECODER_CONTRACTID_BASE "T.61-8bit", &kNS_T61TOUNICODE_CID },
   863   { NS_UNICODEDECODER_CONTRACTID_BASE "x-user-defined", &kNS_USERDEFINEDTOUNICODE_CID },
   864   { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-arabic", &kNS_MACARABICTOUNICODE_CID },
   865   { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-devanagari", &kNS_MACDEVANAGARITOUNICODE_CID },
   866   { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-farsi", &kNS_MACFARSITOUNICODE_CID },
   867   { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-gurmukhi", &kNS_MACGURMUKHITOUNICODE_CID },
   868   { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-gujarati", &kNS_MACGUJARATITOUNICODE_CID },
   869   { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-hebrew", &kNS_MACHEBREWTOUNICODE_CID },
   870   { NS_UNICODEENCODER_CONTRACTID_BASE "us-ascii", &kNS_UNICODETOASCII_CID },
   871   { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-2", &kNS_UNICODETOISO88592_CID },
   872   { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-3", &kNS_UNICODETOISO88593_CID },
   873   { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-4", &kNS_UNICODETOISO88594_CID },
   874   { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-5", &kNS_UNICODETOISO88595_CID },
   875   { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-6", &kNS_UNICODETOISO88596_CID },
   876   { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-6-I", &kNS_UNICODETOISO88596I_CID },
   877   { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-6-E", &kNS_UNICODETOISO88596E_CID },
   878   { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-7", &kNS_UNICODETOISO88597_CID },
   879   { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-8", &kNS_UNICODETOISO88598_CID },
   880   { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-8-I", &kNS_UNICODETOISO88598I_CID },
   881   { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-8-E", &kNS_UNICODETOISO88598E_CID },
   882   { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-9", &kNS_UNICODETOISO88599_CID },
   883   { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-10", &kNS_UNICODETOISO885910_CID },
   884   { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-13", &kNS_UNICODETOISO885913_CID },
   885   { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-14", &kNS_UNICODETOISO885914_CID },
   886   { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-15", &kNS_UNICODETOISO885915_CID },
   887   { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-16", &kNS_UNICODETOISO885916_CID },
   888   { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-IR-111", &kNS_UNICODETOISOIR111_CID },
   889   { NS_UNICODEENCODER_CONTRACTID_BASE "windows-1250", &kNS_UNICODETOCP1250_CID },
   890   { NS_UNICODEENCODER_CONTRACTID_BASE "windows-1251", &kNS_UNICODETOCP1251_CID },
   891   { NS_UNICODEENCODER_CONTRACTID_BASE "windows-1253", &kNS_UNICODETOCP1253_CID },
   892   { NS_UNICODEENCODER_CONTRACTID_BASE "windows-1254", &kNS_UNICODETOCP1254_CID },
   893   { NS_UNICODEENCODER_CONTRACTID_BASE "windows-1255", &kNS_UNICODETOCP1255_CID },
   894   { NS_UNICODEENCODER_CONTRACTID_BASE "windows-1256", &kNS_UNICODETOCP1256_CID },
   895   { NS_UNICODEENCODER_CONTRACTID_BASE "windows-1257", &kNS_UNICODETOCP1257_CID },
   896   { NS_UNICODEENCODER_CONTRACTID_BASE "windows-1258", &kNS_UNICODETOCP1258_CID },
   897   { NS_UNICODEENCODER_CONTRACTID_BASE "TIS-620", &kNS_UNICODETOTIS620_CID },
   898   { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-11", &kNS_UNICODETOISO885911_CID },
   899   { NS_UNICODEENCODER_CONTRACTID_BASE "windows-874", &kNS_UNICODETOCP874_CID },
   900   { NS_UNICODEENCODER_CONTRACTID_BASE "IBM866", &kNS_UNICODETOCP866_CID },
   901   { NS_UNICODEENCODER_CONTRACTID_BASE "KOI8-R", &kNS_UNICODETOKOI8R_CID },
   902   { NS_UNICODEENCODER_CONTRACTID_BASE "KOI8-U", &kNS_UNICODETOKOI8U_CID },
   903   { NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-ce", &kNS_UNICODETOMACCE_CID },
   904   { NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-greek", &kNS_UNICODETOMACGREEK_CID },
   905   { NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-turkish", &kNS_UNICODETOMACTURKISH_CID },
   906   { NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-croatian", &kNS_UNICODETOMACCROATIAN_CID },
   907   { NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-romanian", &kNS_UNICODETOMACROMANIAN_CID },
   908   { NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-cyrillic", &kNS_UNICODETOMACCYRILLIC_CID },
   909   { NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-icelandic", &kNS_UNICODETOMACICELANDIC_CID },
   910   { NS_UNICODEENCODER_CONTRACTID_BASE "armscii-8", &kNS_UNICODETOARMSCII8_CID },
   911   { NS_UNICODEENCODER_CONTRACTID_BASE "x-viet-tcvn5712", &kNS_UNICODETOTCVN5712_CID },
   912   { NS_UNICODEENCODER_CONTRACTID_BASE "VISCII", &kNS_UNICODETOVISCII_CID },
   913   { NS_UNICODEENCODER_CONTRACTID_BASE "x-viet-vps", &kNS_UNICODETOVPS_CID },
   914   { NS_UNICODEENCODER_CONTRACTID_BASE "UTF-16BE", &kNS_UNICODETOUTF16BE_CID },
   915   { NS_UNICODEENCODER_CONTRACTID_BASE "UTF-16LE", &kNS_UNICODETOUTF16LE_CID },
   916   { NS_UNICODEENCODER_CONTRACTID_BASE "UTF-16", &kNS_UNICODETOUTF16_CID },
   917   { NS_UNICODEENCODER_CONTRACTID_BASE "T.61-8bit", &kNS_UNICODETOT61_CID },
   918   { NS_UNICODEENCODER_CONTRACTID_BASE "x-user-defined", &kNS_UNICODETOUSERDEFINED_CID },
   919   { NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-arabic", &kNS_UNICODETOMACARABIC_CID },
   920   { NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-devanagari", &kNS_UNICODETOMACDEVANAGARI_CID },
   921   { NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-farsi", &kNS_UNICODETOMACFARSI_CID },
   922   { NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-gurmukhi", &kNS_UNICODETOMACGURMUKHI_CID },
   923   { NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-gujarati", &kNS_UNICODETOMACGUJARATI_CID },
   924   { NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-hebrew", &kNS_UNICODETOMACHEBREW_CID },
   925   { NS_UNICODEDECODER_CONTRACTID_BASE "IBM850", &kNS_CP850TOUNICODE_CID },
   926   { NS_UNICODEDECODER_CONTRACTID_BASE "IBM852", &kNS_CP852TOUNICODE_CID },
   927   { NS_UNICODEDECODER_CONTRACTID_BASE "IBM855", &kNS_CP855TOUNICODE_CID },
   928   { NS_UNICODEDECODER_CONTRACTID_BASE "IBM857", &kNS_CP857TOUNICODE_CID },
   929   { NS_UNICODEDECODER_CONTRACTID_BASE "IBM862", &kNS_CP862TOUNICODE_CID },
   930   { NS_UNICODEDECODER_CONTRACTID_BASE "IBM864", &kNS_CP864TOUNICODE_CID },
   931   { NS_UNICODEENCODER_CONTRACTID_BASE "IBM850", &kNS_UNICODETOCP850_CID },
   932   { NS_UNICODEENCODER_CONTRACTID_BASE "IBM852", &kNS_UNICODETOCP852_CID },
   933   { NS_UNICODEENCODER_CONTRACTID_BASE "IBM855", &kNS_UNICODETOCP855_CID },
   934   { NS_UNICODEENCODER_CONTRACTID_BASE "IBM857", &kNS_UNICODETOCP857_CID },
   935   { NS_UNICODEENCODER_CONTRACTID_BASE "IBM862", &kNS_UNICODETOCP862_CID },
   936   { NS_UNICODEENCODER_CONTRACTID_BASE "IBM864", &kNS_UNICODETOCP864_CID },
   937   { NS_UNICODEDECODER_CONTRACTID_BASE "Shift_JIS", &kNS_SJISTOUNICODE_CID },
   938   { NS_UNICODEDECODER_CONTRACTID_BASE "EUC-JP", &kNS_EUCJPTOUNICODE_CID },
   939   { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-2022-JP", &kNS_ISO2022JPTOUNICODE_CID },
   940   { NS_UNICODEENCODER_CONTRACTID_BASE "Shift_JIS", &kNS_UNICODETOSJIS_CID },
   941   { NS_UNICODEENCODER_CONTRACTID_BASE "EUC-JP", &kNS_UNICODETOEUCJP_CID },
   942   { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-2022-JP", &kNS_UNICODETOISO2022JP_CID },
   943   { NS_UNICODEENCODER_CONTRACTID_BASE "jis_0201", &kNS_UNICODETOJISX0201_CID },
   944   { NS_UNICODEDECODER_CONTRACTID_BASE "x-euc-tw", &kNS_EUCTWTOUNICODE_CID },
   945   { NS_UNICODEENCODER_CONTRACTID_BASE "x-euc-tw", &kNS_UNICODETOEUCTW_CID },
   946   { NS_UNICODEENCODER_CONTRACTID_BASE "Big5", &kNS_UNICODETOBIG5_CID },
   947   { NS_UNICODEDECODER_CONTRACTID_BASE "Big5", &kNS_BIG5TOUNICODE_CID },
   948   { NS_UNICODEENCODER_CONTRACTID_BASE "Big5-HKSCS", &kNS_UNICODETOBIG5HKSCS_CID },
   949   { NS_UNICODEENCODER_CONTRACTID_BASE "hkscs-1", &kNS_UNICODETOHKSCS_CID },
   950   { NS_UNICODEDECODER_CONTRACTID_BASE "Big5-HKSCS", &kNS_BIG5HKSCSTOUNICODE_CID },
   951   { NS_UNICODEDECODER_CONTRACTID_BASE "EUC-KR", &kNS_EUCKRTOUNICODE_CID },
   952   { NS_UNICODEENCODER_CONTRACTID_BASE "EUC-KR", &kNS_UNICODETOEUCKR_CID },
   953   { NS_UNICODEDECODER_CONTRACTID_BASE "x-johab", &kNS_JOHABTOUNICODE_CID },
   954   { NS_UNICODEENCODER_CONTRACTID_BASE "x-johab", &kNS_UNICODETOJOHAB_CID },
   955   { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-2022-KR", &kNS_ISO2022KRTOUNICODE_CID },
   956   { NS_UNICODEDECODER_CONTRACTID_BASE "GB2312", &kNS_GB2312TOUNICODE_CID },
   957   { NS_UNICODEENCODER_CONTRACTID_BASE "GB2312", &kNS_UNICODETOGB2312_CID },
   958   { NS_UNICODEDECODER_CONTRACTID_BASE "gbk", &kNS_GBKTOUNICODE_CID },
   959   { NS_UNICODEENCODER_CONTRACTID_BASE "gbk", &kNS_UNICODETOGBK_CID },
   960   { NS_UNICODEDECODER_CONTRACTID_BASE "HZ-GB-2312", &kNS_HZTOUNICODE_CID },
   961   { NS_UNICODEENCODER_CONTRACTID_BASE "HZ-GB-2312", &kNS_UNICODETOHZ_CID },
   962   { NS_UNICODEDECODER_CONTRACTID_BASE "gb18030", &kNS_GB18030TOUNICODE_CID },
   963   { NS_UNICODEENCODER_CONTRACTID_BASE "gb18030", &kNS_UNICODETOGB18030_CID },
   964   { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-2022-CN", &kNS_ISO2022CNTOUNICODE_CID },
   965   { nullptr }
   966 };
   968 static const mozilla::Module kUConvModule = {
   969   mozilla::Module::kVersion,
   970   kUConvCIDs,
   971   kUConvContracts,
   972   kUConvCategories
   973 };
   975 NSMODULE_DEFN(nsUConvModule) = &kUConvModule;

mercurial