intl/uconv/ucvko/nsJohabToUnicode.cpp

branch
TOR_BUG_3246
changeset 7
129ffea94266
equal deleted inserted replaced
-1:000000000000 0:8283b4ae894d
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
6 #include "nsJohabToUnicode.h"
7 #include "nsUCvKODll.h"
8 #include "nsUCConstructors.h"
9 #include "mozilla/Telemetry.h"
10
11 using namespace mozilla;
12
13 //----------------------------------------------------------------------
14 // Global functions and data [declaration]
15
16 static const uScanClassID g_JOHABScanClassIDs[] = {
17 u1ByteCharset,
18 uJohabHangulCharset,
19 u2BytesCharset,
20 uJohabSymbolCharset,
21 uJohabSymbolCharset
22 };
23
24 static const uRange g_JOHABRanges[] = {
25 { 0x00, 0x7E },
26 { 0x84, 0xD3 },
27 { 0x84, 0xD3 },
28 { 0xD8, 0xDE },
29 { 0xE0, 0xF9 }
30 };
31
32 static const uint16_t g_utJohabJamoMapping[] ={
33 #include "johabjamo.ut"
34 };
35
36 static const uint16_t *g_JOHABMappingTableSet [] ={
37 g_ASCIIMappingTable,
38 g_HangulNullMapping,
39 g_utJohabJamoMapping,
40 g_utKSC5601Mapping,
41 g_utKSC5601Mapping
42 };
43
44
45 //----------------------------------------------------------------------
46 // Class nsJohabToUnicode [implementation]
47
48 nsresult
49 nsJohabToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
50 void **aResult)
51 {
52 Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_JOHAB, true);
53 return CreateMultiTableDecoder(sizeof(g_JOHABRanges) / sizeof(g_JOHABRanges[0]),
54 (const uRange*) &g_JOHABRanges,
55 (uScanClassID*) &g_JOHABScanClassIDs,
56 (uMappingTable**) &g_JOHABMappingTableSet, 1,
57 aOuter, aIID, aResult);
58 }
59

mercurial