intl/uconv/src/nsUConvModule.cpp

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/intl/uconv/src/nsUConvModule.cpp	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,975 @@
     1.4 +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
     1.5 +/* This Source Code Form is subject to the terms of the Mozilla Public
     1.6 + * License, v. 2.0. If a copy of the MPL was not distributed with this
     1.7 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     1.8 +#include "mozilla/ModuleUtils.h"
     1.9 +#include "nsICharsetConverterManager.h"
    1.10 +#include "nsEncoderDecoderUtils.h"
    1.11 +#include "nsIUnicodeDecoder.h"
    1.12 +#include "nsIUnicodeEncoder.h"
    1.13 +
    1.14 +#include "nsUConvCID.h"
    1.15 +#include "nsCharsetConverterManager.h"
    1.16 +#include "nsTextToSubURI.h"
    1.17 +#include "nsUTF8ConverterService.h"
    1.18 +#include "nsConverterInputStream.h"
    1.19 +#include "nsConverterOutputStream.h"
    1.20 +#include "nsScriptableUConv.h"
    1.21 +#include "nsIOutputStream.h"
    1.22 +#include "nsITextToSubURI.h"
    1.23 +
    1.24 +#include "nsISO88591ToUnicode.h"
    1.25 +#include "nsCP1252ToUnicode.h"
    1.26 +#include "nsMacRomanToUnicode.h"
    1.27 +#include "nsReplacementToUnicode.h"
    1.28 +#include "nsUTF8ToUnicode.h"
    1.29 +#include "nsUnicodeToISO88591.h"
    1.30 +#include "nsUnicodeToCP1252.h"
    1.31 +#include "nsUnicodeToMacRoman.h"
    1.32 +#include "nsUnicodeToUTF8.h"
    1.33 +
    1.34 +// ucvlatin
    1.35 +#include "nsUCvLatinCID.h"
    1.36 +#include "nsAsciiToUnicode.h"
    1.37 +#include "nsISO88592ToUnicode.h"
    1.38 +#include "nsISO88593ToUnicode.h"
    1.39 +#include "nsISO88594ToUnicode.h"
    1.40 +#include "nsISO88595ToUnicode.h"
    1.41 +#include "nsISO88596ToUnicode.h"
    1.42 +#include "nsISO88596EToUnicode.h"
    1.43 +#include "nsISO88596IToUnicode.h"
    1.44 +#include "nsISO88597ToUnicode.h"
    1.45 +#include "nsISO88598ToUnicode.h"
    1.46 +#include "nsISO88598EToUnicode.h"
    1.47 +#include "nsISO88598IToUnicode.h"
    1.48 +#include "nsISO88599ToUnicode.h"
    1.49 +#include "nsISO885910ToUnicode.h"
    1.50 +#include "nsISO885913ToUnicode.h"
    1.51 +#include "nsISO885914ToUnicode.h"
    1.52 +#include "nsISO885915ToUnicode.h"
    1.53 +#include "nsISO885916ToUnicode.h"
    1.54 +#include "nsISOIR111ToUnicode.h"
    1.55 +#include "nsCP1250ToUnicode.h"
    1.56 +#include "nsCP1251ToUnicode.h"
    1.57 +#include "nsCP1253ToUnicode.h"
    1.58 +#include "nsCP1254ToUnicode.h"
    1.59 +#include "nsCP1255ToUnicode.h"
    1.60 +#include "nsCP1256ToUnicode.h"
    1.61 +#include "nsCP1257ToUnicode.h"
    1.62 +#include "nsCP1258ToUnicode.h"
    1.63 +#include "nsCP874ToUnicode.h"
    1.64 +#include "nsISO885911ToUnicode.h"
    1.65 +#include "nsTIS620ToUnicode.h"
    1.66 +#include "nsCP866ToUnicode.h"
    1.67 +#include "nsKOI8RToUnicode.h"
    1.68 +#include "nsKOI8UToUnicode.h"
    1.69 +#include "nsMacCEToUnicode.h"
    1.70 +#include "nsMacGreekToUnicode.h"
    1.71 +#include "nsMacTurkishToUnicode.h"
    1.72 +#include "nsMacCroatianToUnicode.h"
    1.73 +#include "nsMacRomanianToUnicode.h"
    1.74 +#include "nsMacCyrillicToUnicode.h"
    1.75 +#include "nsMacIcelandicToUnicode.h"
    1.76 +#include "nsARMSCII8ToUnicode.h"
    1.77 +#include "nsTCVN5712ToUnicode.h"
    1.78 +#include "nsVISCIIToUnicode.h"
    1.79 +#include "nsVPSToUnicode.h"
    1.80 +#include "nsUTF16ToUnicode.h"
    1.81 +#include "nsT61ToUnicode.h"
    1.82 +#include "nsUserDefinedToUnicode.h"
    1.83 +#include "nsUnicodeToAscii.h"
    1.84 +#include "nsUnicodeToISO88592.h"
    1.85 +#include "nsUnicodeToISO88593.h"
    1.86 +#include "nsUnicodeToISO88594.h"
    1.87 +#include "nsUnicodeToISO88595.h"
    1.88 +#include "nsUnicodeToISO88596.h"
    1.89 +#include "nsUnicodeToISO88596E.h"
    1.90 +#include "nsUnicodeToISO88596I.h"
    1.91 +#include "nsUnicodeToISO88597.h"
    1.92 +#include "nsUnicodeToISO88598.h"
    1.93 +#include "nsUnicodeToISO88598E.h"
    1.94 +#include "nsUnicodeToISO88598I.h"
    1.95 +#include "nsUnicodeToISO88599.h"
    1.96 +#include "nsUnicodeToISO885910.h"
    1.97 +#include "nsUnicodeToISO885913.h"
    1.98 +#include "nsUnicodeToISO885914.h"
    1.99 +#include "nsUnicodeToISO885915.h"
   1.100 +#include "nsUnicodeToISO885916.h"
   1.101 +#include "nsUnicodeToISOIR111.h"
   1.102 +#include "nsUnicodeToCP1250.h"
   1.103 +#include "nsUnicodeToCP1251.h"
   1.104 +#include "nsUnicodeToCP1253.h"
   1.105 +#include "nsUnicodeToCP1254.h"
   1.106 +#include "nsUnicodeToCP1255.h"
   1.107 +#include "nsUnicodeToCP1256.h"
   1.108 +#include "nsUnicodeToCP1257.h"
   1.109 +#include "nsUnicodeToCP1258.h"
   1.110 +#include "nsUnicodeToCP874.h"
   1.111 +#include "nsUnicodeToISO885911.h"
   1.112 +#include "nsUnicodeToTIS620.h"
   1.113 +#include "nsUnicodeToCP866.h"
   1.114 +#include "nsUnicodeToKOI8R.h"
   1.115 +#include "nsUnicodeToKOI8U.h"
   1.116 +#include "nsUnicodeToMacCE.h"
   1.117 +#include "nsUnicodeToMacGreek.h"
   1.118 +#include "nsUnicodeToMacTurkish.h"
   1.119 +#include "nsUnicodeToMacCroatian.h"
   1.120 +#include "nsUnicodeToMacRomanian.h"
   1.121 +#include "nsUnicodeToMacCyrillic.h"
   1.122 +#include "nsUnicodeToMacIcelandic.h"
   1.123 +#include "nsUnicodeToARMSCII8.h"
   1.124 +#include "nsUnicodeToTCVN5712.h"
   1.125 +#include "nsUnicodeToVISCII.h"
   1.126 +#include "nsUnicodeToVPS.h"
   1.127 +#include "nsUnicodeToUTF16.h"
   1.128 +#include "nsUnicodeToT61.h"
   1.129 +#include "nsUnicodeToUserDefined.h"
   1.130 +#include "nsMacArabicToUnicode.h"
   1.131 +#include "nsMacDevanagariToUnicode.h"
   1.132 +#include "nsMacFarsiToUnicode.h"
   1.133 +#include "nsMacGujaratiToUnicode.h"
   1.134 +#include "nsMacGurmukhiToUnicode.h"
   1.135 +#include "nsMacHebrewToUnicode.h"
   1.136 +#include "nsUnicodeToMacArabic.h"
   1.137 +#include "nsUnicodeToMacDevanagari.h"
   1.138 +#include "nsUnicodeToMacFarsi.h"
   1.139 +#include "nsUnicodeToMacGujarati.h"
   1.140 +#include "nsUnicodeToMacGurmukhi.h"
   1.141 +#include "nsUnicodeToMacHebrew.h"
   1.142 +
   1.143 +// ucvibm
   1.144 +#include "nsUCvIBMCID.h"
   1.145 +#include "nsCP850ToUnicode.h"
   1.146 +#include "nsCP852ToUnicode.h"
   1.147 +#include "nsCP855ToUnicode.h"
   1.148 +#include "nsCP857ToUnicode.h"
   1.149 +#include "nsCP862ToUnicode.h"
   1.150 +#include "nsCP864ToUnicode.h"
   1.151 +#include "nsUnicodeToCP850.h"
   1.152 +#include "nsUnicodeToCP852.h"
   1.153 +#include "nsUnicodeToCP855.h"
   1.154 +#include "nsUnicodeToCP857.h"
   1.155 +#include "nsUnicodeToCP862.h"
   1.156 +#include "nsUnicodeToCP864.h"
   1.157 +
   1.158 +// ucvja
   1.159 +#include "nsUCVJACID.h"
   1.160 +#include "nsUCVJA2CID.h"
   1.161 +#include "nsUCVJADll.h"
   1.162 +#include "nsJapaneseToUnicode.h"
   1.163 +#include "nsUnicodeToSJIS.h"
   1.164 +#include "nsUnicodeToEUCJP.h"
   1.165 +#include "nsUnicodeToISO2022JP.h"
   1.166 +#include "nsUnicodeToJISx0201.h"
   1.167 +
   1.168 +// ucvtw2
   1.169 +#include "nsUCvTW2CID.h"
   1.170 +#include "nsUCvTW2Dll.h"
   1.171 +#include "nsEUCTWToUnicode.h"
   1.172 +#include "nsUnicodeToEUCTW.h"
   1.173 +
   1.174 +// ucvtw
   1.175 +#include "nsUCvTWCID.h"
   1.176 +#include "nsUCvTWDll.h"
   1.177 +#include "nsBIG5ToUnicode.h"
   1.178 +#include "nsUnicodeToBIG5.h"
   1.179 +#include "nsBIG5HKSCSToUnicode.h"
   1.180 +#include "nsUnicodeToBIG5HKSCS.h"
   1.181 +#include "nsUnicodeToHKSCS.h"
   1.182 +
   1.183 +// ucvko
   1.184 +#include "nsUCvKOCID.h"
   1.185 +#include "nsUCvKODll.h"
   1.186 +#include "nsJohabToUnicode.h"
   1.187 +#include "nsUnicodeToJohab.h"
   1.188 +#include "nsCP949ToUnicode.h"
   1.189 +#include "nsUnicodeToCP949.h"
   1.190 +#include "nsISO2022KRToUnicode.h"
   1.191 +
   1.192 +// ucvcn
   1.193 +#include "nsUCvCnCID.h"
   1.194 +#include "nsHZToUnicode.h"
   1.195 +#include "nsUnicodeToHZ.h"
   1.196 +#include "nsGBKToUnicode.h"
   1.197 +#include "nsUnicodeToGBK.h"
   1.198 +#include "nsGB2312ToUnicodeV2.h"
   1.199 +#include "nsUnicodeToGB2312V2.h"
   1.200 +#include "nsISO2022CNToUnicode.h"
   1.201 +#include "gbku.h"
   1.202 +
   1.203 +NS_CONVERTER_REGISTRY_START
   1.204 +NS_UCONV_REG_UNREG("ISO-8859-1", NS_ISO88591TOUNICODE_CID, NS_UNICODETOISO88591_CID)
   1.205 +NS_UCONV_REG_UNREG("windows-1252", NS_CP1252TOUNICODE_CID, NS_UNICODETOCP1252_CID)
   1.206 +NS_UCONV_REG_UNREG("macintosh", NS_MACROMANTOUNICODE_CID, NS_UNICODETOMACROMAN_CID)
   1.207 +NS_UCONV_REG_UNREG("UTF-8", NS_UTF8TOUNICODE_CID, NS_UNICODETOUTF8_CID)
   1.208 +NS_UCONV_REG_UNREG("replacement", NS_REPLACEMENTTOUNICODE_CID, NS_UNICODETOUTF8_CID)
   1.209 +
   1.210 +  // ucvlatin
   1.211 +NS_UCONV_REG_UNREG("us-ascii", NS_ASCIITOUNICODE_CID, NS_UNICODETOASCII_CID)
   1.212 +NS_UCONV_REG_UNREG("ISO-8859-2", NS_ISO88592TOUNICODE_CID, NS_UNICODETOISO88592_CID)
   1.213 +NS_UCONV_REG_UNREG("ISO-8859-3", NS_ISO88593TOUNICODE_CID, NS_UNICODETOISO88593_CID)
   1.214 +NS_UCONV_REG_UNREG("ISO-8859-4", NS_ISO88594TOUNICODE_CID, NS_UNICODETOISO88594_CID)
   1.215 +NS_UCONV_REG_UNREG("ISO-8859-5", NS_ISO88595TOUNICODE_CID, NS_UNICODETOISO88595_CID)
   1.216 +NS_UCONV_REG_UNREG("ISO-8859-6", NS_ISO88596TOUNICODE_CID, NS_UNICODETOISO88596_CID)
   1.217 +NS_UCONV_REG_UNREG("ISO-8859-6-I", NS_ISO88596ITOUNICODE_CID, NS_UNICODETOISO88596I_CID)
   1.218 +NS_UCONV_REG_UNREG("ISO-8859-6-E", NS_ISO88596ETOUNICODE_CID, NS_UNICODETOISO88596E_CID)
   1.219 +NS_UCONV_REG_UNREG("ISO-8859-7", NS_ISO88597TOUNICODE_CID, NS_UNICODETOISO88597_CID)
   1.220 +NS_UCONV_REG_UNREG("ISO-8859-8", NS_ISO88598TOUNICODE_CID, NS_UNICODETOISO88598_CID)
   1.221 +NS_UCONV_REG_UNREG("ISO-8859-8-I", NS_ISO88598ITOUNICODE_CID, NS_UNICODETOISO88598I_CID)
   1.222 +NS_UCONV_REG_UNREG("ISO-8859-8-E", NS_ISO88598ETOUNICODE_CID, NS_UNICODETOISO88598E_CID)
   1.223 +NS_UCONV_REG_UNREG("ISO-8859-9", NS_ISO88599TOUNICODE_CID, NS_UNICODETOISO88599_CID)
   1.224 +NS_UCONV_REG_UNREG("ISO-8859-10", NS_ISO885910TOUNICODE_CID, NS_UNICODETOISO885910_CID)
   1.225 +NS_UCONV_REG_UNREG("ISO-8859-13", NS_ISO885913TOUNICODE_CID, NS_UNICODETOISO885913_CID)
   1.226 +NS_UCONV_REG_UNREG("ISO-8859-14", NS_ISO885914TOUNICODE_CID, NS_UNICODETOISO885914_CID)
   1.227 +NS_UCONV_REG_UNREG("ISO-8859-15", NS_ISO885915TOUNICODE_CID, NS_UNICODETOISO885915_CID)
   1.228 +NS_UCONV_REG_UNREG("ISO-8859-16", NS_ISO885916TOUNICODE_CID, NS_UNICODETOISO885916_CID)
   1.229 +NS_UCONV_REG_UNREG("ISO-IR-111", NS_ISOIR111TOUNICODE_CID, NS_UNICODETOISOIR111_CID)
   1.230 +NS_UCONV_REG_UNREG("windows-1250", NS_CP1250TOUNICODE_CID, NS_UNICODETOCP1250_CID)
   1.231 +NS_UCONV_REG_UNREG("windows-1251", NS_CP1251TOUNICODE_CID, NS_UNICODETOCP1251_CID)
   1.232 +NS_UCONV_REG_UNREG("windows-1253", NS_CP1253TOUNICODE_CID, NS_UNICODETOCP1253_CID)
   1.233 +NS_UCONV_REG_UNREG("windows-1254", NS_CP1254TOUNICODE_CID, NS_UNICODETOCP1254_CID)
   1.234 +NS_UCONV_REG_UNREG("windows-1255", NS_CP1255TOUNICODE_CID, NS_UNICODETOCP1255_CID)
   1.235 +NS_UCONV_REG_UNREG("windows-1256", NS_CP1256TOUNICODE_CID, NS_UNICODETOCP1256_CID)
   1.236 +NS_UCONV_REG_UNREG("windows-1257", NS_CP1257TOUNICODE_CID, NS_UNICODETOCP1257_CID)
   1.237 +NS_UCONV_REG_UNREG("windows-1258", NS_CP1258TOUNICODE_CID, NS_UNICODETOCP1258_CID)
   1.238 +NS_UCONV_REG_UNREG("TIS-620", NS_TIS620TOUNICODE_CID, NS_UNICODETOTIS620_CID)
   1.239 +NS_UCONV_REG_UNREG("windows-874", NS_CP874TOUNICODE_CID, NS_UNICODETOCP874_CID)
   1.240 +NS_UCONV_REG_UNREG("ISO-8859-11", NS_ISO885911TOUNICODE_CID, NS_UNICODETOISO885911_CID)
   1.241 +NS_UCONV_REG_UNREG("IBM866", NS_CP866TOUNICODE_CID, NS_UNICODETOCP866_CID)
   1.242 +NS_UCONV_REG_UNREG("KOI8-R", NS_KOI8RTOUNICODE_CID, NS_UNICODETOKOI8R_CID)
   1.243 +NS_UCONV_REG_UNREG("KOI8-U", NS_KOI8UTOUNICODE_CID, NS_UNICODETOKOI8U_CID)
   1.244 +NS_UCONV_REG_UNREG("x-mac-ce", NS_MACCETOUNICODE_CID, NS_UNICODETOMACCE_CID)
   1.245 +NS_UCONV_REG_UNREG("x-mac-greek", NS_MACGREEKTOUNICODE_CID, NS_UNICODETOMACGREEK_CID)
   1.246 +NS_UCONV_REG_UNREG("x-mac-turkish", NS_MACTURKISHTOUNICODE_CID, NS_UNICODETOMACTURKISH_CID)
   1.247 +NS_UCONV_REG_UNREG("x-mac-croatian", NS_MACCROATIANTOUNICODE_CID, NS_UNICODETOMACCROATIAN_CID)
   1.248 +NS_UCONV_REG_UNREG("x-mac-romanian", NS_MACROMANIANTOUNICODE_CID, NS_UNICODETOMACROMANIAN_CID)
   1.249 +NS_UCONV_REG_UNREG("x-mac-cyrillic", NS_MACCYRILLICTOUNICODE_CID, NS_UNICODETOMACCYRILLIC_CID)
   1.250 +NS_UCONV_REG_UNREG("x-mac-icelandic", NS_MACICELANDICTOUNICODE_CID, NS_UNICODETOMACICELANDIC_CID)
   1.251 +NS_UCONV_REG_UNREG("armscii-8", NS_ARMSCII8TOUNICODE_CID, NS_UNICODETOARMSCII8_CID)
   1.252 +NS_UCONV_REG_UNREG("x-viet-tcvn5712", NS_TCVN5712TOUNICODE_CID, NS_UNICODETOTCVN5712_CID)
   1.253 +NS_UCONV_REG_UNREG("VISCII", NS_VISCIITOUNICODE_CID, NS_UNICODETOVISCII_CID)
   1.254 +NS_UCONV_REG_UNREG("x-viet-vps", NS_VPSTOUNICODE_CID, NS_UNICODETOVPS_CID)
   1.255 +NS_UCONV_REG_UNREG("UTF-16", NS_UTF16TOUNICODE_CID, NS_UNICODETOUTF16_CID)
   1.256 +NS_UCONV_REG_UNREG("UTF-16BE", NS_UTF16BETOUNICODE_CID, NS_UNICODETOUTF16BE_CID)
   1.257 +NS_UCONV_REG_UNREG("UTF-16LE", NS_UTF16LETOUNICODE_CID, NS_UNICODETOUTF16LE_CID)
   1.258 +NS_UCONV_REG_UNREG("T.61-8bit", NS_T61TOUNICODE_CID, NS_UNICODETOT61_CID)
   1.259 +NS_UCONV_REG_UNREG("x-user-defined", NS_USERDEFINEDTOUNICODE_CID, NS_UNICODETOUSERDEFINED_CID)
   1.260 +NS_UCONV_REG_UNREG("x-mac-arabic" , NS_MACARABICTOUNICODE_CID, NS_UNICODETOMACARABIC_CID)
   1.261 +NS_UCONV_REG_UNREG("x-mac-devanagari" , NS_MACDEVANAGARITOUNICODE_CID, NS_UNICODETOMACDEVANAGARI_CID)
   1.262 +NS_UCONV_REG_UNREG("x-mac-farsi" , NS_MACFARSITOUNICODE_CID, NS_UNICODETOMACFARSI_CID)
   1.263 +NS_UCONV_REG_UNREG("x-mac-gurmukhi" , NS_MACGURMUKHITOUNICODE_CID, NS_UNICODETOMACGURMUKHI_CID)
   1.264 +NS_UCONV_REG_UNREG("x-mac-gujarati" , NS_MACGUJARATITOUNICODE_CID, NS_UNICODETOMACGUJARATI_CID)
   1.265 +NS_UCONV_REG_UNREG("x-mac-hebrew" , NS_MACHEBREWTOUNICODE_CID, NS_UNICODETOMACHEBREW_CID)
   1.266 +
   1.267 +  // ucvibm
   1.268 +NS_UCONV_REG_UNREG("IBM850", NS_CP850TOUNICODE_CID, NS_UNICODETOCP850_CID)
   1.269 +NS_UCONV_REG_UNREG("IBM852", NS_CP852TOUNICODE_CID, NS_UNICODETOCP852_CID)
   1.270 +NS_UCONV_REG_UNREG("IBM855", NS_CP855TOUNICODE_CID, NS_UNICODETOCP855_CID)
   1.271 +NS_UCONV_REG_UNREG("IBM857", NS_CP857TOUNICODE_CID, NS_UNICODETOCP857_CID)
   1.272 +NS_UCONV_REG_UNREG("IBM862", NS_CP862TOUNICODE_CID, NS_UNICODETOCP862_CID)
   1.273 +NS_UCONV_REG_UNREG("IBM864", NS_CP864TOUNICODE_CID, NS_UNICODETOCP864_CID)
   1.274 +
   1.275 +    // ucvja
   1.276 +NS_UCONV_REG_UNREG("Shift_JIS", NS_SJISTOUNICODE_CID, NS_UNICODETOSJIS_CID)
   1.277 +NS_UCONV_REG_UNREG("ISO-2022-JP", NS_ISO2022JPTOUNICODE_CID, NS_UNICODETOISO2022JP_CID)
   1.278 +NS_UCONV_REG_UNREG("EUC-JP", NS_EUCJPTOUNICODE_CID, NS_UNICODETOEUCJP_CID)
   1.279 +  
   1.280 +NS_UCONV_REG_UNREG_ENCODER("jis_0201" , NS_UNICODETOJISX0201_CID)
   1.281 +
   1.282 +    // ucvtw2
   1.283 +NS_UCONV_REG_UNREG("x-euc-tw", NS_EUCTWTOUNICODE_CID, NS_UNICODETOEUCTW_CID)
   1.284 +
   1.285 +    // ucvtw
   1.286 +NS_UCONV_REG_UNREG("Big5", NS_BIG5TOUNICODE_CID, NS_UNICODETOBIG5_CID)
   1.287 +NS_UCONV_REG_UNREG("Big5-HKSCS", NS_BIG5HKSCSTOUNICODE_CID, NS_UNICODETOBIG5HKSCS_CID)
   1.288 +  
   1.289 +NS_UCONV_REG_UNREG_ENCODER("hkscs-1" , NS_UNICODETOHKSCS_CID)
   1.290 +
   1.291 +    // ucvko
   1.292 +NS_UCONV_REG_UNREG("EUC-KR", NS_EUCKRTOUNICODE_CID, NS_UNICODETOEUCKR_CID)
   1.293 +NS_UCONV_REG_UNREG("x-johab", NS_JOHABTOUNICODE_CID, NS_UNICODETOJOHAB_CID)
   1.294 +NS_UCONV_REG_UNREG_DECODER("ISO-2022-KR", NS_ISO2022KRTOUNICODE_CID)
   1.295 +
   1.296 +// ucvcn
   1.297 +NS_UCONV_REG_UNREG("GB2312", NS_GB2312TOUNICODE_CID, NS_UNICODETOGB2312_CID)
   1.298 +NS_UCONV_REG_UNREG("gbk", NS_GBKTOUNICODE_CID, NS_UNICODETOGBK_CID)
   1.299 +NS_UCONV_REG_UNREG("HZ-GB-2312", NS_HZTOUNICODE_CID, NS_UNICODETOHZ_CID)
   1.300 +NS_UCONV_REG_UNREG("gb18030", NS_GB18030TOUNICODE_CID, NS_UNICODETOGB18030_CID)
   1.301 +NS_UCONV_REG_UNREG_DECODER("ISO-2022-CN", NS_ISO2022CNTOUNICODE_CID)
   1.302 +
   1.303 +{ NS_TITLE_BUNDLE_CATEGORY, "chrome://global/locale/charsetTitles.properties", "" },
   1.304 +{ NS_DATA_BUNDLE_CATEGORY, "resource://gre-resources/charsetData.properties", "" },
   1.305 +  
   1.306 +NS_CONVERTER_REGISTRY_END
   1.307 +
   1.308 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToUTF8)
   1.309 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsUTF8ToUnicode)
   1.310 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsReplacementToUnicode)
   1.311 +
   1.312 +// ucvlatin
   1.313 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsUTF16ToUnicode)
   1.314 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsUTF16BEToUnicode)
   1.315 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsUTF16LEToUnicode)
   1.316 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToUTF16BE)
   1.317 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToUTF16LE)
   1.318 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToUTF16)
   1.319 +
   1.320 +// ucvibm
   1.321 +
   1.322 +// ucvja
   1.323 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsShiftJISToUnicode)
   1.324 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsEUCJPToUnicodeV2)
   1.325 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsISO2022JPToUnicodeV2)
   1.326 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToISO2022JP)
   1.327 +
   1.328 +// ucvtw2
   1.329 +
   1.330 +// ucvtw
   1.331 +
   1.332 +// ucvko
   1.333 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsISO2022KRToUnicode)
   1.334 +
   1.335 +// ucvcn
   1.336 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToGB2312V2)
   1.337 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToGBK)
   1.338 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsHZToUnicode)
   1.339 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToHZ)
   1.340 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsGB18030ToUnicode)
   1.341 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsUnicodeToGB18030)
   1.342 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsISO2022CNToUnicode)
   1.343 +
   1.344 +
   1.345 +//----------------------------------------------------------------------------
   1.346 +// Global functions and data [declaration]
   1.347 +
   1.348 +// ucvja
   1.349 +const uint16_t g_uf0201Mapping[] = {
   1.350 +#include "jis0201.uf"
   1.351 +};
   1.352 +
   1.353 +const uint16_t g_uf0201GLMapping[] = {
   1.354 +#include "jis0201gl.uf"
   1.355 +};
   1.356 +
   1.357 +const uint16_t g_uf0208Mapping[] = {
   1.358 +#include "jis0208.uf"
   1.359 +};
   1.360 +
   1.361 +const uint16_t g_uf0208extMapping[] = {
   1.362 +#include "jis0208ext.uf"
   1.363 +};
   1.364 +
   1.365 +// ucvtw2
   1.366 +const uint16_t g_ufCNS1MappingTable[] = {
   1.367 +#include "cns_1.uf"
   1.368 +};
   1.369 +
   1.370 +const uint16_t g_ufCNS2MappingTable[] = {
   1.371 +#include "cns_2.uf"
   1.372 +};
   1.373 +
   1.374 +const uint16_t g_ufCNS3MappingTable[] = {
   1.375 +#include "cns3.uf"
   1.376 +};
   1.377 +
   1.378 +const uint16_t g_ufCNS4MappingTable[] = {
   1.379 +#include "cns4.uf"
   1.380 +};
   1.381 +
   1.382 +const uint16_t g_ufCNS5MappingTable[] = {
   1.383 +#include "cns5.uf"
   1.384 +};
   1.385 +
   1.386 +const uint16_t g_ufCNS6MappingTable[] = {
   1.387 +#include "cns6.uf"
   1.388 +};
   1.389 +
   1.390 +const uint16_t g_ufCNS7MappingTable[] = {
   1.391 +#include "cns7.uf"
   1.392 +};
   1.393 +
   1.394 +const uint16_t g_utCNS1MappingTable[] = {
   1.395 +#include "cns_1.ut"
   1.396 +};
   1.397 +
   1.398 +const uint16_t g_utCNS2MappingTable[] = {
   1.399 +#include "cns_2.ut"
   1.400 +};
   1.401 +
   1.402 +const uint16_t g_utCNS3MappingTable[] = {
   1.403 +#include "cns3.ut"
   1.404 +};
   1.405 +
   1.406 +const uint16_t g_utCNS4MappingTable[] = {
   1.407 +#include "cns4.ut"
   1.408 +};
   1.409 +
   1.410 +const uint16_t g_utCNS5MappingTable[] = {
   1.411 +#include "cns5.ut"
   1.412 +};
   1.413 +
   1.414 +const uint16_t g_utCNS6MappingTable[] = {
   1.415 +#include "cns6.ut"
   1.416 +};
   1.417 +
   1.418 +const uint16_t g_utCNS7MappingTable[] = {
   1.419 +#include "cns7.ut"
   1.420 +};
   1.421 +
   1.422 +const uint16_t g_ASCIIMappingTable[] = {
   1.423 +  0x0001, 0x0004, 0x0005, 0x0008, 0x0000, 0x0000, 0x007F, 0x0000
   1.424 +};
   1.425 +
   1.426 +// ucvtw
   1.427 +const uint16_t g_ufBig5Mapping[] = {
   1.428 +#include "big5.uf"
   1.429 +};
   1.430 +
   1.431 +const uint16_t g_utBIG5Mapping[] = {
   1.432 +#include "big5.ut"
   1.433 +};
   1.434 +
   1.435 +const uint16_t g_ufBig5HKSCSMapping[] = {
   1.436 +#include "hkscs.uf"
   1.437 +};
   1.438 +
   1.439 +const uint16_t g_utBig5HKSCSMapping[] = {
   1.440 +#include "hkscs.ut"
   1.441 +};
   1.442 +
   1.443 +// ucvko
   1.444 +const uint16_t g_utKSC5601Mapping[] = {
   1.445 +#include "u20kscgl.ut"
   1.446 +};
   1.447 +
   1.448 +const uint16_t g_ufKSC5601Mapping[] = {
   1.449 +#include "u20kscgl.uf"
   1.450 +};
   1.451 +
   1.452 +const uint16_t g_HangulNullMapping[] ={
   1.453 +  0x0001, 0x0004, 0x0005, 0x0008, 0x0000, 0xAC00, 0xD7A3, 0xAC00
   1.454 +};
   1.455 +
   1.456 +const uint16_t g_ufJohabJamoMapping[] ={   
   1.457 +#include "johabjamo.uf"
   1.458 +};
   1.459 +
   1.460 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsCharsetConverterManager)
   1.461 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsTextToSubURI)
   1.462 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsUTF8ConverterService)
   1.463 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsConverterInputStream)
   1.464 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsConverterOutputStream)
   1.465 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsScriptableUnicodeConverter)
   1.466 +
   1.467 +NS_DEFINE_NAMED_CID(NS_ICHARSETCONVERTERMANAGER_CID);
   1.468 +NS_DEFINE_NAMED_CID(NS_TEXTTOSUBURI_CID);
   1.469 +NS_DEFINE_NAMED_CID(NS_CONVERTERINPUTSTREAM_CID);
   1.470 +NS_DEFINE_NAMED_CID(NS_CONVERTEROUTPUTSTREAM_CID);
   1.471 +NS_DEFINE_NAMED_CID(NS_ISCRIPTABLEUNICODECONVERTER_CID);
   1.472 +NS_DEFINE_NAMED_CID(NS_UTF8CONVERTERSERVICE_CID);
   1.473 +NS_DEFINE_NAMED_CID(NS_ISO88591TOUNICODE_CID);
   1.474 +NS_DEFINE_NAMED_CID(NS_CP1252TOUNICODE_CID);
   1.475 +NS_DEFINE_NAMED_CID(NS_MACROMANTOUNICODE_CID);
   1.476 +NS_DEFINE_NAMED_CID(NS_UTF8TOUNICODE_CID);
   1.477 +NS_DEFINE_NAMED_CID(NS_REPLACEMENTTOUNICODE_CID);
   1.478 +NS_DEFINE_NAMED_CID(NS_UNICODETOISO88591_CID);
   1.479 +NS_DEFINE_NAMED_CID(NS_UNICODETOCP1252_CID);
   1.480 +NS_DEFINE_NAMED_CID(NS_UNICODETOMACROMAN_CID);
   1.481 +NS_DEFINE_NAMED_CID(NS_UNICODETOUTF8_CID);
   1.482 +NS_DEFINE_NAMED_CID(NS_ASCIITOUNICODE_CID);
   1.483 +NS_DEFINE_NAMED_CID(NS_ISO88592TOUNICODE_CID);
   1.484 +NS_DEFINE_NAMED_CID(NS_ISO88593TOUNICODE_CID);
   1.485 +NS_DEFINE_NAMED_CID(NS_ISO88594TOUNICODE_CID);
   1.486 +NS_DEFINE_NAMED_CID(NS_ISO88595TOUNICODE_CID);
   1.487 +NS_DEFINE_NAMED_CID(NS_ISO88596TOUNICODE_CID);
   1.488 +NS_DEFINE_NAMED_CID(NS_ISO88596ITOUNICODE_CID);
   1.489 +NS_DEFINE_NAMED_CID(NS_ISO88596ETOUNICODE_CID);
   1.490 +NS_DEFINE_NAMED_CID(NS_ISO88597TOUNICODE_CID);
   1.491 +NS_DEFINE_NAMED_CID(NS_ISO88598TOUNICODE_CID);
   1.492 +NS_DEFINE_NAMED_CID(NS_ISO88598ITOUNICODE_CID);
   1.493 +NS_DEFINE_NAMED_CID(NS_ISO88598ETOUNICODE_CID);
   1.494 +NS_DEFINE_NAMED_CID(NS_ISO88599TOUNICODE_CID);
   1.495 +NS_DEFINE_NAMED_CID(NS_ISO885910TOUNICODE_CID);
   1.496 +NS_DEFINE_NAMED_CID(NS_ISO885913TOUNICODE_CID);
   1.497 +NS_DEFINE_NAMED_CID(NS_ISO885914TOUNICODE_CID);
   1.498 +NS_DEFINE_NAMED_CID(NS_ISO885915TOUNICODE_CID);
   1.499 +NS_DEFINE_NAMED_CID(NS_ISO885916TOUNICODE_CID);
   1.500 +NS_DEFINE_NAMED_CID(NS_ISOIR111TOUNICODE_CID);
   1.501 +NS_DEFINE_NAMED_CID(NS_CP1250TOUNICODE_CID);
   1.502 +NS_DEFINE_NAMED_CID(NS_CP1251TOUNICODE_CID);
   1.503 +NS_DEFINE_NAMED_CID(NS_CP1253TOUNICODE_CID);
   1.504 +NS_DEFINE_NAMED_CID(NS_CP1254TOUNICODE_CID);
   1.505 +NS_DEFINE_NAMED_CID(NS_CP1255TOUNICODE_CID);
   1.506 +NS_DEFINE_NAMED_CID(NS_CP1256TOUNICODE_CID);
   1.507 +NS_DEFINE_NAMED_CID(NS_CP1257TOUNICODE_CID);
   1.508 +NS_DEFINE_NAMED_CID(NS_CP1258TOUNICODE_CID);
   1.509 +NS_DEFINE_NAMED_CID(NS_TIS620TOUNICODE_CID);
   1.510 +NS_DEFINE_NAMED_CID(NS_ISO885911TOUNICODE_CID);
   1.511 +NS_DEFINE_NAMED_CID(NS_CP874TOUNICODE_CID);
   1.512 +NS_DEFINE_NAMED_CID(NS_CP866TOUNICODE_CID);
   1.513 +NS_DEFINE_NAMED_CID(NS_KOI8RTOUNICODE_CID);
   1.514 +NS_DEFINE_NAMED_CID(NS_KOI8UTOUNICODE_CID);
   1.515 +NS_DEFINE_NAMED_CID(NS_MACCETOUNICODE_CID);
   1.516 +NS_DEFINE_NAMED_CID(NS_MACGREEKTOUNICODE_CID);
   1.517 +NS_DEFINE_NAMED_CID(NS_MACTURKISHTOUNICODE_CID);
   1.518 +NS_DEFINE_NAMED_CID(NS_MACCROATIANTOUNICODE_CID);
   1.519 +NS_DEFINE_NAMED_CID(NS_MACROMANIANTOUNICODE_CID);
   1.520 +NS_DEFINE_NAMED_CID(NS_MACCYRILLICTOUNICODE_CID);
   1.521 +NS_DEFINE_NAMED_CID(NS_MACICELANDICTOUNICODE_CID);
   1.522 +NS_DEFINE_NAMED_CID(NS_ARMSCII8TOUNICODE_CID);
   1.523 +NS_DEFINE_NAMED_CID(NS_TCVN5712TOUNICODE_CID);
   1.524 +NS_DEFINE_NAMED_CID(NS_VISCIITOUNICODE_CID);
   1.525 +NS_DEFINE_NAMED_CID(NS_VPSTOUNICODE_CID);
   1.526 +NS_DEFINE_NAMED_CID(NS_UTF16TOUNICODE_CID);
   1.527 +NS_DEFINE_NAMED_CID(NS_UTF16BETOUNICODE_CID);
   1.528 +NS_DEFINE_NAMED_CID(NS_UTF16LETOUNICODE_CID);
   1.529 +NS_DEFINE_NAMED_CID(NS_T61TOUNICODE_CID);
   1.530 +NS_DEFINE_NAMED_CID(NS_USERDEFINEDTOUNICODE_CID);
   1.531 +NS_DEFINE_NAMED_CID(NS_MACARABICTOUNICODE_CID);
   1.532 +NS_DEFINE_NAMED_CID(NS_MACDEVANAGARITOUNICODE_CID);
   1.533 +NS_DEFINE_NAMED_CID(NS_MACFARSITOUNICODE_CID);
   1.534 +NS_DEFINE_NAMED_CID(NS_MACGURMUKHITOUNICODE_CID);
   1.535 +NS_DEFINE_NAMED_CID(NS_MACGUJARATITOUNICODE_CID);
   1.536 +NS_DEFINE_NAMED_CID(NS_MACHEBREWTOUNICODE_CID);
   1.537 +NS_DEFINE_NAMED_CID(NS_UNICODETOASCII_CID);
   1.538 +NS_DEFINE_NAMED_CID(NS_UNICODETOISO88592_CID);
   1.539 +NS_DEFINE_NAMED_CID(NS_UNICODETOISO88593_CID);
   1.540 +NS_DEFINE_NAMED_CID(NS_UNICODETOISO88594_CID);
   1.541 +NS_DEFINE_NAMED_CID(NS_UNICODETOISO88595_CID);
   1.542 +NS_DEFINE_NAMED_CID(NS_UNICODETOISO88596_CID);
   1.543 +NS_DEFINE_NAMED_CID(NS_UNICODETOISO88596I_CID);
   1.544 +NS_DEFINE_NAMED_CID(NS_UNICODETOISO88596E_CID);
   1.545 +NS_DEFINE_NAMED_CID(NS_UNICODETOISO88597_CID);
   1.546 +NS_DEFINE_NAMED_CID(NS_UNICODETOISO88598_CID);
   1.547 +NS_DEFINE_NAMED_CID(NS_UNICODETOISO88598I_CID);
   1.548 +NS_DEFINE_NAMED_CID(NS_UNICODETOISO88598E_CID);
   1.549 +NS_DEFINE_NAMED_CID(NS_UNICODETOISO88599_CID);
   1.550 +NS_DEFINE_NAMED_CID(NS_UNICODETOISO885910_CID);
   1.551 +NS_DEFINE_NAMED_CID(NS_UNICODETOISO885913_CID);
   1.552 +NS_DEFINE_NAMED_CID(NS_UNICODETOISO885914_CID);
   1.553 +NS_DEFINE_NAMED_CID(NS_UNICODETOISO885915_CID);
   1.554 +NS_DEFINE_NAMED_CID(NS_UNICODETOISO885916_CID);
   1.555 +NS_DEFINE_NAMED_CID(NS_UNICODETOISOIR111_CID);
   1.556 +NS_DEFINE_NAMED_CID(NS_UNICODETOCP1250_CID);
   1.557 +NS_DEFINE_NAMED_CID(NS_UNICODETOCP1251_CID);
   1.558 +NS_DEFINE_NAMED_CID(NS_UNICODETOCP1253_CID);
   1.559 +NS_DEFINE_NAMED_CID(NS_UNICODETOCP1254_CID);
   1.560 +NS_DEFINE_NAMED_CID(NS_UNICODETOCP1255_CID);
   1.561 +NS_DEFINE_NAMED_CID(NS_UNICODETOCP1256_CID);
   1.562 +NS_DEFINE_NAMED_CID(NS_UNICODETOCP1257_CID);
   1.563 +NS_DEFINE_NAMED_CID(NS_UNICODETOCP1258_CID);
   1.564 +NS_DEFINE_NAMED_CID(NS_UNICODETOTIS620_CID);
   1.565 +NS_DEFINE_NAMED_CID(NS_UNICODETOISO885911_CID);
   1.566 +NS_DEFINE_NAMED_CID(NS_UNICODETOCP874_CID);
   1.567 +NS_DEFINE_NAMED_CID(NS_UNICODETOCP866_CID);
   1.568 +NS_DEFINE_NAMED_CID(NS_UNICODETOKOI8R_CID);
   1.569 +NS_DEFINE_NAMED_CID(NS_UNICODETOKOI8U_CID);
   1.570 +NS_DEFINE_NAMED_CID(NS_UNICODETOMACCE_CID);
   1.571 +NS_DEFINE_NAMED_CID(NS_UNICODETOMACGREEK_CID);
   1.572 +NS_DEFINE_NAMED_CID(NS_UNICODETOMACTURKISH_CID);
   1.573 +NS_DEFINE_NAMED_CID(NS_UNICODETOMACCROATIAN_CID);
   1.574 +NS_DEFINE_NAMED_CID(NS_UNICODETOMACROMANIAN_CID);
   1.575 +NS_DEFINE_NAMED_CID(NS_UNICODETOMACCYRILLIC_CID);
   1.576 +NS_DEFINE_NAMED_CID(NS_UNICODETOMACICELANDIC_CID);
   1.577 +NS_DEFINE_NAMED_CID(NS_UNICODETOARMSCII8_CID);
   1.578 +NS_DEFINE_NAMED_CID(NS_UNICODETOTCVN5712_CID);
   1.579 +NS_DEFINE_NAMED_CID(NS_UNICODETOVISCII_CID);
   1.580 +NS_DEFINE_NAMED_CID(NS_UNICODETOVPS_CID);
   1.581 +NS_DEFINE_NAMED_CID(NS_UNICODETOUTF16BE_CID);
   1.582 +NS_DEFINE_NAMED_CID(NS_UNICODETOUTF16LE_CID);
   1.583 +NS_DEFINE_NAMED_CID(NS_UNICODETOUTF16_CID);
   1.584 +NS_DEFINE_NAMED_CID(NS_UNICODETOT61_CID);
   1.585 +NS_DEFINE_NAMED_CID(NS_UNICODETOUSERDEFINED_CID);
   1.586 +NS_DEFINE_NAMED_CID(NS_UNICODETOMACARABIC_CID);
   1.587 +NS_DEFINE_NAMED_CID(NS_UNICODETOMACDEVANAGARI_CID);
   1.588 +NS_DEFINE_NAMED_CID(NS_UNICODETOMACFARSI_CID);
   1.589 +NS_DEFINE_NAMED_CID(NS_UNICODETOMACGURMUKHI_CID);
   1.590 +NS_DEFINE_NAMED_CID(NS_UNICODETOMACGUJARATI_CID);
   1.591 +NS_DEFINE_NAMED_CID(NS_UNICODETOMACHEBREW_CID);
   1.592 +NS_DEFINE_NAMED_CID(NS_CP850TOUNICODE_CID);
   1.593 +NS_DEFINE_NAMED_CID(NS_CP852TOUNICODE_CID);
   1.594 +NS_DEFINE_NAMED_CID(NS_CP855TOUNICODE_CID);
   1.595 +NS_DEFINE_NAMED_CID(NS_CP857TOUNICODE_CID);
   1.596 +NS_DEFINE_NAMED_CID(NS_CP862TOUNICODE_CID);
   1.597 +NS_DEFINE_NAMED_CID(NS_CP864TOUNICODE_CID);
   1.598 +NS_DEFINE_NAMED_CID(NS_UNICODETOCP850_CID);
   1.599 +NS_DEFINE_NAMED_CID(NS_UNICODETOCP852_CID);
   1.600 +NS_DEFINE_NAMED_CID(NS_UNICODETOCP855_CID);
   1.601 +NS_DEFINE_NAMED_CID(NS_UNICODETOCP857_CID);
   1.602 +NS_DEFINE_NAMED_CID(NS_UNICODETOCP862_CID);
   1.603 +NS_DEFINE_NAMED_CID(NS_UNICODETOCP864_CID);
   1.604 +NS_DEFINE_NAMED_CID(NS_SJISTOUNICODE_CID);
   1.605 +NS_DEFINE_NAMED_CID(NS_EUCJPTOUNICODE_CID);
   1.606 +NS_DEFINE_NAMED_CID( NS_ISO2022JPTOUNICODE_CID);
   1.607 +NS_DEFINE_NAMED_CID(NS_UNICODETOSJIS_CID);
   1.608 +NS_DEFINE_NAMED_CID(NS_UNICODETOEUCJP_CID);
   1.609 +NS_DEFINE_NAMED_CID(NS_UNICODETOISO2022JP_CID);
   1.610 +NS_DEFINE_NAMED_CID(NS_UNICODETOJISX0201_CID);
   1.611 +NS_DEFINE_NAMED_CID(NS_EUCTWTOUNICODE_CID);
   1.612 +NS_DEFINE_NAMED_CID(NS_UNICODETOEUCTW_CID);
   1.613 +NS_DEFINE_NAMED_CID(NS_UNICODETOBIG5_CID);
   1.614 +NS_DEFINE_NAMED_CID(NS_BIG5TOUNICODE_CID);
   1.615 +NS_DEFINE_NAMED_CID(NS_UNICODETOBIG5HKSCS_CID);
   1.616 +NS_DEFINE_NAMED_CID(NS_UNICODETOHKSCS_CID);
   1.617 +NS_DEFINE_NAMED_CID(NS_BIG5HKSCSTOUNICODE_CID);
   1.618 +NS_DEFINE_NAMED_CID(NS_EUCKRTOUNICODE_CID);
   1.619 +NS_DEFINE_NAMED_CID(NS_UNICODETOEUCKR_CID);
   1.620 +NS_DEFINE_NAMED_CID(NS_JOHABTOUNICODE_CID);
   1.621 +NS_DEFINE_NAMED_CID(NS_UNICODETOJOHAB_CID);
   1.622 +NS_DEFINE_NAMED_CID(NS_ISO2022KRTOUNICODE_CID);
   1.623 +NS_DEFINE_NAMED_CID(NS_GB2312TOUNICODE_CID);
   1.624 +NS_DEFINE_NAMED_CID(NS_UNICODETOGB2312_CID);
   1.625 +NS_DEFINE_NAMED_CID(NS_GBKTOUNICODE_CID);
   1.626 +NS_DEFINE_NAMED_CID(NS_UNICODETOGBK_CID);
   1.627 +NS_DEFINE_NAMED_CID(NS_HZTOUNICODE_CID);
   1.628 +NS_DEFINE_NAMED_CID(NS_UNICODETOHZ_CID);
   1.629 +NS_DEFINE_NAMED_CID(NS_GB18030TOUNICODE_CID);
   1.630 +NS_DEFINE_NAMED_CID(NS_UNICODETOGB18030_CID);
   1.631 +NS_DEFINE_NAMED_CID(NS_ISO2022CNTOUNICODE_CID);
   1.632 +
   1.633 +static const mozilla::Module::CIDEntry kUConvCIDs[] = {
   1.634 +  { &kNS_ICHARSETCONVERTERMANAGER_CID, false, nullptr, nsCharsetConverterManagerConstructor },
   1.635 +  { &kNS_TEXTTOSUBURI_CID, false, nullptr, nsTextToSubURIConstructor },
   1.636 +  { &kNS_CONVERTERINPUTSTREAM_CID, false, nullptr, nsConverterInputStreamConstructor },
   1.637 +  { &kNS_CONVERTEROUTPUTSTREAM_CID, false, nullptr, nsConverterOutputStreamConstructor },
   1.638 +  { &kNS_ISCRIPTABLEUNICODECONVERTER_CID, false, nullptr, nsScriptableUnicodeConverterConstructor },
   1.639 +  { &kNS_UTF8CONVERTERSERVICE_CID, false, nullptr, nsUTF8ConverterServiceConstructor },
   1.640 +  { &kNS_ISO88591TOUNICODE_CID, false, nullptr, nsISO88591ToUnicodeConstructor },
   1.641 +  { &kNS_CP1252TOUNICODE_CID, false, nullptr, nsCP1252ToUnicodeConstructor },
   1.642 +  { &kNS_MACROMANTOUNICODE_CID, false, nullptr, nsMacRomanToUnicodeConstructor },
   1.643 +  { &kNS_REPLACEMENTTOUNICODE_CID, false, nullptr, nsReplacementToUnicodeConstructor },
   1.644 +  { &kNS_UTF8TOUNICODE_CID, false, nullptr, nsUTF8ToUnicodeConstructor },
   1.645 +  { &kNS_UNICODETOISO88591_CID, false, nullptr, nsUnicodeToISO88591Constructor },
   1.646 +  { &kNS_UNICODETOCP1252_CID, false, nullptr, nsUnicodeToCP1252Constructor },
   1.647 +  { &kNS_UNICODETOMACROMAN_CID, false, nullptr, nsUnicodeToMacRomanConstructor },
   1.648 +  { &kNS_UNICODETOUTF8_CID, false, nullptr, nsUnicodeToUTF8Constructor },
   1.649 +  { &kNS_ASCIITOUNICODE_CID, false, nullptr, nsAsciiToUnicodeConstructor },
   1.650 +  { &kNS_ISO88592TOUNICODE_CID, false, nullptr, nsISO88592ToUnicodeConstructor },
   1.651 +  { &kNS_ISO88593TOUNICODE_CID, false, nullptr, nsISO88593ToUnicodeConstructor },
   1.652 +  { &kNS_ISO88594TOUNICODE_CID, false, nullptr, nsISO88594ToUnicodeConstructor },
   1.653 +  { &kNS_ISO88595TOUNICODE_CID, false, nullptr, nsISO88595ToUnicodeConstructor },
   1.654 +  { &kNS_ISO88596TOUNICODE_CID, false, nullptr, nsISO88596ToUnicodeConstructor },
   1.655 +  { &kNS_ISO88596ITOUNICODE_CID, false, nullptr, nsISO88596IToUnicodeConstructor },
   1.656 +  { &kNS_ISO88596ETOUNICODE_CID, false, nullptr, nsISO88596EToUnicodeConstructor },
   1.657 +  { &kNS_ISO88597TOUNICODE_CID, false, nullptr, nsISO88597ToUnicodeConstructor },
   1.658 +  { &kNS_ISO88598TOUNICODE_CID, false, nullptr, nsISO88598ToUnicodeConstructor },
   1.659 +  { &kNS_ISO88598ITOUNICODE_CID, false, nullptr, nsISO88598IToUnicodeConstructor },
   1.660 +  { &kNS_ISO88598ETOUNICODE_CID, false, nullptr, nsISO88598EToUnicodeConstructor },
   1.661 +  { &kNS_ISO88599TOUNICODE_CID, false, nullptr, nsISO88599ToUnicodeConstructor },
   1.662 +  { &kNS_ISO885910TOUNICODE_CID, false, nullptr, nsISO885910ToUnicodeConstructor },
   1.663 +  { &kNS_ISO885913TOUNICODE_CID, false, nullptr, nsISO885913ToUnicodeConstructor },
   1.664 +  { &kNS_ISO885914TOUNICODE_CID, false, nullptr, nsISO885914ToUnicodeConstructor },
   1.665 +  { &kNS_ISO885915TOUNICODE_CID, false, nullptr, nsISO885915ToUnicodeConstructor },
   1.666 +  { &kNS_ISO885916TOUNICODE_CID, false, nullptr, nsISO885916ToUnicodeConstructor },
   1.667 +  { &kNS_ISOIR111TOUNICODE_CID, false, nullptr, nsISOIR111ToUnicodeConstructor },
   1.668 +  { &kNS_CP1250TOUNICODE_CID, false, nullptr, nsCP1250ToUnicodeConstructor },
   1.669 +  { &kNS_CP1251TOUNICODE_CID, false, nullptr, nsCP1251ToUnicodeConstructor },
   1.670 +  { &kNS_CP1253TOUNICODE_CID, false, nullptr, nsCP1253ToUnicodeConstructor },
   1.671 +  { &kNS_CP1254TOUNICODE_CID, false, nullptr, nsCP1254ToUnicodeConstructor },
   1.672 +  { &kNS_CP1255TOUNICODE_CID, false, nullptr, nsCP1255ToUnicodeConstructor },
   1.673 +  { &kNS_CP1256TOUNICODE_CID, false, nullptr, nsCP1256ToUnicodeConstructor },
   1.674 +  { &kNS_CP1257TOUNICODE_CID, false, nullptr, nsCP1257ToUnicodeConstructor },
   1.675 +  { &kNS_CP1258TOUNICODE_CID, false, nullptr, nsCP1258ToUnicodeConstructor },
   1.676 +  { &kNS_TIS620TOUNICODE_CID, false, nullptr, nsTIS620ToUnicodeConstructor },
   1.677 +  { &kNS_ISO885911TOUNICODE_CID, false, nullptr, nsISO885911ToUnicodeConstructor },
   1.678 +  { &kNS_CP874TOUNICODE_CID, false, nullptr, nsCP874ToUnicodeConstructor },
   1.679 +  { &kNS_CP866TOUNICODE_CID, false, nullptr, nsCP866ToUnicodeConstructor },
   1.680 +  { &kNS_KOI8RTOUNICODE_CID, false, nullptr, nsKOI8RToUnicodeConstructor },
   1.681 +  { &kNS_KOI8UTOUNICODE_CID, false, nullptr, nsKOI8UToUnicodeConstructor },
   1.682 +  { &kNS_MACCETOUNICODE_CID, false, nullptr, nsMacCEToUnicodeConstructor },
   1.683 +  { &kNS_MACGREEKTOUNICODE_CID, false, nullptr, nsMacGreekToUnicodeConstructor },
   1.684 +  { &kNS_MACTURKISHTOUNICODE_CID, false, nullptr, nsMacTurkishToUnicodeConstructor },
   1.685 +  { &kNS_MACCROATIANTOUNICODE_CID, false, nullptr, nsMacCroatianToUnicodeConstructor },
   1.686 +  { &kNS_MACROMANIANTOUNICODE_CID, false, nullptr, nsMacRomanianToUnicodeConstructor },
   1.687 +  { &kNS_MACCYRILLICTOUNICODE_CID, false, nullptr, nsMacCyrillicToUnicodeConstructor },
   1.688 +  { &kNS_MACICELANDICTOUNICODE_CID, false, nullptr, nsMacIcelandicToUnicodeConstructor },
   1.689 +  { &kNS_ARMSCII8TOUNICODE_CID, false, nullptr, nsARMSCII8ToUnicodeConstructor },
   1.690 +  { &kNS_TCVN5712TOUNICODE_CID, false, nullptr, nsTCVN5712ToUnicodeConstructor },
   1.691 +  { &kNS_VISCIITOUNICODE_CID, false, nullptr, nsVISCIIToUnicodeConstructor },
   1.692 +  { &kNS_VPSTOUNICODE_CID, false, nullptr, nsVPSToUnicodeConstructor },
   1.693 +  { &kNS_UTF16TOUNICODE_CID, false, nullptr, nsUTF16ToUnicodeConstructor },
   1.694 +  { &kNS_UTF16BETOUNICODE_CID, false, nullptr, nsUTF16BEToUnicodeConstructor },
   1.695 +  { &kNS_UTF16LETOUNICODE_CID, false, nullptr, nsUTF16LEToUnicodeConstructor },
   1.696 +  { &kNS_T61TOUNICODE_CID, false, nullptr, nsT61ToUnicodeConstructor },
   1.697 +  { &kNS_USERDEFINEDTOUNICODE_CID, false, nullptr, nsUserDefinedToUnicodeConstructor },
   1.698 +  { &kNS_MACARABICTOUNICODE_CID, false, nullptr, nsMacArabicToUnicodeConstructor },
   1.699 +  { &kNS_MACDEVANAGARITOUNICODE_CID, false, nullptr, nsMacDevanagariToUnicodeConstructor },
   1.700 +  { &kNS_MACFARSITOUNICODE_CID, false, nullptr, nsMacFarsiToUnicodeConstructor },
   1.701 +  { &kNS_MACGURMUKHITOUNICODE_CID, false, nullptr, nsMacGurmukhiToUnicodeConstructor },
   1.702 +  { &kNS_MACGUJARATITOUNICODE_CID, false, nullptr, nsMacGujaratiToUnicodeConstructor },
   1.703 +  { &kNS_MACHEBREWTOUNICODE_CID, false, nullptr, nsMacHebrewToUnicodeConstructor },
   1.704 +  { &kNS_UNICODETOASCII_CID, false, nullptr, nsUnicodeToAsciiConstructor },
   1.705 +  { &kNS_UNICODETOISO88592_CID, false, nullptr, nsUnicodeToISO88592Constructor },
   1.706 +  { &kNS_UNICODETOISO88593_CID, false, nullptr, nsUnicodeToISO88593Constructor },
   1.707 +  { &kNS_UNICODETOISO88594_CID, false, nullptr, nsUnicodeToISO88594Constructor },
   1.708 +  { &kNS_UNICODETOISO88595_CID, false, nullptr, nsUnicodeToISO88595Constructor },
   1.709 +  { &kNS_UNICODETOISO88596_CID, false, nullptr, nsUnicodeToISO88596Constructor },
   1.710 +  { &kNS_UNICODETOISO88596I_CID, false, nullptr, nsUnicodeToISO88596IConstructor },
   1.711 +  { &kNS_UNICODETOISO88596E_CID, false, nullptr, nsUnicodeToISO88596EConstructor },
   1.712 +  { &kNS_UNICODETOISO88597_CID, false, nullptr, nsUnicodeToISO88597Constructor },
   1.713 +  { &kNS_UNICODETOISO88598_CID, false, nullptr, nsUnicodeToISO88598Constructor },
   1.714 +  { &kNS_UNICODETOISO88598I_CID, false, nullptr, nsUnicodeToISO88598IConstructor },
   1.715 +  { &kNS_UNICODETOISO88598E_CID, false, nullptr, nsUnicodeToISO88598EConstructor },
   1.716 +  { &kNS_UNICODETOISO88599_CID, false, nullptr, nsUnicodeToISO88599Constructor },
   1.717 +  { &kNS_UNICODETOISO885910_CID, false, nullptr, nsUnicodeToISO885910Constructor },
   1.718 +  { &kNS_UNICODETOISO885913_CID, false, nullptr, nsUnicodeToISO885913Constructor },
   1.719 +  { &kNS_UNICODETOISO885914_CID, false, nullptr, nsUnicodeToISO885914Constructor },
   1.720 +  { &kNS_UNICODETOISO885915_CID, false, nullptr, nsUnicodeToISO885915Constructor },
   1.721 +  { &kNS_UNICODETOISO885916_CID, false, nullptr, nsUnicodeToISO885916Constructor },
   1.722 +  { &kNS_UNICODETOISOIR111_CID, false, nullptr, nsUnicodeToISOIR111Constructor },
   1.723 +  { &kNS_UNICODETOCP1250_CID, false, nullptr, nsUnicodeToCP1250Constructor },
   1.724 +  { &kNS_UNICODETOCP1251_CID, false, nullptr, nsUnicodeToCP1251Constructor },
   1.725 +  { &kNS_UNICODETOCP1253_CID, false, nullptr, nsUnicodeToCP1253Constructor },
   1.726 +  { &kNS_UNICODETOCP1254_CID, false, nullptr, nsUnicodeToCP1254Constructor },
   1.727 +  { &kNS_UNICODETOCP1255_CID, false, nullptr, nsUnicodeToCP1255Constructor },
   1.728 +  { &kNS_UNICODETOCP1256_CID, false, nullptr, nsUnicodeToCP1256Constructor },
   1.729 +  { &kNS_UNICODETOCP1257_CID, false, nullptr, nsUnicodeToCP1257Constructor },
   1.730 +  { &kNS_UNICODETOCP1258_CID, false, nullptr, nsUnicodeToCP1258Constructor },
   1.731 +  { &kNS_UNICODETOTIS620_CID, false, nullptr, nsUnicodeToTIS620Constructor },
   1.732 +  { &kNS_UNICODETOISO885911_CID, false, nullptr, nsUnicodeToISO885911Constructor },
   1.733 +  { &kNS_UNICODETOCP874_CID, false, nullptr, nsUnicodeToCP874Constructor },
   1.734 +  { &kNS_UNICODETOCP866_CID, false, nullptr, nsUnicodeToCP866Constructor },
   1.735 +  { &kNS_UNICODETOKOI8R_CID, false, nullptr, nsUnicodeToKOI8RConstructor },
   1.736 +  { &kNS_UNICODETOKOI8U_CID, false, nullptr, nsUnicodeToKOI8UConstructor },
   1.737 +  { &kNS_UNICODETOMACCE_CID, false, nullptr, nsUnicodeToMacCEConstructor },
   1.738 +  { &kNS_UNICODETOMACGREEK_CID, false, nullptr, nsUnicodeToMacGreekConstructor },
   1.739 +  { &kNS_UNICODETOMACTURKISH_CID, false, nullptr, nsUnicodeToMacTurkishConstructor },
   1.740 +  { &kNS_UNICODETOMACCROATIAN_CID, false, nullptr, nsUnicodeToMacCroatianConstructor },
   1.741 +  { &kNS_UNICODETOMACROMANIAN_CID, false, nullptr, nsUnicodeToMacRomanianConstructor },
   1.742 +  { &kNS_UNICODETOMACCYRILLIC_CID, false, nullptr, nsUnicodeToMacCyrillicConstructor },
   1.743 +  { &kNS_UNICODETOMACICELANDIC_CID, false, nullptr, nsUnicodeToMacIcelandicConstructor },
   1.744 +  { &kNS_UNICODETOARMSCII8_CID, false, nullptr, nsUnicodeToARMSCII8Constructor },
   1.745 +  { &kNS_UNICODETOTCVN5712_CID, false, nullptr, nsUnicodeToTCVN5712Constructor },
   1.746 +  { &kNS_UNICODETOVISCII_CID, false, nullptr, nsUnicodeToVISCIIConstructor },
   1.747 +  { &kNS_UNICODETOVPS_CID, false, nullptr, nsUnicodeToVPSConstructor },
   1.748 +  { &kNS_UNICODETOUTF16BE_CID, false, nullptr, nsUnicodeToUTF16BEConstructor },
   1.749 +  { &kNS_UNICODETOUTF16LE_CID, false, nullptr, nsUnicodeToUTF16LEConstructor },
   1.750 +  { &kNS_UNICODETOUTF16_CID, false, nullptr, nsUnicodeToUTF16Constructor },
   1.751 +  { &kNS_UNICODETOT61_CID, false, nullptr, nsUnicodeToT61Constructor },
   1.752 +  { &kNS_UNICODETOUSERDEFINED_CID, false, nullptr, nsUnicodeToUserDefinedConstructor },
   1.753 +  { &kNS_UNICODETOMACARABIC_CID, false, nullptr, nsUnicodeToMacArabicConstructor },
   1.754 +  { &kNS_UNICODETOMACDEVANAGARI_CID, false, nullptr, nsUnicodeToMacDevanagariConstructor },
   1.755 +  { &kNS_UNICODETOMACFARSI_CID, false, nullptr, nsUnicodeToMacFarsiConstructor },
   1.756 +  { &kNS_UNICODETOMACGURMUKHI_CID, false, nullptr, nsUnicodeToMacGurmukhiConstructor },
   1.757 +  { &kNS_UNICODETOMACGUJARATI_CID, false, nullptr, nsUnicodeToMacGujaratiConstructor },
   1.758 +  { &kNS_UNICODETOMACHEBREW_CID, false, nullptr, nsUnicodeToMacHebrewConstructor },
   1.759 +  { &kNS_CP850TOUNICODE_CID, false, nullptr, nsCP850ToUnicodeConstructor },
   1.760 +  { &kNS_CP852TOUNICODE_CID, false, nullptr, nsCP852ToUnicodeConstructor },
   1.761 +  { &kNS_CP855TOUNICODE_CID, false, nullptr, nsCP855ToUnicodeConstructor },
   1.762 +  { &kNS_CP857TOUNICODE_CID, false, nullptr, nsCP857ToUnicodeConstructor },
   1.763 +  { &kNS_CP862TOUNICODE_CID, false, nullptr, nsCP862ToUnicodeConstructor },
   1.764 +  { &kNS_CP864TOUNICODE_CID, false, nullptr, nsCP864ToUnicodeConstructor },
   1.765 +  { &kNS_UNICODETOCP850_CID, false, nullptr, nsUnicodeToCP850Constructor },
   1.766 +  { &kNS_UNICODETOCP852_CID, false, nullptr, nsUnicodeToCP852Constructor },
   1.767 +  { &kNS_UNICODETOCP855_CID, false, nullptr, nsUnicodeToCP855Constructor },
   1.768 +  { &kNS_UNICODETOCP857_CID, false, nullptr, nsUnicodeToCP857Constructor },
   1.769 +  { &kNS_UNICODETOCP862_CID, false, nullptr, nsUnicodeToCP862Constructor },
   1.770 +  { &kNS_UNICODETOCP864_CID, false, nullptr, nsUnicodeToCP864Constructor },
   1.771 +  { &kNS_SJISTOUNICODE_CID, false, nullptr, nsShiftJISToUnicodeConstructor },
   1.772 +  { &kNS_EUCJPTOUNICODE_CID, false, nullptr, nsEUCJPToUnicodeV2Constructor },
   1.773 +  { &kNS_ISO2022JPTOUNICODE_CID, false, nullptr, nsISO2022JPToUnicodeV2Constructor },
   1.774 +  { &kNS_UNICODETOSJIS_CID, false, nullptr, nsUnicodeToSJISConstructor },
   1.775 +  { &kNS_UNICODETOEUCJP_CID, false, nullptr, nsUnicodeToEUCJPConstructor },
   1.776 +  { &kNS_UNICODETOISO2022JP_CID, false, nullptr, nsUnicodeToISO2022JPConstructor },
   1.777 +  { &kNS_UNICODETOJISX0201_CID, false, nullptr, nsUnicodeToJISx0201Constructor },
   1.778 +  { &kNS_EUCTWTOUNICODE_CID, false, nullptr, nsEUCTWToUnicodeConstructor },
   1.779 +  { &kNS_UNICODETOEUCTW_CID, false, nullptr, nsUnicodeToEUCTWConstructor },
   1.780 +  { &kNS_UNICODETOBIG5_CID, false, nullptr, nsUnicodeToBIG5Constructor },
   1.781 +  { &kNS_BIG5TOUNICODE_CID, false, nullptr, nsBIG5ToUnicodeConstructor },
   1.782 +  { &kNS_UNICODETOBIG5HKSCS_CID, false, nullptr, nsUnicodeToBIG5HKSCSConstructor },
   1.783 +  { &kNS_UNICODETOHKSCS_CID, false, nullptr, nsUnicodeToHKSCSConstructor },
   1.784 +  { &kNS_BIG5HKSCSTOUNICODE_CID, false, nullptr, nsBIG5HKSCSToUnicodeConstructor },
   1.785 +  { &kNS_EUCKRTOUNICODE_CID, false, nullptr, nsCP949ToUnicodeConstructor },
   1.786 +  { &kNS_UNICODETOEUCKR_CID, false, nullptr, nsUnicodeToCP949Constructor },
   1.787 +  { &kNS_JOHABTOUNICODE_CID, false, nullptr, nsJohabToUnicodeConstructor },
   1.788 +  { &kNS_UNICODETOJOHAB_CID, false, nullptr, nsUnicodeToJohabConstructor },
   1.789 +  { &kNS_ISO2022KRTOUNICODE_CID, false, nullptr, nsISO2022KRToUnicodeConstructor },
   1.790 +  { &kNS_GB2312TOUNICODE_CID, false, nullptr, nsGB18030ToUnicodeConstructor },
   1.791 +  { &kNS_UNICODETOGB2312_CID, false, nullptr, nsUnicodeToGB2312V2Constructor },
   1.792 +  { &kNS_GBKTOUNICODE_CID, false, nullptr, nsGB18030ToUnicodeConstructor },
   1.793 +  { &kNS_UNICODETOGBK_CID, false, nullptr, nsUnicodeToGBKConstructor },
   1.794 +  { &kNS_HZTOUNICODE_CID, false, nullptr, nsHZToUnicodeConstructor },
   1.795 +  { &kNS_UNICODETOHZ_CID, false, nullptr, nsUnicodeToHZConstructor },
   1.796 +  { &kNS_GB18030TOUNICODE_CID, false, nullptr, nsGB18030ToUnicodeConstructor },
   1.797 +  { &kNS_UNICODETOGB18030_CID, false, nullptr, nsUnicodeToGB18030Constructor },
   1.798 +  { &kNS_ISO2022CNTOUNICODE_CID, false, nullptr, nsISO2022CNToUnicodeConstructor },
   1.799 +  { nullptr },
   1.800 +};
   1.801 +
   1.802 +static const mozilla::Module::ContractIDEntry kUConvContracts[] = {
   1.803 +  { NS_CHARSETCONVERTERMANAGER_CONTRACTID, &kNS_ICHARSETCONVERTERMANAGER_CID },
   1.804 +  { NS_ITEXTTOSUBURI_CONTRACTID, &kNS_TEXTTOSUBURI_CID },
   1.805 +  { NS_CONVERTERINPUTSTREAM_CONTRACTID, &kNS_CONVERTERINPUTSTREAM_CID },
   1.806 +  { "@mozilla.org/intl/converter-output-stream;1", &kNS_CONVERTEROUTPUTSTREAM_CID },
   1.807 +  { NS_ISCRIPTABLEUNICODECONVERTER_CONTRACTID, &kNS_ISCRIPTABLEUNICODECONVERTER_CID },
   1.808 +  { NS_UTF8CONVERTERSERVICE_CONTRACTID, &kNS_UTF8CONVERTERSERVICE_CID },
   1.809 +  { NS_ISO88591TOUNICODE_CONTRACTID, &kNS_ISO88591TOUNICODE_CID },
   1.810 +  { NS_CP1252TOUNICODE_CONTRACTID, &kNS_CP1252TOUNICODE_CID },
   1.811 +  { NS_MACROMANTOUNICODE_CONTRACTID, &kNS_MACROMANTOUNICODE_CID },
   1.812 +  { NS_REPLACEMENTTOUNICODE_CONTRACTID, &kNS_REPLACEMENTTOUNICODE_CID },
   1.813 +  { NS_UTF8TOUNICODE_CONTRACTID, &kNS_UTF8TOUNICODE_CID },
   1.814 +  { NS_UNICODETOISO88591_CONTRACTID, &kNS_UNICODETOISO88591_CID },
   1.815 +  { NS_UNICODETOCP1252_CONTRACTID, &kNS_UNICODETOCP1252_CID },
   1.816 +  { NS_UNICODETOMACROMAN_CONTRACTID, &kNS_UNICODETOMACROMAN_CID },
   1.817 +  { NS_UNICODETOUTF8_CONTRACTID, &kNS_UNICODETOUTF8_CID },
   1.818 +  { NS_UNICODEDECODER_CONTRACTID_BASE "us-ascii", &kNS_ASCIITOUNICODE_CID },
   1.819 +  { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-2", &kNS_ISO88592TOUNICODE_CID },
   1.820 +  { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-3", &kNS_ISO88593TOUNICODE_CID },
   1.821 +  { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-4", &kNS_ISO88594TOUNICODE_CID },
   1.822 +  { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-5", &kNS_ISO88595TOUNICODE_CID },
   1.823 +  { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-6", &kNS_ISO88596TOUNICODE_CID },
   1.824 +  { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-6-I", &kNS_ISO88596ITOUNICODE_CID },
   1.825 +  { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-6-E", &kNS_ISO88596ETOUNICODE_CID },
   1.826 +  { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-7", &kNS_ISO88597TOUNICODE_CID },
   1.827 +  { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-8", &kNS_ISO88598TOUNICODE_CID },
   1.828 +  { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-8-I", &kNS_ISO88598ITOUNICODE_CID },
   1.829 +  { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-8-E", &kNS_ISO88598ETOUNICODE_CID },
   1.830 +  { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-9", &kNS_ISO88599TOUNICODE_CID },
   1.831 +  { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-10", &kNS_ISO885910TOUNICODE_CID },
   1.832 +  { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-13", &kNS_ISO885913TOUNICODE_CID },
   1.833 +  { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-14", &kNS_ISO885914TOUNICODE_CID },
   1.834 +  { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-15", &kNS_ISO885915TOUNICODE_CID },
   1.835 +  { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-16", &kNS_ISO885916TOUNICODE_CID },
   1.836 +  { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-IR-111", &kNS_ISOIR111TOUNICODE_CID },
   1.837 +  { NS_UNICODEDECODER_CONTRACTID_BASE "windows-1250", &kNS_CP1250TOUNICODE_CID },
   1.838 +  { NS_UNICODEDECODER_CONTRACTID_BASE "windows-1251", &kNS_CP1251TOUNICODE_CID },
   1.839 +  { NS_UNICODEDECODER_CONTRACTID_BASE "windows-1253", &kNS_CP1253TOUNICODE_CID },
   1.840 +  { NS_UNICODEDECODER_CONTRACTID_BASE "windows-1254", &kNS_CP1254TOUNICODE_CID },
   1.841 +  { NS_UNICODEDECODER_CONTRACTID_BASE "windows-1255", &kNS_CP1255TOUNICODE_CID },
   1.842 +  { NS_UNICODEDECODER_CONTRACTID_BASE "windows-1256", &kNS_CP1256TOUNICODE_CID },
   1.843 +  { NS_UNICODEDECODER_CONTRACTID_BASE "windows-1257", &kNS_CP1257TOUNICODE_CID },
   1.844 +  { NS_UNICODEDECODER_CONTRACTID_BASE "windows-1258", &kNS_CP1258TOUNICODE_CID },
   1.845 +  { NS_UNICODEDECODER_CONTRACTID_BASE "TIS-620", &kNS_TIS620TOUNICODE_CID },
   1.846 +  { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-8859-11", &kNS_ISO885911TOUNICODE_CID },
   1.847 +  { NS_UNICODEDECODER_CONTRACTID_BASE "windows-874", &kNS_CP874TOUNICODE_CID },
   1.848 +  { NS_UNICODEDECODER_CONTRACTID_BASE "IBM866", &kNS_CP866TOUNICODE_CID },
   1.849 +  { NS_UNICODEDECODER_CONTRACTID_BASE "KOI8-R", &kNS_KOI8RTOUNICODE_CID },
   1.850 +  { NS_UNICODEDECODER_CONTRACTID_BASE "KOI8-U", &kNS_KOI8UTOUNICODE_CID },
   1.851 +  { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-ce", &kNS_MACCETOUNICODE_CID },
   1.852 +  { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-greek", &kNS_MACGREEKTOUNICODE_CID },
   1.853 +  { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-turkish", &kNS_MACTURKISHTOUNICODE_CID },
   1.854 +  { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-croatian", &kNS_MACCROATIANTOUNICODE_CID },
   1.855 +  { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-romanian", &kNS_MACROMANIANTOUNICODE_CID },
   1.856 +  { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-cyrillic", &kNS_MACCYRILLICTOUNICODE_CID },
   1.857 +  { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-icelandic", &kNS_MACICELANDICTOUNICODE_CID },
   1.858 +  { NS_UNICODEDECODER_CONTRACTID_BASE "armscii-8", &kNS_ARMSCII8TOUNICODE_CID },
   1.859 +  { NS_UNICODEDECODER_CONTRACTID_BASE "x-viet-tcvn5712", &kNS_TCVN5712TOUNICODE_CID },
   1.860 +  { NS_UNICODEDECODER_CONTRACTID_BASE "VISCII", &kNS_VISCIITOUNICODE_CID },
   1.861 +  { NS_UNICODEDECODER_CONTRACTID_BASE "x-viet-vps", &kNS_VPSTOUNICODE_CID },
   1.862 +  { NS_UNICODEDECODER_CONTRACTID_BASE "UTF-16", &kNS_UTF16TOUNICODE_CID },
   1.863 +  { NS_UNICODEDECODER_CONTRACTID_BASE "UTF-16BE", &kNS_UTF16BETOUNICODE_CID },
   1.864 +  { NS_UNICODEDECODER_CONTRACTID_BASE "UTF-16LE", &kNS_UTF16LETOUNICODE_CID },
   1.865 +  { NS_UNICODEDECODER_CONTRACTID_BASE "T.61-8bit", &kNS_T61TOUNICODE_CID },
   1.866 +  { NS_UNICODEDECODER_CONTRACTID_BASE "x-user-defined", &kNS_USERDEFINEDTOUNICODE_CID },
   1.867 +  { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-arabic", &kNS_MACARABICTOUNICODE_CID },
   1.868 +  { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-devanagari", &kNS_MACDEVANAGARITOUNICODE_CID },
   1.869 +  { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-farsi", &kNS_MACFARSITOUNICODE_CID },
   1.870 +  { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-gurmukhi", &kNS_MACGURMUKHITOUNICODE_CID },
   1.871 +  { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-gujarati", &kNS_MACGUJARATITOUNICODE_CID },
   1.872 +  { NS_UNICODEDECODER_CONTRACTID_BASE "x-mac-hebrew", &kNS_MACHEBREWTOUNICODE_CID },
   1.873 +  { NS_UNICODEENCODER_CONTRACTID_BASE "us-ascii", &kNS_UNICODETOASCII_CID },
   1.874 +  { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-2", &kNS_UNICODETOISO88592_CID },
   1.875 +  { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-3", &kNS_UNICODETOISO88593_CID },
   1.876 +  { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-4", &kNS_UNICODETOISO88594_CID },
   1.877 +  { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-5", &kNS_UNICODETOISO88595_CID },
   1.878 +  { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-6", &kNS_UNICODETOISO88596_CID },
   1.879 +  { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-6-I", &kNS_UNICODETOISO88596I_CID },
   1.880 +  { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-6-E", &kNS_UNICODETOISO88596E_CID },
   1.881 +  { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-7", &kNS_UNICODETOISO88597_CID },
   1.882 +  { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-8", &kNS_UNICODETOISO88598_CID },
   1.883 +  { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-8-I", &kNS_UNICODETOISO88598I_CID },
   1.884 +  { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-8-E", &kNS_UNICODETOISO88598E_CID },
   1.885 +  { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-9", &kNS_UNICODETOISO88599_CID },
   1.886 +  { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-10", &kNS_UNICODETOISO885910_CID },
   1.887 +  { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-13", &kNS_UNICODETOISO885913_CID },
   1.888 +  { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-14", &kNS_UNICODETOISO885914_CID },
   1.889 +  { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-15", &kNS_UNICODETOISO885915_CID },
   1.890 +  { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-16", &kNS_UNICODETOISO885916_CID },
   1.891 +  { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-IR-111", &kNS_UNICODETOISOIR111_CID },
   1.892 +  { NS_UNICODEENCODER_CONTRACTID_BASE "windows-1250", &kNS_UNICODETOCP1250_CID },
   1.893 +  { NS_UNICODEENCODER_CONTRACTID_BASE "windows-1251", &kNS_UNICODETOCP1251_CID },
   1.894 +  { NS_UNICODEENCODER_CONTRACTID_BASE "windows-1253", &kNS_UNICODETOCP1253_CID },
   1.895 +  { NS_UNICODEENCODER_CONTRACTID_BASE "windows-1254", &kNS_UNICODETOCP1254_CID },
   1.896 +  { NS_UNICODEENCODER_CONTRACTID_BASE "windows-1255", &kNS_UNICODETOCP1255_CID },
   1.897 +  { NS_UNICODEENCODER_CONTRACTID_BASE "windows-1256", &kNS_UNICODETOCP1256_CID },
   1.898 +  { NS_UNICODEENCODER_CONTRACTID_BASE "windows-1257", &kNS_UNICODETOCP1257_CID },
   1.899 +  { NS_UNICODEENCODER_CONTRACTID_BASE "windows-1258", &kNS_UNICODETOCP1258_CID },
   1.900 +  { NS_UNICODEENCODER_CONTRACTID_BASE "TIS-620", &kNS_UNICODETOTIS620_CID },
   1.901 +  { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-8859-11", &kNS_UNICODETOISO885911_CID },
   1.902 +  { NS_UNICODEENCODER_CONTRACTID_BASE "windows-874", &kNS_UNICODETOCP874_CID },
   1.903 +  { NS_UNICODEENCODER_CONTRACTID_BASE "IBM866", &kNS_UNICODETOCP866_CID },
   1.904 +  { NS_UNICODEENCODER_CONTRACTID_BASE "KOI8-R", &kNS_UNICODETOKOI8R_CID },
   1.905 +  { NS_UNICODEENCODER_CONTRACTID_BASE "KOI8-U", &kNS_UNICODETOKOI8U_CID },
   1.906 +  { NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-ce", &kNS_UNICODETOMACCE_CID },
   1.907 +  { NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-greek", &kNS_UNICODETOMACGREEK_CID },
   1.908 +  { NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-turkish", &kNS_UNICODETOMACTURKISH_CID },
   1.909 +  { NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-croatian", &kNS_UNICODETOMACCROATIAN_CID },
   1.910 +  { NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-romanian", &kNS_UNICODETOMACROMANIAN_CID },
   1.911 +  { NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-cyrillic", &kNS_UNICODETOMACCYRILLIC_CID },
   1.912 +  { NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-icelandic", &kNS_UNICODETOMACICELANDIC_CID },
   1.913 +  { NS_UNICODEENCODER_CONTRACTID_BASE "armscii-8", &kNS_UNICODETOARMSCII8_CID },
   1.914 +  { NS_UNICODEENCODER_CONTRACTID_BASE "x-viet-tcvn5712", &kNS_UNICODETOTCVN5712_CID },
   1.915 +  { NS_UNICODEENCODER_CONTRACTID_BASE "VISCII", &kNS_UNICODETOVISCII_CID },
   1.916 +  { NS_UNICODEENCODER_CONTRACTID_BASE "x-viet-vps", &kNS_UNICODETOVPS_CID },
   1.917 +  { NS_UNICODEENCODER_CONTRACTID_BASE "UTF-16BE", &kNS_UNICODETOUTF16BE_CID },
   1.918 +  { NS_UNICODEENCODER_CONTRACTID_BASE "UTF-16LE", &kNS_UNICODETOUTF16LE_CID },
   1.919 +  { NS_UNICODEENCODER_CONTRACTID_BASE "UTF-16", &kNS_UNICODETOUTF16_CID },
   1.920 +  { NS_UNICODEENCODER_CONTRACTID_BASE "T.61-8bit", &kNS_UNICODETOT61_CID },
   1.921 +  { NS_UNICODEENCODER_CONTRACTID_BASE "x-user-defined", &kNS_UNICODETOUSERDEFINED_CID },
   1.922 +  { NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-arabic", &kNS_UNICODETOMACARABIC_CID },
   1.923 +  { NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-devanagari", &kNS_UNICODETOMACDEVANAGARI_CID },
   1.924 +  { NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-farsi", &kNS_UNICODETOMACFARSI_CID },
   1.925 +  { NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-gurmukhi", &kNS_UNICODETOMACGURMUKHI_CID },
   1.926 +  { NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-gujarati", &kNS_UNICODETOMACGUJARATI_CID },
   1.927 +  { NS_UNICODEENCODER_CONTRACTID_BASE "x-mac-hebrew", &kNS_UNICODETOMACHEBREW_CID },
   1.928 +  { NS_UNICODEDECODER_CONTRACTID_BASE "IBM850", &kNS_CP850TOUNICODE_CID },
   1.929 +  { NS_UNICODEDECODER_CONTRACTID_BASE "IBM852", &kNS_CP852TOUNICODE_CID },
   1.930 +  { NS_UNICODEDECODER_CONTRACTID_BASE "IBM855", &kNS_CP855TOUNICODE_CID },
   1.931 +  { NS_UNICODEDECODER_CONTRACTID_BASE "IBM857", &kNS_CP857TOUNICODE_CID },
   1.932 +  { NS_UNICODEDECODER_CONTRACTID_BASE "IBM862", &kNS_CP862TOUNICODE_CID },
   1.933 +  { NS_UNICODEDECODER_CONTRACTID_BASE "IBM864", &kNS_CP864TOUNICODE_CID },
   1.934 +  { NS_UNICODEENCODER_CONTRACTID_BASE "IBM850", &kNS_UNICODETOCP850_CID },
   1.935 +  { NS_UNICODEENCODER_CONTRACTID_BASE "IBM852", &kNS_UNICODETOCP852_CID },
   1.936 +  { NS_UNICODEENCODER_CONTRACTID_BASE "IBM855", &kNS_UNICODETOCP855_CID },
   1.937 +  { NS_UNICODEENCODER_CONTRACTID_BASE "IBM857", &kNS_UNICODETOCP857_CID },
   1.938 +  { NS_UNICODEENCODER_CONTRACTID_BASE "IBM862", &kNS_UNICODETOCP862_CID },
   1.939 +  { NS_UNICODEENCODER_CONTRACTID_BASE "IBM864", &kNS_UNICODETOCP864_CID },
   1.940 +  { NS_UNICODEDECODER_CONTRACTID_BASE "Shift_JIS", &kNS_SJISTOUNICODE_CID },
   1.941 +  { NS_UNICODEDECODER_CONTRACTID_BASE "EUC-JP", &kNS_EUCJPTOUNICODE_CID },
   1.942 +  { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-2022-JP", &kNS_ISO2022JPTOUNICODE_CID },
   1.943 +  { NS_UNICODEENCODER_CONTRACTID_BASE "Shift_JIS", &kNS_UNICODETOSJIS_CID },
   1.944 +  { NS_UNICODEENCODER_CONTRACTID_BASE "EUC-JP", &kNS_UNICODETOEUCJP_CID },
   1.945 +  { NS_UNICODEENCODER_CONTRACTID_BASE "ISO-2022-JP", &kNS_UNICODETOISO2022JP_CID },
   1.946 +  { NS_UNICODEENCODER_CONTRACTID_BASE "jis_0201", &kNS_UNICODETOJISX0201_CID },
   1.947 +  { NS_UNICODEDECODER_CONTRACTID_BASE "x-euc-tw", &kNS_EUCTWTOUNICODE_CID },
   1.948 +  { NS_UNICODEENCODER_CONTRACTID_BASE "x-euc-tw", &kNS_UNICODETOEUCTW_CID },
   1.949 +  { NS_UNICODEENCODER_CONTRACTID_BASE "Big5", &kNS_UNICODETOBIG5_CID },
   1.950 +  { NS_UNICODEDECODER_CONTRACTID_BASE "Big5", &kNS_BIG5TOUNICODE_CID },
   1.951 +  { NS_UNICODEENCODER_CONTRACTID_BASE "Big5-HKSCS", &kNS_UNICODETOBIG5HKSCS_CID },
   1.952 +  { NS_UNICODEENCODER_CONTRACTID_BASE "hkscs-1", &kNS_UNICODETOHKSCS_CID },
   1.953 +  { NS_UNICODEDECODER_CONTRACTID_BASE "Big5-HKSCS", &kNS_BIG5HKSCSTOUNICODE_CID },
   1.954 +  { NS_UNICODEDECODER_CONTRACTID_BASE "EUC-KR", &kNS_EUCKRTOUNICODE_CID },
   1.955 +  { NS_UNICODEENCODER_CONTRACTID_BASE "EUC-KR", &kNS_UNICODETOEUCKR_CID },
   1.956 +  { NS_UNICODEDECODER_CONTRACTID_BASE "x-johab", &kNS_JOHABTOUNICODE_CID },
   1.957 +  { NS_UNICODEENCODER_CONTRACTID_BASE "x-johab", &kNS_UNICODETOJOHAB_CID },
   1.958 +  { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-2022-KR", &kNS_ISO2022KRTOUNICODE_CID },
   1.959 +  { NS_UNICODEDECODER_CONTRACTID_BASE "GB2312", &kNS_GB2312TOUNICODE_CID },
   1.960 +  { NS_UNICODEENCODER_CONTRACTID_BASE "GB2312", &kNS_UNICODETOGB2312_CID },
   1.961 +  { NS_UNICODEDECODER_CONTRACTID_BASE "gbk", &kNS_GBKTOUNICODE_CID },
   1.962 +  { NS_UNICODEENCODER_CONTRACTID_BASE "gbk", &kNS_UNICODETOGBK_CID },
   1.963 +  { NS_UNICODEDECODER_CONTRACTID_BASE "HZ-GB-2312", &kNS_HZTOUNICODE_CID },
   1.964 +  { NS_UNICODEENCODER_CONTRACTID_BASE "HZ-GB-2312", &kNS_UNICODETOHZ_CID },
   1.965 +  { NS_UNICODEDECODER_CONTRACTID_BASE "gb18030", &kNS_GB18030TOUNICODE_CID },
   1.966 +  { NS_UNICODEENCODER_CONTRACTID_BASE "gb18030", &kNS_UNICODETOGB18030_CID },
   1.967 +  { NS_UNICODEDECODER_CONTRACTID_BASE "ISO-2022-CN", &kNS_ISO2022CNTOUNICODE_CID },
   1.968 +  { nullptr }
   1.969 +};
   1.970 +
   1.971 +static const mozilla::Module kUConvModule = {
   1.972 +  mozilla::Module::kVersion,
   1.973 +  kUConvCIDs,
   1.974 +  kUConvContracts,
   1.975 +  kUConvCategories
   1.976 +};
   1.977 +
   1.978 +NSMODULE_DEFN(nsUConvModule) = &kUConvModule;

mercurial