michael@0: /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #include "nsBIG5HKSCSToUnicode.h" michael@0: #include "nsUCvTWDll.h" michael@0: #include "nsUCConstructors.h" michael@0: michael@0: //---------------------------------------------------------------------- michael@0: // Global functions and data [declaration] michael@0: michael@0: static const uScanClassID g_BIG5HKSCSScanClassIDs[] = { michael@0: u1ByteCharset, michael@0: u2BytesCharset, michael@0: u2BytesCharset, michael@0: u2BytesCharset, michael@0: u2BytesCharset, michael@0: u2BytesCharset michael@0: }; michael@0: michael@0: static const uint16_t *g_BIG5HKSCSMappingTableSet [] ={ michael@0: g_ASCIIMappingTable, michael@0: g_utBig5HKSCSMapping, michael@0: g_utBIG5Mapping, michael@0: g_utBig5HKSCSMapping, michael@0: g_utBIG5Mapping, michael@0: g_utBig5HKSCSMapping, michael@0: }; michael@0: michael@0: static const uRange g_BIG5HKSCSRanges[] = { michael@0: { 0x00, 0x7F }, michael@0: { 0x81, 0xA0 }, michael@0: { 0xA1, 0xC6 }, michael@0: { 0xC6, 0xC8 }, michael@0: { 0xC9, 0xF9 }, michael@0: { 0xF9, 0xFE } michael@0: }; michael@0: michael@0: //---------------------------------------------------------------------- michael@0: // Class nsBIG5HKSCSToUnicode [implementation] michael@0: michael@0: nsresult michael@0: nsBIG5HKSCSToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID, michael@0: void **aResult) michael@0: { michael@0: return CreateMultiTableDecoder(6, michael@0: (const uRange* ) &g_BIG5HKSCSRanges, michael@0: (uScanClassID*) &g_BIG5HKSCSScanClassIDs, michael@0: (uMappingTable**) &g_BIG5HKSCSMappingTableSet, michael@0: 1, michael@0: aOuter, aIID, aResult); michael@0: } michael@0: michael@0: