[#ifdef MOZ_MATHML - NOT PART OF THE DEFAULT BUILD]. Adding the ucvmath module --for Mathematical charsets (symbols for MathML/scientific documents) r:cata@nestcape.com

This commit is contained in:
rbs%maths.uq.edu.au 2000-03-23 09:31:16 +00:00
parent 1450938032
commit 54fd15a45b
38 changed files with 6118 additions and 0 deletions

View File

@ -0,0 +1 @@
Makefile

View File

@ -0,0 +1,55 @@
#
# The contents of this file are subject to the Mozilla Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is Mozilla MathML Project.
#
# The Initial Developer of the Original Code is The University Of
# Queensland. Portions created by The University Of Queensland are
# Copyright (C) 1999 The University Of Queensland. All Rights Reserved.
#
# Contributor(s):
# Roger B. Sidje <rbs@maths.uq.edu.au>
#
DEPTH = ../../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
MODULE = ucvmath
LIBRARY_NAME = ucvmath
IS_COMPONENT = 1
REQUIRES = $(MODULE) libxpcom
CPPSRCS = \
nsUnicodeToTeXCMSYt1.cpp \
nsUnicodeToTeXCMSYttf.cpp \
nsUnicodeToTeXCMEXt1.cpp \
nsUnicodeToTeXCMEXttf.cpp \
nsUnicodeToMathematica1.cpp \
nsUnicodeToMathematica2.cpp \
nsUnicodeToMathematica3.cpp \
nsUnicodeToMathematica4.cpp \
nsUnicodeToMathematica5.cpp \
nsUnicodeToMTExtra.cpp \
nsUCvMathSupport.cpp \
nsUCvMathModule.cpp \
$(NULL)
EXPORTS = nsUCvMathCID.h
EXPORTS := $(addprefix $(srcdir)/, $(EXPORTS))
EXTRA_DSO_LDOPTS += $(MOZ_COMPONENT_LIBS)
include $(topsrcdir)/config/rules.mk

View File

@ -0,0 +1,90 @@
#!nmake
#
# The contents of this file are subject to the Mozilla Public
# License Version 1.1 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
# implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code is Mozilla MathML Project.
#
# The Initial Developer of the Original Code is The University Of
# Queensland. Portions created by The University Of Queensland are
# Copyright (C) 1999 The University Of Queensland. All Rights Reserved.
#
# Contributor(s):
# Roger B. Sidje <rbs@maths.uq.edu.au>
#
DEPTH=..\..\..
DEFINES=-D_IMPL_NS_INTL -DWIN32_LEAN_AND_MEAN
MODULE=uconv
REQUIRES=xpcom uconv
MAKE_OBJ_TYPE = DLL
DLLNAME = ucvmath
DLL=.\$(OBJDIR)\$(DLLNAME).dll
CPPSRCS = \
nsUnicodeToTeXCMSYttf.cpp \
nsUnicodeToTeXCMSYt1.cpp \
nsUnicodeToTeXCMEXttf.cpp \
nsUnicodeToTeXCMEXt1.cpp \
nsUnicodeToMathematica1.cpp \
nsUnicodeToMathematica2.cpp \
nsUnicodeToMathematica3.cpp \
nsUnicodeToMathematica4.cpp \
nsUnicodeToMathematica5.cpp \
nsUnicodeToMTExtra.cpp \
nsUCvMathSupport.cpp \
nsUCvMathModule.cpp \
$(NULL)
CPP_OBJS= \
.\$(OBJDIR)\nsUnicodeToTeXCMSYttf.obj \
.\$(OBJDIR)\nsUnicodeToTeXCMSYt1.obj \
.\$(OBJDIR)\nsUnicodeToTeXCMEXttf.obj \
.\$(OBJDIR)\nsUnicodeToTeXCMEXt1.obj \
.\$(OBJDIR)\nsUnicodeToMathematica1.obj \
.\$(OBJDIR)\nsUnicodeToMathematica2.obj \
.\$(OBJDIR)\nsUnicodeToMathematica3.obj \
.\$(OBJDIR)\nsUnicodeToMathematica4.obj \
.\$(OBJDIR)\nsUnicodeToMathematica5.obj \
.\$(OBJDIR)\nsUnicodeToMTExtra.obj \
.\$(OBJDIR)\nsUCvMathSupport.obj \
.\$(OBJDIR)\nsUCvMathModule.obj \
$(NULL)
EXPORTS=nsUCvMathCID.h \
$(NULL)
LINCS= \
-I$(PUBLIC)\raptor \
-I$(PUBLIC)\xpcom \
-I$(PUBLIC)\uconv \
$(NULL)
LLIBS= \
$(DIST)\lib\xpcom.lib \
$(LIBNSPR)
LCFLAGS = \
$(LCFLAGS) \
$(DEFINES) \
$(NULL)
include <$(DEPTH)\config\rules.mak>
install:: $(DLL)
$(MAKE_INSTALL) .\$(OBJDIR)\$(DLLNAME).dll $(DIST)\bin\components
$(MAKE_INSTALL) .\$(OBJDIR)\$(DLLNAME).lib $(DIST)\lib
clobber::
rm -f $(DIST)\bin\components\$(DLLNAME).dll
rm -f $(DIST)\bin\$(DLLNAME).lib

View File

@ -0,0 +1,416 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Roger B. Sidje <rbs@maths.uq.edu.au>
*
* This Original Code has been modified by Roger B. Sidje.
* Modifications made by Roger B. Sidje described herein are
* Copyright (C) 2000 The University Of Queensland.
*
* Modifications to Mozilla code or documentation
* identified per MPL Section 3.3
*
* Date Modified by Description of modification
* 08/March/2000 RBS. Support for Mathematical fonts.
*/
/*========================================================
This is a Generated file. Please don't edit it.
The tool which used to generate this file is called fromu.
If you have any problem of this file. Please contact
Netscape Client International Team or
ftang@netscape <Frank Tang>
Table in Debug form
Begin of Item 0000
Format 0
srcBegin = 0028
srcEnd = 003F
destBegin = 0028
End of Item 0000
Begin of Item 0001
Format 1
srcBegin = 0020
srcEnd = 0027
mappingOffset = 0000
Mapping =
0020 0021 008D 0023 FFFD 0025 0026 008C
End of Item 0001
Begin of Item 0002
Format 2
srcBegin = 0040
destBegin = 009E
End of Item 0002
Begin of Item 0003
Format 1
srcBegin = 005B
srcEnd = 0060
mappingOffset = 0008
Mapping =
005B FFFD 005D 0060 005F 008B
End of Item 0003
Begin of Item 0004
Format 2
srcBegin = 007E
destBegin = 007E
End of Item 0004
Begin of Item 0005
Format 1
srcBegin = 00A9
srcEnd = 00B7
mappingOffset = 000E
Mapping =
00D3 FFFD FFFD 00D8 FFFD 00D2 FFFD 00B0
00B1 FFFD FFFD FFFD FFFD FFFD 00D7
End of Item 0005
Begin of Item 0006
Format 2
srcBegin = 00D7
destBegin = 0089
End of Item 0006
Begin of Item 0007
Format 2
srcBegin = 00F7
destBegin = 00B8
End of Item 0007
Begin of Item 0008
Format 2
srcBegin = 0303
destBegin = 008E
End of Item 0008
Begin of Item 0009
Format 2
srcBegin = 0331
destBegin = 008F
End of Item 0009
Begin of Item 000A
Format 1
srcBegin = 0391
srcEnd = 03D6
mappingOffset = 001D
Mapping =
0041 0042 0047 0044 0045 005A 0048 0051
0049 004B 004C 004D 004E 0058 004F 0050
0052 FFFD 0053 0054 0055 0046 0043 0059
0057 FFFD FFFD FFFD FFFD FFFD FFFD FFFD
0061 0062 0067 0064 0065 007A 0068 0071
0069 006B 006C 006D 006E 0078 006F 0070
0072 0056 0073 0074 0075 0066 0063 0079
0077 FFFD FFFD FFFD FFFD FFFD FFFD FFFD
004A 00A1 FFFD FFFD 006A 0076
End of Item 000A
Begin of Item 000B
Format 2
srcBegin = 2010
destBegin = 0080
End of Item 000B
Begin of Item 000C
Format 1
srcBegin = 2022
srcEnd = 2026
mappingOffset = 0063
Mapping =
00B7 FFFD FFFD FFFD 00BC
End of Item 000C
Begin of Item 000D
Format 1
srcBegin = 2032
srcEnd = 2033
mappingOffset = 0068
Mapping =
00A2 00B2
End of Item 000D
Begin of Item 000E
Format 2
srcBegin = 2043
destBegin = 0085
End of Item 000E
Begin of Item 000F
Format 1
srcBegin = 2111
srcEnd = 2122
mappingOffset = 006A
Mapping =
00C1 FFFD FFFD FFFD FFFD FFFD FFFD 00C3
FFFD FFFD FFFD 00C2 FFFD FFFD FFFD FFFD
FFFD 00D4
End of Item 000F
Begin of Item 0010
Format 2
srcBegin = 2135
destBegin = 00C0
End of Item 0010
Begin of Item 0011
Format 1
srcBegin = 2190
srcEnd = 2194
mappingOffset = 007C
Mapping =
00AC 00AD 00AE 00AF 00AB
End of Item 0011
Begin of Item 0012
Format 2
srcBegin = 21B5
destBegin = 00BF
End of Item 0012
Begin of Item 0013
Format 2
srcBegin = 21D5
destBegin = 0090
End of Item 0013
Begin of Item 0014
Format 1
srcBegin = 2200
srcEnd = 2211
mappingOffset = 0081
Mapping =
0022 FFFD 00B6 0024 FFFD 00C6 FFFD 00D1
00CE 00CF FFFD FFFD FFFD 0027 FFFD 00D5
FFFD 00E5
End of Item 0014
Begin of Item 0015
Format 1
srcBegin = 221D
srcEnd = 2234
mappingOffset = 0093
Mapping =
00B5 00A5 FFFD 00D0 FFFD FFFD FFFD FFFD
FFFD FFFD 00D9 00DA FFFD FFFD 00F2 FFFD
FFFD FFFD FFFD FFFD FFFD FFFD FFFD 005C
End of Item 0015
Begin of Item 0016
Format 1
srcBegin = 2245
srcEnd = 2248
mappingOffset = 00AB
Mapping =
0040 FFFD FFFD 00BB
End of Item 0016
Begin of Item 0017
Format 1
srcBegin = 2260
srcEnd = 226B
mappingOffset = 00AF
Mapping =
00B9 00BA FFFD FFFD 00A3 00B3 FFFD FFFD
FFFD FFFD 0086 0087
End of Item 0017
Begin of Item 0018
Format 1
srcBegin = 2282
srcEnd = 2287
mappingOffset = 00BB
Mapping =
00CC 00C9 00CB FFFD 00CD 00CA
End of Item 0018
Begin of Item 0019
Format 1
srcBegin = 2295
srcEnd = 2297
mappingOffset = 00C1
Mapping =
00C5 FFFD 00C4
End of Item 0019
Begin of Item 001A
Format 2
srcBegin = 22A5
destBegin = 005E
End of Item 001A
Begin of Item 001B
Format 1
srcBegin = 22C2
srcEnd = 22C3
mappingOffset = 00C4
Mapping =
00C8 00C7
End of Item 001B
Begin of Item 001C
Format 2
srcBegin = 22F1
destBegin = 0084
End of Item 001C
Begin of Item 001D
Format 2
srcBegin = 2423
destBegin = 0088
End of Item 001D
Begin of Item 001E
Format 1
srcBegin = 25A0
srcEnd = 25AA
mappingOffset = 00C6
Mapping =
0082 0083 FFFD FFFD FFFD FFFD FFFD FFFD
FFFD FFFD 009F
End of Item 001E
Begin of Item 001F
Format 1
srcBegin = 2660
srcEnd = 2663
mappingOffset = 00D1
Mapping =
00AA 00A9 00A8 00A7
End of Item 001F
Begin of Item 0020
Format 1
srcBegin = E94B
srcEnd = E94E
mappingOffset = 00D5
Mapping =
008A FFFD 00A6 0081
End of Item 0020
Begin of Item 0021
Format 1
srcBegin = ED10
srcEnd = ED12
mappingOffset = 00D9
Mapping =
00E2 00E3 00E4
End of Item 0021
Begin of Item 0022
Format 2
srcBegin = F700
destBegin = 00FF
End of Item 0022
========================================================*/
/* Offset=0x0000 ItemOfList */
0x0023,
/*-------------------------------------------------------*/
/* Offset=0x0001 offsetToFormatArray */
0x0004,
/*-------------------------------------------------------*/
/* Offset=0x0002 offsetToMapCellArray */
0x000D,
/*-------------------------------------------------------*/
/* Offset=0x0003 offsetToMappingTable */
0x0076,
/*-------------------------------------------------------*/
/* Offset=0x0004 Start of Format Array */
/* Total of Format 0 : 0x0001 */
/* Total of Format 1 : 0x0013 */
/* Total of Format 2 : 0x000F */
/* Total of Format 3 : 0x0000 */
0x1210, 0x2212, 0x2122, 0x1211, 0x2212, 0x1111, 0x1211, 0x1122,
0x0211,
/*-------------------------------------------------------*/
/* Offset=0x000D Start of MapCell Array */
/* 0000 */ 0x0028, 0x003F, 0x0028,
/* 0001 */ 0x0020, 0x0027, 0x0000,
/* 0002 */ 0x0040, 0x0000, 0x009E,
/* 0003 */ 0x005B, 0x0060, 0x0008,
/* 0004 */ 0x007E, 0x0000, 0x007E,
/* 0005 */ 0x00A9, 0x00B7, 0x000E,
/* 0006 */ 0x00D7, 0x0000, 0x0089,
/* 0007 */ 0x00F7, 0x0000, 0x00B8,
/* 0008 */ 0x0303, 0x0000, 0x008E,
/* 0009 */ 0x0331, 0x0000, 0x008F,
/* 000A */ 0x0391, 0x03D6, 0x001D,
/* 000B */ 0x2010, 0x0000, 0x0080,
/* 000C */ 0x2022, 0x2026, 0x0063,
/* 000D */ 0x2032, 0x2033, 0x0068,
/* 000E */ 0x2043, 0x0000, 0x0085,
/* 000F */ 0x2111, 0x2122, 0x006A,
/* 0010 */ 0x2135, 0x0000, 0x00C0,
/* 0011 */ 0x2190, 0x2194, 0x007C,
/* 0012 */ 0x21B5, 0x0000, 0x00BF,
/* 0013 */ 0x21D5, 0x0000, 0x0090,
/* 0014 */ 0x2200, 0x2211, 0x0081,
/* 0015 */ 0x221D, 0x2234, 0x0093,
/* 0016 */ 0x2245, 0x2248, 0x00AB,
/* 0017 */ 0x2260, 0x226B, 0x00AF,
/* 0018 */ 0x2282, 0x2287, 0x00BB,
/* 0019 */ 0x2295, 0x2297, 0x00C1,
/* 001A */ 0x22A5, 0x0000, 0x005E,
/* 001B */ 0x22C2, 0x22C3, 0x00C4,
/* 001C */ 0x22F1, 0x0000, 0x0084,
/* 001D */ 0x2423, 0x0000, 0x0088,
/* 001E */ 0x25A0, 0x25AA, 0x00C6,
/* 001F */ 0x2660, 0x2663, 0x00D1,
/* 0020 */ 0xE94B, 0xE94E, 0x00D5,
/* 0021 */ 0xED10, 0xED12, 0x00D9,
/* 0022 */ 0xF700, 0x0000, 0x00FF,
/*-------------------------------------------------------*/
/* Offset=0x0076 Start of MappingTable */
/* 0000 */ 0x0020, 0x0021, 0x008D, 0x0023, 0xFFFD, 0x0025, 0x0026, 0x008C,
/* 0008 */ 0x005B, 0xFFFD, 0x005D, 0x0060, 0x005F, 0x008B, 0x00D3, 0xFFFD,
/* 0010 */ 0xFFFD, 0x00D8, 0xFFFD, 0x00D2, 0xFFFD, 0x00B0, 0x00B1, 0xFFFD,
/* 0018 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00D7, 0x0041, 0x0042, 0x0047,
/* 0020 */ 0x0044, 0x0045, 0x005A, 0x0048, 0x0051, 0x0049, 0x004B, 0x004C,
/* 0028 */ 0x004D, 0x004E, 0x0058, 0x004F, 0x0050, 0x0052, 0xFFFD, 0x0053,
/* 0030 */ 0x0054, 0x0055, 0x0046, 0x0043, 0x0059, 0x0057, 0xFFFD, 0xFFFD,
/* 0038 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0061, 0x0062, 0x0067,
/* 0040 */ 0x0064, 0x0065, 0x007A, 0x0068, 0x0071, 0x0069, 0x006B, 0x006C,
/* 0048 */ 0x006D, 0x006E, 0x0078, 0x006F, 0x0070, 0x0072, 0x0056, 0x0073,
/* 0050 */ 0x0074, 0x0075, 0x0066, 0x0063, 0x0079, 0x0077, 0xFFFD, 0xFFFD,
/* 0058 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x004A, 0x00A1, 0xFFFD,
/* 0060 */ 0xFFFD, 0x006A, 0x0076, 0x00B7, 0xFFFD, 0xFFFD, 0xFFFD, 0x00BC,
/* 0068 */ 0x00A2, 0x00B2, 0x00C1, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0070 */ 0xFFFD, 0x00C3, 0xFFFD, 0xFFFD, 0xFFFD, 0x00C2, 0xFFFD, 0xFFFD,
/* 0078 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x00D4, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
/* 0080 */ 0x00AB, 0x0022, 0xFFFD, 0x00B6, 0x0024, 0xFFFD, 0x00C6, 0xFFFD,
/* 0088 */ 0x00D1, 0x00CE, 0x00CF, 0xFFFD, 0xFFFD, 0xFFFD, 0x0027, 0xFFFD,
/* 0090 */ 0x00D5, 0xFFFD, 0x00E5, 0x00B5, 0x00A5, 0xFFFD, 0x00D0, 0xFFFD,
/* 0098 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00D9, 0x00DA, 0xFFFD,
/* 00A0 */ 0xFFFD, 0x00F2, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
/* 00A8 */ 0xFFFD, 0xFFFD, 0x005C, 0x0040, 0xFFFD, 0xFFFD, 0x00BB, 0x00B9,
/* 00B0 */ 0x00BA, 0xFFFD, 0xFFFD, 0x00A3, 0x00B3, 0xFFFD, 0xFFFD, 0xFFFD,
/* 00B8 */ 0xFFFD, 0x0086, 0x0087, 0x00CC, 0x00C9, 0x00CB, 0xFFFD, 0x00CD,
/* 00C0 */ 0x00CA, 0x00C5, 0xFFFD, 0x00C4, 0x00C8, 0x00C7, 0x0082, 0x0083,
/* 00C8 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
/* 00D0 */ 0x009F, 0x00AA, 0x00A9, 0x00A8, 0x00A7, 0x008A, 0xFFFD, 0x00A6,
/* 00D8 */ 0x0081, 0x00E2, 0x00E3, 0x00E4,
/* End of table Total Length = 0x0152 * 2 */

View File

@ -0,0 +1,277 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Roger B. Sidje <rbs@maths.uq.edu.au>
*
* This Original Code has been modified by Roger B. Sidje.
* Modifications made by Roger B. Sidje described herein are
* Copyright (C) 2000 The University Of Queensland.
*
* Modifications to Mozilla code or documentation
* identified per MPL Section 3.3
*
* Date Modified by Description of modification
* 08/March/2000 RBS. Support for Mathematical fonts.
*/
/*========================================================
This is a Generated file. Please don't edit it.
The tool which used to generate this file is called fromu.
If you have any problem of this file. Please contact
Netscape Client International Team or
ftang@netscape <Frank Tang>
Table in Debug form
Begin of Item 0000
Format 1
srcBegin = 0028
srcEnd = 002F
mappingOffset = 0000
Mapping =
0048 004C FFFD FFFD FFFD FFFD FFFD 0090
End of Item 0000
Begin of Item 0001
Format 1
srcBegin = 005B
srcEnd = 005D
mappingOffset = 0008
Mapping =
0040 FFFD 0044
End of Item 0001
Begin of Item 0002
Format 1
srcBegin = 007B
srcEnd = 007D
mappingOffset = 000B
Mapping =
0038 FFFD 003C
End of Item 0002
Begin of Item 0003
Format 2
srcBegin = 00B0
destBegin = 00C6
End of Item 0003
Begin of Item 0004
Format 1
srcBegin = 0303
srcEnd = 0308
mappingOffset = 000E
Mapping =
00F3 FFFD FFFD FFFD FFFD 00D1
End of Item 0004
Begin of Item 0005
Format 1
srcBegin = 2032
srcEnd = 2036
mappingOffset = 0014
Mapping =
00F7 00F8 FFFD 00F9 000F
End of Item 0005
Begin of Item 0006
Format 1
srcBegin = 20D6
srcEnd = 20E1
mappingOffset = 0019
Mapping =
00D5 FFFD FFFD FFFD FFFD 00D2 FFFD FFFD
FFFD FFFD FFFD 00D8
End of Item 0006
Begin of Item 0007
Format 2
srcBegin = 2195
destBegin = 00D7
End of Item 0007
Begin of Item 0008
Format 2
srcBegin = 21C0
destBegin = 00D3
End of Item 0008
Begin of Item 0009
Format 1
srcBegin = 220F
srcEnd = 2216
mappingOffset = 0025
Mapping =
00DB 00FF 00DA FFFD FFFD FFFD FFFD 0094
End of Item 0009
Begin of Item 000A
Format 1
srcBegin = 2227
srcEnd = 2233
mappingOffset = 002D
Mapping =
00DF 00DE FFFD FFFD 00D9 FFFD FFFD 0098
0099 FFFD FFFD 009B 009A
End of Item 000A
Begin of Item 000B
Format 1
srcBegin = 228E
srcEnd = 2294
mappingOffset = 003A
Mapping =
009D FFFD FFFD FFFD FFFD 009E 009F
End of Item 000B
Begin of Item 000C
Format 1
srcBegin = 22C0
srcEnd = 22C3
mappingOffset = 0041
Mapping =
00EC 00EA 00DD 00DC
End of Item 000C
Begin of Item 000D
Format 1
srcBegin = 2308
srcEnd = 230B
mappingOffset = 0045
Mapping =
0060 0070 0064 0074
End of Item 000D
Begin of Item 000E
Format 1
srcBegin = 2322
srcEnd = 232A
mappingOffset = 0049
Mapping =
00F2 00F1 FFFD FFFD FFFD FFFD FFFD 0058
005C
End of Item 000E
Begin of Item 000F
Format 1
srcBegin = 301A
srcEnd = 301B
mappingOffset = 0052
Mapping =
0050 0054
End of Item 000F
Begin of Item 0010
Format 2
srcBegin = EB1B
destBegin = 00D4
End of Item 0010
Begin of Item 0011
Format 1
srcBegin = EC07
srcEnd = EC0A
mappingOffset = 0054
Mapping =
00A0 00A4 00B0 00B4
End of Item 0011
Begin of Item 0012
Format 1
srcBegin = EE04
srcEnd = EE06
mappingOffset = 0058
Mapping =
00F4 00F5 00F6
End of Item 0012
Begin of Item 0013
Format 1
srcBegin = EF81
srcEnd = EF82
mappingOffset = 005B
Mapping =
009C 00CD
End of Item 0013
Begin of Item 0014
Format 2
srcBegin = F8E7
destBegin = 00D6
End of Item 0014
========================================================*/
/* Offset=0x0000 ItemOfList */
0x0015,
/*-------------------------------------------------------*/
/* Offset=0x0001 offsetToFormatArray */
0x0004,
/*-------------------------------------------------------*/
/* Offset=0x0002 offsetToMapCellArray */
0x000A,
/*-------------------------------------------------------*/
/* Offset=0x0003 offsetToMappingTable */
0x0049,
/*-------------------------------------------------------*/
/* Offset=0x0004 Start of Format Array */
/* Total of Format 0 : 0x0000 */
/* Total of Format 1 : 0x0010 */
/* Total of Format 2 : 0x0005 */
/* Total of Format 3 : 0x0000 */
0x2111, 0x2111, 0x1112, 0x1111, 0x1112, 0x0002,
/*-------------------------------------------------------*/
/* Offset=0x000A Start of MapCell Array */
/* 0000 */ 0x0028, 0x002F, 0x0000,
/* 0001 */ 0x005B, 0x005D, 0x0008,
/* 0002 */ 0x007B, 0x007D, 0x000B,
/* 0003 */ 0x00B0, 0x0000, 0x00C6,
/* 0004 */ 0x0303, 0x0308, 0x000E,
/* 0005 */ 0x2032, 0x2036, 0x0014,
/* 0006 */ 0x20D6, 0x20E1, 0x0019,
/* 0007 */ 0x2195, 0x0000, 0x00D7,
/* 0008 */ 0x21C0, 0x0000, 0x00D3,
/* 0009 */ 0x220F, 0x2216, 0x0025,
/* 000A */ 0x2227, 0x2233, 0x002D,
/* 000B */ 0x228E, 0x2294, 0x003A,
/* 000C */ 0x22C0, 0x22C3, 0x0041,
/* 000D */ 0x2308, 0x230B, 0x0045,
/* 000E */ 0x2322, 0x232A, 0x0049,
/* 000F */ 0x301A, 0x301B, 0x0052,
/* 0010 */ 0xEB1B, 0x0000, 0x00D4,
/* 0011 */ 0xEC07, 0xEC0A, 0x0054,
/* 0012 */ 0xEE04, 0xEE06, 0x0058,
/* 0013 */ 0xEF81, 0xEF82, 0x005B,
/* 0014 */ 0xF8E7, 0x0000, 0x00D6,
/*-------------------------------------------------------*/
/* Offset=0x0049 Start of MappingTable */
/* 0000 */ 0x0048, 0x004C, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0090,
/* 0008 */ 0x0040, 0xFFFD, 0x0044, 0x0038, 0xFFFD, 0x003C, 0x00F3, 0xFFFD,
/* 0010 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x00D1, 0x00F7, 0x00F8, 0xFFFD, 0x00F9,
/* 0018 */ 0x000F, 0x00D5, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00D2, 0xFFFD,
/* 0020 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00D8, 0x00DB, 0x00FF, 0x00DA,
/* 0028 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0094, 0x00DF, 0x00DE, 0xFFFD,
/* 0030 */ 0xFFFD, 0x00D9, 0xFFFD, 0xFFFD, 0x0098, 0x0099, 0xFFFD, 0xFFFD,
/* 0038 */ 0x009B, 0x009A, 0x009D, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x009E,
/* 0040 */ 0x009F, 0x00EC, 0x00EA, 0x00DD, 0x00DC, 0x0060, 0x0070, 0x0064,
/* 0048 */ 0x0074, 0x00F2, 0x00F1, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0050 */ 0x0058, 0x005C, 0x0050, 0x0054, 0x00A0, 0x00A4, 0x00B0, 0x00B4,
/* 0058 */ 0x00F4, 0x00F5, 0x00F6, 0x009C, 0x00CD,
/* End of table Total Length = 0x00A6 * 2 */

View File

@ -0,0 +1,500 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Roger B. Sidje <rbs@maths.uq.edu.au>
*
* This Original Code has been modified by Roger B. Sidje.
* Modifications made by Roger B. Sidje described herein are
* Copyright (C) 2000 The University Of Queensland.
*
* Modifications to Mozilla code or documentation
* identified per MPL Section 3.3
*
* Date Modified by Description of modification
* 08/March/2000 RBS. Support for Mathematical fonts.
*/
/*========================================================
This is a Generated file. Please don't edit it.
The tool which used to generate this file is called fromu.
If you have any problem of this file. Please contact
Netscape Client International Team or
ftang@netscape <Frank Tang>
Table in Debug form
Begin of Item 0000
Format 2
srcBegin = 0020
destBegin = 0020
End of Item 0000
Begin of Item 0001
Format 2
srcBegin = 003D
destBegin = 0057
End of Item 0001
Begin of Item 0002
Format 1
srcBegin = 00A1
srcEnd = 00A7
mappingOffset = 0000
Mapping =
00CC 00C9 00CB FFFD 00CF FFFD 00CD
End of Item 0002
Begin of Item 0003
Format 1
srcBegin = 00B5
srcEnd = 00D0
mappingOffset = 0007
Mapping =
00D0 00CE FFFD FFFD FFFD FFFD FFFD FFFD
FFFD FFFD 00C8 FFFD FFFD FFFD FFFD FFFD
00DE FFFD FFFD FFFD FFFD FFFD FFFD FFFD
FFFD FFFD FFFD 00C2
End of Item 0003
Begin of Item 0004
Format 1
srcBegin = 00DD
srcEnd = 00DE
mappingOffset = 0023
Mapping =
00C0 00C4
End of Item 0004
Begin of Item 0005
Format 2
srcBegin = 00F0
destBegin = 00C3
End of Item 0005
Begin of Item 0006
Format 1
srcBegin = 00FD
srcEnd = 00FE
mappingOffset = 0025
Mapping =
00C1 00C5
End of Item 0006
Begin of Item 0007
Format 2
srcBegin = 0131
destBegin = 00D2
End of Item 0007
Begin of Item 0008
Format 1
srcBegin = 0141
srcEnd = 0142
mappingOffset = 0027
Mapping =
00C6 00C7
End of Item 0008
Begin of Item 0009
Format 1
srcBegin = 0190
srcEnd = 019B
mappingOffset = 0029
Mapping =
00FB FFFD FFFD FFFD FFFD FFFD FFFD FFFD
FFFD FFFD FFFD 00DF
End of Item 0009
Begin of Item 000A
Format 2
srcBegin = 03B5
destBegin = 00B6
End of Item 000A
Begin of Item 000B
Format 2
srcBegin = 03C2
destBegin = 00B9
End of Item 000B
Begin of Item 000C
Format 1
srcBegin = 03DA
srcEnd = 03E0
mappingOffset = 0035
Mapping =
00B3 FFFD 00B2 FFFD FFFD FFFD 00B5
End of Item 000C
Begin of Item 000D
Format 1
srcBegin = 03F0
srcEnd = 03F1
mappingOffset = 003C
Mapping =
00BF 00B7
End of Item 000D
Begin of Item 000E
Format 1
srcBegin = 2020
srcEnd = 2021
mappingOffset = 003E
Mapping =
00D6 00D7
End of Item 000E
Begin of Item 000F
Format 2
srcBegin = 210F
destBegin = 00D1
End of Item 000F
Begin of Item 0010
Format 1
srcBegin = 2127
srcEnd = 2138
mappingOffset = 0040
Mapping =
00B0 FFFD FFFD FFFD 00CA FFFD FFFD FFFD
FFFD FFFD FFFD FFFD FFFD FFFD FFFD 00BC
00BD 00BE
End of Item 0010
Begin of Item 0011
Format 1
srcBegin = 2204
srcEnd = 2250
mappingOffset = 0052
Mapping =
00B1 00AF FFFD FFFD FFFD FFFD FFFD 009C
009D FFFD FFFD FFFD FFFD FFFD FFFD 00A1
FFFD FFFD FFFD FFFD 00EB FFFD FFFD FFFD
FFFD FFFD FFFD 00AC FFFD 00AD 00AE FFFD
FFFD FFFD FFFD 002C 002E 0027 0028 0021
FFFD FFFD 0022 0023 FFFD FFFD FFFD 0024
FFFD 008B FFFD 009B FFFD FFFD FFFD FFFD
FFFD FFFD FFFD FFFD 00AA 004C 003F 003E
004E FFFD FFFD 003D FFFD 004D FFFD FFFD
FFFD 005E 0051 0050 0055
End of Item 0011
Begin of Item 0012
Format 1
srcBegin = 2262
srcEnd = 22B5
mappingOffset = 009F
Mapping =
0054 FFFD 0062 FFFD 0063 0073 006A 007A
0060 0070 FFFD 005F 0065 0072 0068 0078
0064 0074 006B 007B 0088 0098 0089 0099
0080 0090 0081 0091 0083 0093 0084 0094
FFFD FFFD FFFD 008E FFFD FFFD 008D 008F
FFFD FFFD FFFD FFFD 0029 006C 007C 006D
007D 002A 002B FFFD 009E FFFD FFFD 009F
FFFD FFFD FFFD FFFD FFFD FFFD FFFD FFFD
00A2 00A4 00A7 00A6 FFFD FFFD 00A3 FFFD
FFFD FFFD FFFD FFFD FFFD FFFD FFFD FFFD
0030 0040 0031 0041
End of Item 0012
Begin of Item 0013
Format 1
srcBegin = 22DA
srcEnd = 22ED
mappingOffset = 00F3
Mapping =
008A 009A FFFD FFFD FFFD FFFD 0085 0095
006F 008C FFFD FFFD FFFD FFFD 0087 0097
0033 0043 0034 0044
End of Item 0013
Begin of Item 0014
Format 1
srcBegin = 2322
srcEnd = 2323
mappingOffset = 0107
Mapping =
005B 005C
End of Item 0014
Begin of Item 0015
Format 2
srcBegin = 2353
destBegin = 00DD
End of Item 0015
Begin of Item 0016
Format 2
srcBegin = 2370
destBegin = 00DC
End of Item 0016
Begin of Item 0017
Format 1
srcBegin = 25A0
srcEnd = 25CF
mappingOffset = 0109
Mapping =
00E0 00E1 FFFD FFFD FFFD FFFD FFFD FFFD
FFFD FFFD 00E2 00E3 FFFD FFFD 00F0 00F1
FFFD FFFD 00F2 00F3 FFFD FFFD FFFD FFFD
FFFD FFFD FFFD FFFD 00F4 00F5 FFFD FFFD
FFFD FFFD FFFD FFFD FFFD FFFD 00EC 00ED
FFFD FFFD FFFD 00E7 FFFD FFFD FFFD 00E6
End of Item 0017
Begin of Item 0018
Format 2
srcBegin = 25E6
destBegin = 00E9
End of Item 0018
Begin of Item 0019
Format 2
srcBegin = 2605
destBegin = 00F8
End of Item 0019
Begin of Item 001A
Format 1
srcBegin = 266D
srcEnd = 266F
mappingOffset = 0139
Mapping =
00D9 00DA 00DB
End of Item 001A
Begin of Item 001B
Format 2
srcBegin = 2736
destBegin = 00F7
End of Item 001B
Begin of Item 001C
Format 1
srcBegin = E92E
srcEnd = E937
mappingOffset = 013C
Mapping =
0036 0037 0038 FFFD FFFD FFFD FFFD FFFD
0061 0071
End of Item 001C
Begin of Item 001D
Format 1
srcBegin = E948
srcEnd = E956
mappingOffset = 0146
Mapping =
00A5 FFFD FFFD FFFD 0058 FFFD FFFD FFFD
0032 0042 FFFD FFFD 0056 005A 0059
End of Item 001D
Begin of Item 001E
Format 2
srcBegin = E981
destBegin = 003C
End of Item 001E
Begin of Item 001F
Format 2
srcBegin = EA0F
destBegin = 004F
End of Item 001F
Begin of Item 0020
Format 1
srcBegin = EA2E
srcEnd = EA39
mappingOffset = 0155
Mapping =
0046 0047 0048 FFFD FFFD FFFD FFFD FFFD
0067 0077 0066 0076
End of Item 0020
Begin of Item 0021
Format 1
srcBegin = EA50
srcEnd = EA53
mappingOffset = 0161
Mapping =
0035 0045 0052 0053
End of Item 0021
Begin of Item 0022
Format 1
srcBegin = EA60
srcEnd = EA61
mappingOffset = 0165
Mapping =
006E 007E
End of Item 0022
Begin of Item 0023
Format 1
srcBegin = ED02
srcEnd = ED03
mappingOffset = 0167
Mapping =
00D4 00B8
End of Item 0023
Begin of Item 0024
Format 1
srcBegin = ED13
srcEnd = ED16
mappingOffset = 0169
Mapping =
00FC FFFD FFFD 00FF
End of Item 0024
Begin of Item 0025
Format 1
srcBegin = EF80
srcEnd = EF81
mappingOffset = 016D
Mapping =
0025 0026
End of Item 0025
Begin of Item 0026
Format 1
srcBegin = F227
srcEnd = F230
mappingOffset = 016F
Mapping =
00FD FFFD FFFD FFFD FFFD FFFD FFFD FFFD
FFFD 00FE
End of Item 0026
========================================================*/
/* Offset=0x0000 ItemOfList */
0x0027,
/*-------------------------------------------------------*/
/* Offset=0x0001 offsetToFormatArray */
0x0004,
/*-------------------------------------------------------*/
/* Offset=0x0002 offsetToMapCellArray */
0x000E,
/*-------------------------------------------------------*/
/* Offset=0x0003 offsetToMappingTable */
0x0083,
/*-------------------------------------------------------*/
/* Offset=0x0004 Start of Format Array */
/* Total of Format 0 : 0x0000 */
/* Total of Format 1 : 0x0019 */
/* Total of Format 2 : 0x000E */
/* Total of Format 3 : 0x0000 */
0x1122, 0x2121, 0x2211, 0x2111, 0x1111, 0x1221, 0x2122, 0x2211,
0x1111, 0x0111,
/*-------------------------------------------------------*/
/* Offset=0x000E Start of MapCell Array */
/* 0000 */ 0x0020, 0x0000, 0x0020,
/* 0001 */ 0x003D, 0x0000, 0x0057,
/* 0002 */ 0x00A1, 0x00A7, 0x0000,
/* 0003 */ 0x00B5, 0x00D0, 0x0007,
/* 0004 */ 0x00DD, 0x00DE, 0x0023,
/* 0005 */ 0x00F0, 0x0000, 0x00C3,
/* 0006 */ 0x00FD, 0x00FE, 0x0025,
/* 0007 */ 0x0131, 0x0000, 0x00D2,
/* 0008 */ 0x0141, 0x0142, 0x0027,
/* 0009 */ 0x0190, 0x019B, 0x0029,
/* 000A */ 0x03B5, 0x0000, 0x00B6,
/* 000B */ 0x03C2, 0x0000, 0x00B9,
/* 000C */ 0x03DA, 0x03E0, 0x0035,
/* 000D */ 0x03F0, 0x03F1, 0x003C,
/* 000E */ 0x2020, 0x2021, 0x003E,
/* 000F */ 0x210F, 0x0000, 0x00D1,
/* 0010 */ 0x2127, 0x2138, 0x0040,
/* 0011 */ 0x2204, 0x2250, 0x0052,
/* 0012 */ 0x2262, 0x22B5, 0x009F,
/* 0013 */ 0x22DA, 0x22ED, 0x00F3,
/* 0014 */ 0x2322, 0x2323, 0x0107,
/* 0015 */ 0x2353, 0x0000, 0x00DD,
/* 0016 */ 0x2370, 0x0000, 0x00DC,
/* 0017 */ 0x25A0, 0x25CF, 0x0109,
/* 0018 */ 0x25E6, 0x0000, 0x00E9,
/* 0019 */ 0x2605, 0x0000, 0x00F8,
/* 001A */ 0x266D, 0x266F, 0x0139,
/* 001B */ 0x2736, 0x0000, 0x00F7,
/* 001C */ 0xE92E, 0xE937, 0x013C,
/* 001D */ 0xE948, 0xE956, 0x0146,
/* 001E */ 0xE981, 0x0000, 0x003C,
/* 001F */ 0xEA0F, 0x0000, 0x004F,
/* 0020 */ 0xEA2E, 0xEA39, 0x0155,
/* 0021 */ 0xEA50, 0xEA53, 0x0161,
/* 0022 */ 0xEA60, 0xEA61, 0x0165,
/* 0023 */ 0xED02, 0xED03, 0x0167,
/* 0024 */ 0xED13, 0xED16, 0x0169,
/* 0025 */ 0xEF80, 0xEF81, 0x016D,
/* 0026 */ 0xF227, 0xF230, 0x016F,
/*-------------------------------------------------------*/
/* Offset=0x0083 Start of MappingTable */
/* 0000 */ 0x00CC, 0x00C9, 0x00CB, 0xFFFD, 0x00CF, 0xFFFD, 0x00CD, 0x00D0,
/* 0008 */ 0x00CE, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0010 */ 0xFFFD, 0x00C8, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00DE,
/* 0018 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0020 */ 0xFFFD, 0xFFFD, 0x00C2, 0x00C0, 0x00C4, 0x00C1, 0x00C5, 0x00C6,
/* 0028 */ 0x00C7, 0x00FB, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0030 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00DF, 0x00B3, 0xFFFD, 0x00B2,
/* 0038 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x00B5, 0x00BF, 0x00B7, 0x00D6, 0x00D7,
/* 0040 */ 0x00B0, 0xFFFD, 0xFFFD, 0xFFFD, 0x00CA, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0048 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00BC,
/* 0050 */ 0x00BD, 0x00BE, 0x00B1, 0x00AF, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0058 */ 0xFFFD, 0x009C, 0x009D, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0060 */ 0xFFFD, 0x00A1, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00EB, 0xFFFD,
/* 0068 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00AC, 0xFFFD, 0x00AD,
/* 0070 */ 0x00AE, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x002C, 0x002E, 0x0027,
/* 0078 */ 0x0028, 0x0021, 0xFFFD, 0xFFFD, 0x0022, 0x0023, 0xFFFD, 0xFFFD,
/* 0080 */ 0xFFFD, 0x0024, 0xFFFD, 0x008B, 0xFFFD, 0x009B, 0xFFFD, 0xFFFD,
/* 0088 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00AA, 0x004C,
/* 0090 */ 0x003F, 0x003E, 0x004E, 0xFFFD, 0xFFFD, 0x003D, 0xFFFD, 0x004D,
/* 0098 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x005E, 0x0051, 0x0050, 0x0055, 0x0054,
/* 00A0 */ 0xFFFD, 0x0062, 0xFFFD, 0x0063, 0x0073, 0x006A, 0x007A, 0x0060,
/* 00A8 */ 0x0070, 0xFFFD, 0x005F, 0x0065, 0x0072, 0x0068, 0x0078, 0x0064,
/* 00B0 */ 0x0074, 0x006B, 0x007B, 0x0088, 0x0098, 0x0089, 0x0099, 0x0080,
/* 00B8 */ 0x0090, 0x0081, 0x0091, 0x0083, 0x0093, 0x0084, 0x0094, 0xFFFD,
/* 00C0 */ 0xFFFD, 0xFFFD, 0x008E, 0xFFFD, 0xFFFD, 0x008D, 0x008F, 0xFFFD,
/* 00C8 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x0029, 0x006C, 0x007C, 0x006D, 0x007D,
/* 00D0 */ 0x002A, 0x002B, 0xFFFD, 0x009E, 0xFFFD, 0xFFFD, 0x009F, 0xFFFD,
/* 00D8 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00A2,
/* 00E0 */ 0x00A4, 0x00A7, 0x00A6, 0xFFFD, 0xFFFD, 0x00A3, 0xFFFD, 0xFFFD,
/* 00E8 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0030,
/* 00F0 */ 0x0040, 0x0031, 0x0041, 0x008A, 0x009A, 0xFFFD, 0xFFFD, 0xFFFD,
/* 00F8 */ 0xFFFD, 0x0085, 0x0095, 0x006F, 0x008C, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0100 */ 0xFFFD, 0x0087, 0x0097, 0x0033, 0x0043, 0x0034, 0x0044, 0x005B,
/* 0108 */ 0x005C, 0x00E0, 0x00E1, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0110 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x00E2, 0x00E3, 0xFFFD, 0xFFFD, 0x00F0,
/* 0118 */ 0x00F1, 0xFFFD, 0xFFFD, 0x00F2, 0x00F3, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0120 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00F4, 0x00F5, 0xFFFD,
/* 0128 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00EC,
/* 0130 */ 0x00ED, 0xFFFD, 0xFFFD, 0xFFFD, 0x00E7, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0138 */ 0x00E6, 0x00D9, 0x00DA, 0x00DB, 0x0036, 0x0037, 0x0038, 0xFFFD,
/* 0140 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0061, 0x0071, 0x00A5, 0xFFFD,
/* 0148 */ 0xFFFD, 0xFFFD, 0x0058, 0xFFFD, 0xFFFD, 0xFFFD, 0x0032, 0x0042,
/* 0150 */ 0xFFFD, 0xFFFD, 0x0056, 0x005A, 0x0059, 0x0046, 0x0047, 0x0048,
/* 0158 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0067, 0x0077, 0x0066,
/* 0160 */ 0x0076, 0x0035, 0x0045, 0x0052, 0x0053, 0x006E, 0x007E, 0x00D4,
/* 0168 */ 0x00B8, 0x00FC, 0xFFFD, 0xFFFD, 0x00FF, 0x0025, 0x0026, 0x00FD,
/* 0170 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0178 */ 0x00FE,
/* End of table Total Length = 0x01FC * 2 */

View File

@ -0,0 +1,219 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Roger B. Sidje <rbs@maths.uq.edu.au>
*
* This Original Code has been modified by Roger B. Sidje.
* Modifications made by Roger B. Sidje described herein are
* Copyright (C) 2000 The University Of Queensland.
*
* Modifications to Mozilla code or documentation
* identified per MPL Section 3.3
*
* Date Modified by Description of modification
* 08/March/2000 RBS. Support for Mathematical fonts.
*/
/*========================================================
This is a Generated file. Please don't edit it.
The tool which used to generate this file is called fromu.
If you have any problem of this file. Please contact
Netscape Client International Team or
ftang@netscape <Frank Tang>
Table in Debug form
Begin of Item 0000
Format 0
srcBegin = EB20
srcEnd = EB27
destBegin = 0028
End of Item 0000
Begin of Item 0001
Format 0
srcBegin = EB28
srcEnd = EB2F
destBegin = 0038
End of Item 0001
Begin of Item 0002
Format 2
srcBegin = 0020
destBegin = 0020
End of Item 0002
Begin of Item 0003
Format 2
srcBegin = 002F
destBegin = 00D0
End of Item 0003
Begin of Item 0004
Format 1
srcBegin = 2018
srcEnd = 2026
mappingOffset = 0000
Mapping =
007B 007D FFFD FFFD 007C 007E FFFD FFFD
FFFD FFFD FFFD FFFD FFFD FFFD 00B4
End of Item 0004
Begin of Item 0005
Format 1
srcBegin = 2035
srcEnd = 2036
mappingOffset = 000F
Mapping =
00BE 00BF
End of Item 0005
Begin of Item 0006
Format 1
srcBegin = 2196
srcEnd = 21AA
mappingOffset = 0011
Mapping =
0088 0089 008A 0087 FFFD FFFD FFFD FFFD
FFFD FFFD FFFD FFFD FFFD FFFD 0022 0026
0023 0027 FFFD 004E 004F
End of Item 0006
Begin of Item 0007
Format 1
srcBegin = 21BC
srcEnd = 21CC
mappingOffset = 0026
Mapping =
0030 0033 0043 0040 0031 0034 0045 0042
0056 005C 0057 FFFD FFFD FFFD FFFD 0047
0046
End of Item 0007
Begin of Item 0008
Format 2
srcBegin = 21E5
destBegin = 0021
End of Item 0008
Begin of Item 0009
Format 1
srcBegin = 22EE
srcEnd = 22F1
mappingOffset = 0037
Mapping =
00B6 00B5 00B7 00B8
End of Item 0009
Begin of Item 000A
Format 1
srcBegin = EB0D
srcEnd = EB0E
mappingOffset = 003B
Mapping =
0079 007A
End of Item 000A
Begin of Item 000B
Format 1
srcBegin = EB1B
srcEnd = EB1F
mappingOffset = 003D
Mapping =
0032 0035 0036 0037 005D
End of Item 000B
Begin of Item 000C
Format 1
srcBegin = EB30
srcEnd = EB35
mappingOffset = 0042
Mapping =
0024 0025 004C 004D 0077 0078
End of Item 000C
Begin of Item 000D
Format 1
srcBegin = EC0C
srcEnd = EC0D
mappingOffset = 0048
Mapping =
0080 0070
End of Item 000D
Begin of Item 000E
Format 1
srcBegin = FE35
srcEnd = FE38
mappingOffset = 004A
Mapping =
0090 00A0 0097 00A7
End of Item 000E
========================================================*/
/* Offset=0x0000 ItemOfList */
0x000F,
/*-------------------------------------------------------*/
/* Offset=0x0001 offsetToFormatArray */
0x0004,
/*-------------------------------------------------------*/
/* Offset=0x0002 offsetToMapCellArray */
0x0008,
/*-------------------------------------------------------*/
/* Offset=0x0003 offsetToMappingTable */
0x0035,
/*-------------------------------------------------------*/
/* Offset=0x0004 Start of Format Array */
/* Total of Format 0 : 0x0002 */
/* Total of Format 1 : 0x000A */
/* Total of Format 2 : 0x0003 */
/* Total of Format 3 : 0x0000 */
0x2200, 0x1111, 0x1112, 0x0111,
/*-------------------------------------------------------*/
/* Offset=0x0008 Start of MapCell Array */
/* 0000 */ 0xEB20, 0xEB27, 0x0028,
/* 0001 */ 0xEB28, 0xEB2F, 0x0038,
/* 0002 */ 0x0020, 0x0000, 0x0020,
/* 0003 */ 0x002F, 0x0000, 0x00D0,
/* 0004 */ 0x2018, 0x2026, 0x0000,
/* 0005 */ 0x2035, 0x2036, 0x000F,
/* 0006 */ 0x2196, 0x21AA, 0x0011,
/* 0007 */ 0x21BC, 0x21CC, 0x0026,
/* 0008 */ 0x21E5, 0x0000, 0x0021,
/* 0009 */ 0x22EE, 0x22F1, 0x0037,
/* 000A */ 0xEB0D, 0xEB0E, 0x003B,
/* 000B */ 0xEB1B, 0xEB1F, 0x003D,
/* 000C */ 0xEB30, 0xEB35, 0x0042,
/* 000D */ 0xEC0C, 0xEC0D, 0x0048,
/* 000E */ 0xFE35, 0xFE38, 0x004A,
/*-------------------------------------------------------*/
/* Offset=0x0035 Start of MappingTable */
/* 0000 */ 0x007B, 0x007D, 0xFFFD, 0xFFFD, 0x007C, 0x007E, 0xFFFD, 0xFFFD,
/* 0008 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00B4, 0x00BE,
/* 0010 */ 0x00BF, 0x0088, 0x0089, 0x008A, 0x0087, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0018 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0022,
/* 0020 */ 0x0026, 0x0023, 0x0027, 0xFFFD, 0x004E, 0x004F, 0x0030, 0x0033,
/* 0028 */ 0x0043, 0x0040, 0x0031, 0x0034, 0x0045, 0x0042, 0x0056, 0x005C,
/* 0030 */ 0x0057, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0047, 0x0046, 0x00B6,
/* 0038 */ 0x00B5, 0x00B7, 0x00B8, 0x0079, 0x007A, 0x0032, 0x0035, 0x0036,
/* 0040 */ 0x0037, 0x005D, 0x0024, 0x0025, 0x004C, 0x004D, 0x0077, 0x0078,
/* 0048 */ 0x0080, 0x0070, 0x0090, 0x00A0, 0x0097, 0x00A7,
/* End of table Total Length = 0x0083 * 2 */

View File

@ -0,0 +1,225 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Roger B. Sidje <rbs@maths.uq.edu.au>
*
* This Original Code has been modified by Roger B. Sidje.
* Modifications made by Roger B. Sidje described herein are
* Copyright (C) 2000 The University Of Queensland.
*
* Modifications to Mozilla code or documentation
* identified per MPL Section 3.3
*
* Date Modified by Description of modification
* 08/March/2000 RBS. Support for Mathematical fonts.
*/
/*========================================================
This is a Generated file. Please don't edit it.
The tool which used to generate this file is called fromu.
If you have any problem of this file. Please contact
Netscape Client International Team or
ftang@netscape <Frank Tang>
Table in Debug form
Begin of Item 0000
Format 0
srcBegin = F012
srcEnd = F018
destBegin = 0092
End of Item 0000
Begin of Item 0001
Format 0
srcBegin = F01F
srcEnd = F033
destBegin = 009F
End of Item 0001
Begin of Item 0002
Format 0
srcBegin = F092
srcEnd = F098
destBegin = 00D2
End of Item 0002
Begin of Item 0003
Format 0
srcBegin = F09A
srcEnd = F0B3
destBegin = 00DA
End of Item 0003
Begin of Item 0004
Format 0
srcBegin = F112
srcEnd = F119
destBegin = 0053
End of Item 0004
Begin of Item 0005
Format 0
srcBegin = F129
srcEnd = F133
destBegin = 0070
End of Item 0005
Begin of Item 0006
Format 2
srcBegin = 0020
destBegin = 0020
End of Item 0006
Begin of Item 0007
Format 1
srcBegin = 2018
srcEnd = 201D
mappingOffset = 0000
Mapping =
00F8 00F7 FFFD FFFD 00FA 00F9
End of Item 0007
Begin of Item 0008
Format 1
srcBegin = 2102
srcEnd = 2134
mappingOffset = 0006
Mapping =
00C2 FFFD FFFD FFFD FFFD FFFD FFFD FFFD
0067 0048 0087 00C7 FFFD FFFD 0049 0088
004C 006C FFFD 00CD FFFD FFFD 0050 00CF
00D0 0052 0091 00D1 FFFD FFFD FFFD FFFD
FFFD FFFD 00D9 FFFD FFFD FFFD 0099 FFFD
FFFD FFFD 0042 0082 FFFD 0065 0045 0046
FFFD 004D 006F
End of Item 0008
Begin of Item 0009
Format 2
srcBegin = 25A1
destBegin = 00FC
End of Item 0009
Begin of Item 000A
Format 2
srcBegin = 25B3
destBegin = 00FD
End of Item 000A
Begin of Item 000B
Format 2
srcBegin = 25CB
destBegin = 00FB
End of Item 000B
Begin of Item 000C
Format 1
srcBegin = F000
srcEnd = F01E
mappingOffset = 0039
Mapping =
00B4 00B5 FFFD 0083 0084 0085 0086 FFFD
FFFD 0089 008A 008B 008C 00B6 00B7 00B8
00B9 FFFD FFFD FFFD FFFD FFFD FFFD FFFD
FFFD FFFD 009A 009B 009C 00BA 00BB
End of Item 000C
Begin of Item 000D
Format 1
srcBegin = F080
srcEnd = F08E
mappingOffset = 0058
Mapping =
00C0 00C1 FFFD 00C3 00C4 00C5 00C6 FFFD
00C8 00C9 00BC 00CB 00CC FFFD 00CE
End of Item 000D
Begin of Item 000E
Format 1
srcBegin = F100
srcEnd = F127
mappingOffset = 0067
Mapping =
0041 FFFD 0043 0044 FFFD FFFD 0047 FFFD
FFFD 004A 004B FFFD FFFD 004E 004F FFFD
0051 FFFD FFFD FFFD FFFD FFFD FFFD FFFD
FFFD FFFD 0061 0062 0063 0064 FFFD 0066
FFFD 0068 0069 006A 006B FFFD 006D 006E
End of Item 000E
========================================================*/
/* Offset=0x0000 ItemOfList */
0x000F,
/*-------------------------------------------------------*/
/* Offset=0x0001 offsetToFormatArray */
0x0004,
/*-------------------------------------------------------*/
/* Offset=0x0002 offsetToMapCellArray */
0x0008,
/*-------------------------------------------------------*/
/* Offset=0x0003 offsetToMappingTable */
0x0035,
/*-------------------------------------------------------*/
/* Offset=0x0004 Start of Format Array */
/* Total of Format 0 : 0x0006 */
/* Total of Format 1 : 0x0005 */
/* Total of Format 2 : 0x0004 */
/* Total of Format 3 : 0x0000 */
0x0000, 0x1200, 0x2221, 0x0111,
/*-------------------------------------------------------*/
/* Offset=0x0008 Start of MapCell Array */
/* 0000 */ 0xF012, 0xF018, 0x0092,
/* 0001 */ 0xF01F, 0xF033, 0x009F,
/* 0002 */ 0xF092, 0xF098, 0x00D2,
/* 0003 */ 0xF09A, 0xF0B3, 0x00DA,
/* 0004 */ 0xF112, 0xF119, 0x0053,
/* 0005 */ 0xF129, 0xF133, 0x0070,
/* 0006 */ 0x0020, 0x0000, 0x0020,
/* 0007 */ 0x2018, 0x201D, 0x0000,
/* 0008 */ 0x2102, 0x2134, 0x0006,
/* 0009 */ 0x25A1, 0x0000, 0x00FC,
/* 000A */ 0x25B3, 0x0000, 0x00FD,
/* 000B */ 0x25CB, 0x0000, 0x00FB,
/* 000C */ 0xF000, 0xF01E, 0x0039,
/* 000D */ 0xF080, 0xF08E, 0x0058,
/* 000E */ 0xF100, 0xF127, 0x0067,
/*-------------------------------------------------------*/
/* Offset=0x0035 Start of MappingTable */
/* 0000 */ 0x00F8, 0x00F7, 0xFFFD, 0xFFFD, 0x00FA, 0x00F9, 0x00C2, 0xFFFD,
/* 0008 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0067, 0x0048,
/* 0010 */ 0x0087, 0x00C7, 0xFFFD, 0xFFFD, 0x0049, 0x0088, 0x004C, 0x006C,
/* 0018 */ 0xFFFD, 0x00CD, 0xFFFD, 0xFFFD, 0x0050, 0x00CF, 0x00D0, 0x0052,
/* 0020 */ 0x0091, 0x00D1, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0028 */ 0x00D9, 0xFFFD, 0xFFFD, 0xFFFD, 0x0099, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0030 */ 0x0042, 0x0082, 0xFFFD, 0x0065, 0x0045, 0x0046, 0xFFFD, 0x004D,
/* 0038 */ 0x006F, 0x00B4, 0x00B5, 0xFFFD, 0x0083, 0x0084, 0x0085, 0x0086,
/* 0040 */ 0xFFFD, 0xFFFD, 0x0089, 0x008A, 0x008B, 0x008C, 0x00B6, 0x00B7,
/* 0048 */ 0x00B8, 0x00B9, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0050 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x009A, 0x009B, 0x009C, 0x00BA, 0x00BB,
/* 0058 */ 0x00C0, 0x00C1, 0xFFFD, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0xFFFD,
/* 0060 */ 0x00C8, 0x00C9, 0x00BC, 0x00CB, 0x00CC, 0xFFFD, 0x00CE, 0x0041,
/* 0068 */ 0xFFFD, 0x0043, 0x0044, 0xFFFD, 0xFFFD, 0x0047, 0xFFFD, 0xFFFD,
/* 0070 */ 0x004A, 0x004B, 0xFFFD, 0xFFFD, 0x004E, 0x004F, 0xFFFD, 0x0051,
/* 0078 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0080 */ 0xFFFD, 0x0061, 0x0062, 0x0063, 0x0064, 0xFFFD, 0x0066, 0xFFFD,
/* 0088 */ 0x0068, 0x0069, 0x006A, 0x006B, 0xFFFD, 0x006D, 0x006E,
/* End of table Total Length = 0x00C4 * 2 */

View File

@ -0,0 +1,214 @@
/*========================================================
This is a Generated file. Please don't edit it.
The tool which used to generate this file is called fromu.
If you have any problem of this file. Please contact
Netscape Client International Team or
ftang@netscape <Frank Tang>
Table in Debug form
Begin of Item 0000
Format 2
srcBegin = 0020
destBegin = 0020
End of Item 0000
Begin of Item 0001
Format 2
srcBegin = 019B
destBegin = 0044
End of Item 0001
Begin of Item 0002
Format 1
srcBegin = 0300
srcEnd = 0307
mappingOffset = 0000
Mapping =
0023 FFFD 0024 0025 FFFD FFFD FFFD 0026
End of Item 0002
Begin of Item 0003
Format 2
srcBegin = 2026
destBegin = 004B
End of Item 0003
Begin of Item 0004
Format 2
srcBegin = 2035
destBegin = 0060
End of Item 0004
Begin of Item 0005
Format 1
srcBegin = 20D0
srcEnd = 20E1
mappingOffset = 0008
Mapping =
0077 0076 FFFD FFFD FFFD FFFD 0073 0072
FFFD FFFD FFFD FFFD FFFD FFFD FFFD FFFD
FFFD 0074
End of Item 0005
Begin of Item 0006
Format 1
srcBegin = 210F
srcEnd = 2113
mappingOffset = 001A
Mapping =
0068 FFFD FFFD FFFD 006C
End of Item 0006
Begin of Item 0007
Format 2
srcBegin = 2195
destBegin = 0062
End of Item 0007
Begin of Item 0008
Format 2
srcBegin = 21A6
destBegin = 0061
End of Item 0008
Begin of Item 0009
Format 2
srcBegin = 21D5
destBegin = 0063
End of Item 0009
Begin of Item 000A
Format 1
srcBegin = 2210
srcEnd = 2218
mappingOffset = 001F
Mapping =
0043 FFFD FFFD 006D FFFD FFFD FFFD FFFD
006F
End of Item 000A
Begin of Item 000B
Format 1
srcBegin = 2229
srcEnd = 2235
mappingOffset = 0028
Mapping =
0049 0055 FFFD FFFD FFFD FFFD FFFD FFFD
FFFD FFFD FFFD FFFD 0051
End of Item 000B
Begin of Item 000C
Format 1
srcBegin = 227A
srcEnd = 227B
mappingOffset = 0035
Mapping =
0070 0066
End of Item 000C
Begin of Item 000D
Format 1
srcBegin = 22B2
srcEnd = 22B3
mappingOffset = 0037
Mapping =
003C 003E
End of Item 000D
Begin of Item 000E
Format 1
srcBegin = 22EE
srcEnd = 22F1
mappingOffset = 0039
Mapping =
004D 004C 004E 004F
End of Item 000E
Begin of Item 000F
Format 1
srcBegin = 2322
srcEnd = 2323
mappingOffset = 003D
Mapping =
0029 0028
End of Item 000F
Begin of Item 0010
Format 2
srcBegin = EB00
destBegin = 0075
End of Item 0010
Begin of Item 0011
Format 1
srcBegin = EC00
srcEnd = EC06
mappingOffset = 003F
Mapping =
0031 0032 0033 0034 0036 0037 0038
End of Item 0011
Begin of Item 0012
Format 1
srcBegin = F612
srcEnd = F613
mappingOffset = 0046
Mapping =
007D 007B
End of Item 0012
========================================================*/
/* Offset=0x0000 ItemOfList */
0x0013,
/*-------------------------------------------------------*/
/* Offset=0x0001 offsetToFormatArray */
0x0004,
/*-------------------------------------------------------*/
/* Offset=0x0002 offsetToMapCellArray */
0x0009,
/*-------------------------------------------------------*/
/* Offset=0x0003 offsetToMappingTable */
0x0042,
/*-------------------------------------------------------*/
/* Offset=0x0004 Start of Format Array */
/* Total of Format 0 : 0x0000 */
/* Total of Format 1 : 0x000B */
/* Total of Format 2 : 0x0008 */
/* Total of Format 3 : 0x0000 */
0x2122, 0x2112, 0x1122, 0x1111, 0x0112,
/*-------------------------------------------------------*/
/* Offset=0x0009 Start of MapCell Array */
/* 0000 */ 0x0020, 0x0000, 0x0020,
/* 0001 */ 0x019B, 0x0000, 0x0044,
/* 0002 */ 0x0300, 0x0307, 0x0000,
/* 0003 */ 0x2026, 0x0000, 0x004B,
/* 0004 */ 0x2035, 0x0000, 0x0060,
/* 0005 */ 0x20D0, 0x20E1, 0x0008,
/* 0006 */ 0x210F, 0x2113, 0x001A,
/* 0007 */ 0x2195, 0x0000, 0x0062,
/* 0008 */ 0x21A6, 0x0000, 0x0061,
/* 0009 */ 0x21D5, 0x0000, 0x0063,
/* 000A */ 0x2210, 0x2218, 0x001F,
/* 000B */ 0x2229, 0x2235, 0x0028,
/* 000C */ 0x227A, 0x227B, 0x0035,
/* 000D */ 0x22B2, 0x22B3, 0x0037,
/* 000E */ 0x22EE, 0x22F1, 0x0039,
/* 000F */ 0x2322, 0x2323, 0x003D,
/* 0010 */ 0xEB00, 0x0000, 0x0075,
/* 0011 */ 0xEC00, 0xEC06, 0x003F,
/* 0012 */ 0xF612, 0xF613, 0x0046,
/*-------------------------------------------------------*/
/* Offset=0x0042 Start of MappingTable */
/* 0000 */ 0x0023, 0xFFFD, 0x0024, 0x0025, 0xFFFD, 0xFFFD, 0xFFFD, 0x0026,
/* 0008 */ 0x0077, 0x0076, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0073, 0x0072,
/* 0010 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0018 */ 0xFFFD, 0x0074, 0x0068, 0xFFFD, 0xFFFD, 0xFFFD, 0x006C, 0x0043,
/* 0020 */ 0xFFFD, 0xFFFD, 0x006D, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x006F,
/* 0028 */ 0x0049, 0x0055, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0030 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0051, 0x0070, 0x0066, 0x003C,
/* 0038 */ 0x003E, 0x004D, 0x004C, 0x004E, 0x004F, 0x0029, 0x0028, 0x0031,
/* 0040 */ 0x0032, 0x0033, 0x0034, 0x0036, 0x0037, 0x0038, 0x007D, 0x007B,
/* End of table Total Length = 0x008A * 2 */

View File

@ -0,0 +1,89 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Roger B. Sidje <rbs@maths.uq.edu.au>
*
* This Original Code has been modified by Roger B. Sidje.
* Modifications made by Roger B. Sidje described herein are
* Copyright (C) 2000 The University Of Queensland.
*
* Modifications to Mozilla code or documentation
* identified per MPL Section 3.3
*
* Date Modified by Description of modification
* 08/March/2000 RBS. Support for Mathematical fonts.
*/
#ifndef nsUCvMathCID_h___
#define nsUCvMathCID_h___
#include "nsISupports.h"
// Class ID for our UnicodeToTeXCMSYttf (TeX Symbol -TTF) charset converter
// {e332db00-e076-11d3-b32f-004005a7a7e4}
NS_DECLARE_ID(kUnicodeToTeXCMSYttfCID,
0xe332db00, 0xe076, 0x11d3, 0xb3, 0x2f, 0x0, 0x40, 0x05, 0xa7, 0xa7, 0xe4);
// Class ID for our UnicodeToTeXCMEXttf (TeX Extension -TTF) charset converter
// {e91f9440-e076-11d3-b32f-004005a7a7e4}
NS_DECLARE_ID(kUnicodeToTeXCMEXttfCID,
0xe91f9440, 0xe076, 0x11d3, 0xb3, 0x2f, 0x0, 0x40, 0x05, 0xa7, 0xa7, 0xe4);
// Class ID for our UnicodeToTeXCMSYt1 (TeX Symbol -Type1) charset converter
// {e768ebef-70f9-4fe3-8835-4f4f3fd996e2}
NS_DECLARE_ID(kUnicodeToTeXCMSYt1CID,
0xe768ebef, 0x70f9, 0x4fe3, 0x88, 0x35, 0x4f, 0x4f, 0x3f, 0xd9, 0x96, 0xe2);
// Class ID for our UnicodeToTeXCMEXt1 (TeX Extension -Type1) charset converter
// {f01cb3e7-4ace-414e-a2b7-eaba03e9c86c}
NS_DECLARE_ID(kUnicodeToTeXCMEXt1CID,
0xf01cb3e7, 0x4ace, 0x414e, 0xa2, 0xb7, 0xea, 0xba, 0x03, 0xe9, 0xc8, 0x6c);
// Class ID for our UnicodeToMathematica1 charset converter
// {758e4f20-e2f2-11d3-b32f-004005a7a7e4}
NS_DECLARE_ID(kUnicodeToMathematica1CID,
0x758e4f20, 0xe2f2, 0x11d3, 0xb3, 0x2f, 0x0, 0x40, 0x05, 0xa7, 0xa7, 0xe4);
// Class ID for our UnicodeToMathematica2 charset converter
// {7e6e57c0-e2f2-11d3-b32f-004005a7a7e4}
NS_DECLARE_ID(kUnicodeToMathematica2CID,
0x7e6e57c0, 0xe2f2, 0x11d3, 0xb3, 0x2f, 0x0, 0x40, 0x05, 0xa7, 0xa7, 0xe4);
// Class ID for our UnicodeToMathematica3 charset converter
// {830b5f80-11d3-b32f-004005a7a7e4}
NS_DECLARE_ID(kUnicodeToMathematica3CID,
0x830b5f80, 0xe2f2, 0x11d3, 0xb3, 0x2f, 0x0, 0x40, 0x05, 0xa7, 0xa7, 0xe4);
// Class ID for our UnicodeToMathematica4 charset converter
// {87ed1160-e2f2-11d3-b32f-004005a7a7e4}
NS_DECLARE_ID(kUnicodeToMathematica4CID,
0x87ed1160, 0xe2f2, 0x11d3, 0xb3, 0x2f, 0x0, 0x40, 0x05, 0xa7, 0xa7, 0xe4);
// Class ID for our UnicodeToMathematica5 charset converter
// {8a0dce80-e2f2-11d3-b32f-004005a7a7e4}
NS_DECLARE_ID(kUnicodeToMathematica5CID,
0x8a0dce80, 0xe2f2, 0x11d3, 0xb3, 0x2f, 0x0, 0x40, 0x05, 0xa7, 0xa7, 0xe4);
// Class ID for our UnicodeToMTExtra charset converter
// {0cb0d9a0-f503-11d3-b32f-004005a7a7e4}
NS_DECLARE_ID(kUnicodeToMTExtraCID,
0x0cb0d9a0, 0xf503, 0x11d3, 0xb3, 0x2f, 0x0, 0x40, 0x05, 0xa7, 0xa7, 0xe4);
#endif /* nsUCvMathCID_h___ */

View File

@ -0,0 +1,42 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Roger B. Sidje <rbs@maths.uq.edu.au>
*
* This Original Code has been modified by Roger B. Sidje.
* Modifications made by Roger B. Sidje described herein are
* Copyright (C) 2000 The University Of Queensland.
*
* Modifications to Mozilla code or documentation
* identified per MPL Section 3.3
*
* Date Modified by Description of modification
* 08/March/2000 RBS. Support for Mathematical fonts.
*/
#ifndef nsUCvMathDll_h___
#define nsUCvMathDll_h___
#include "prtypes.h"
extern PRInt32 g_InstanceCount;
extern PRInt32 g_LockCount;
#endif /* nsUCvMathDll_h___ */

View File

@ -0,0 +1,451 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Roger B. Sidje <rbs@maths.uq.edu.au>
*
* This Original Code has been modified by Roger B. Sidje.
* Modifications made by Roger B. Sidje described herein are
* Copyright (C) 2000 The University Of Queensland.
*
* Modifications to Mozilla code or documentation
* identified per MPL Section 3.3
*
* Date Modified by Description of modification
* 08/March/2000 RBS. Support for Mathematical fonts.
*/
#define NS_IMPL_IDS
#include "pratom.h"
#include "nspr.h"
#include "nsString.h"
#include "nsCOMPtr.h"
#include "nsIFactory.h"
#include "nsIRegistry.h"
#include "nsIServiceManager.h"
#include "nsIModule.h"
#include "nsUCvMathCID.h"
#include "nsUCvMathDll.h"
#include "nsUnicodeToTeXCMSYttf.h"
#include "nsUnicodeToTeXCMSYt1.h"
#include "nsUnicodeToTeXCMEXttf.h"
#include "nsUnicodeToTeXCMEXt1.h"
#include "nsUnicodeToMathematica1.h"
#include "nsUnicodeToMathematica2.h"
#include "nsUnicodeToMathematica3.h"
#include "nsUnicodeToMathematica4.h"
#include "nsUnicodeToMathematica5.h"
#include "nsUnicodeToMTExtra.h"
//----------------------------------------------------------------------------
// Global functions and data [declaration]
static NS_DEFINE_CID(kComponentManagerCID, NS_COMPONENTMANAGER_CID);
#define DECODER_NAME_BASE "Unicode Decoder-"
#define ENCODER_NAME_BASE "Unicode Encoder-"
PRInt32 g_InstanceCount = 0;
PRInt32 g_LockCount = 0;
typedef nsresult (* fpCreateInstance) (nsISupports **);
struct FactoryData
{
const nsCID * mCID;
fpCreateInstance CreateInstance;
char * mCharsetSrc;
char * mCharsetDest;
};
static FactoryData g_FactoryData[] =
{
/* TeX */
{
&kUnicodeToTeXCMSYttfCID,
nsUnicodeToTeXCMSYttf::CreateInstance,
"Unicode",
"x-ttf-cmsy"
},
{
&kUnicodeToTeXCMSYt1CID,
nsUnicodeToTeXCMSYt1::CreateInstance,
"Unicode",
"x-t1-cmsy"
},
{
&kUnicodeToTeXCMEXttfCID,
nsUnicodeToTeXCMEXttf::CreateInstance,
"Unicode",
"x-ttf-cmex"
},
{
&kUnicodeToTeXCMEXt1CID,
nsUnicodeToTeXCMEXt1::CreateInstance,
"Unicode",
"x-t1-cmex"
},
/* Mathematica */
{
&kUnicodeToMathematica1CID,
nsUnicodeToMathematica1::CreateInstance,
"Unicode",
"x-mathematica1"
},
{
&kUnicodeToMathematica2CID,
nsUnicodeToMathematica2::CreateInstance,
"Unicode",
"x-mathematica2"
},
{
&kUnicodeToMathematica2CID,
nsUnicodeToMathematica2::CreateInstance,
"Unicode",
"x-mathematica2"
},
{
&kUnicodeToMathematica3CID,
nsUnicodeToMathematica3::CreateInstance,
"Unicode",
"x-mathematica3"
},
{
&kUnicodeToMathematica4CID,
nsUnicodeToMathematica4::CreateInstance,
"Unicode",
"x-mathematica4"
},
{
&kUnicodeToMathematica5CID,
nsUnicodeToMathematica5::CreateInstance,
"Unicode",
"x-mathematica5"
},
/* MathType Extra */
{
&kUnicodeToMTExtraCID,
nsUnicodeToMTExtra::CreateInstance,
"Unicode",
"x-mtextra"
},
};
#define ARRAY_SIZE(_array) \
(sizeof(_array) / sizeof(_array[0]))
//----------------------------------------------------------------------------
// Class nsConverterFactory [declaration]
/**
* General factory class for converter objects.
*
* @created 24/Feb/1998
* @author Catalin Rotaru [CATA]
*/
class nsConverterFactory : public nsIFactory
{
NS_DECL_ISUPPORTS
private:
FactoryData * mData;
public:
/**
* Class constructor.
*/
nsConverterFactory(FactoryData * aData);
/**
* Class destructor.
*/
virtual ~nsConverterFactory();
//--------------------------------------------------------------------------
// Interface nsIFactory [declaration]
NS_IMETHOD CreateInstance(nsISupports *aDelegate, const nsIID &aIID,
void **aResult);
NS_IMETHOD LockFactory(PRBool aLock);
};
//----------------------------------------------------------------------------
// Class nsConverterModule [declaration]
class nsConverterModule : public nsIModule
{
NS_DECL_ISUPPORTS
NS_DECL_NSIMODULE
private:
PRBool mInitialized;
void Shutdown();
public:
nsConverterModule();
virtual ~nsConverterModule();
nsresult Initialize();
};
//----------------------------------------------------------------------------
// Global functions and data [implementation]
static nsConverterModule * gModule = NULL;
extern "C" NS_EXPORT nsresult NSGetModule(nsIComponentManager * compMgr,
nsIFile* location,
nsIModule** return_cobj)
{
nsresult rv = NS_OK;
NS_ENSURE_ARG_POINTER(return_cobj);
NS_ENSURE_FALSE(gModule, NS_ERROR_FAILURE);
// Create an initialize the module instance
nsConverterModule * m = new nsConverterModule();
if (!m) {
return NS_ERROR_OUT_OF_MEMORY;
}
// Increase refcnt and store away nsIModule interface to m in return_cobj
rv = m->QueryInterface(NS_GET_IID(nsIModule), (void**)return_cobj);
if (NS_FAILED(rv)) {
delete m;
m = nsnull;
}
gModule = m; // WARNING: Weak Reference
return rv;
}
//----------------------------------------------------------------------------
// Class nsConverterFactory [implementation]
NS_IMPL_ISUPPORTS(nsConverterFactory, NS_GET_IID(nsIFactory));
nsConverterFactory::nsConverterFactory(FactoryData * aData)
{
mData = aData;
NS_INIT_REFCNT();
PR_AtomicIncrement(&g_InstanceCount);
}
nsConverterFactory::~nsConverterFactory()
{
PR_AtomicDecrement(&g_InstanceCount);
}
//----------------------------------------------------------------------------
// Interface nsIFactory [implementation]
NS_IMETHODIMP nsConverterFactory::CreateInstance(nsISupports *aDelegate,
const nsIID &aIID,
void **aResult)
{
if (aResult == NULL) return NS_ERROR_NULL_POINTER;
if (aDelegate != NULL) return NS_ERROR_NO_AGGREGATION;
nsISupports * t;
mData->CreateInstance(&t);
if (t == NULL) return NS_ERROR_OUT_OF_MEMORY;
NS_ADDREF(t); // Stabilize
nsresult res = t->QueryInterface(aIID, aResult);
NS_RELEASE(t); // Destabilize and avoid leaks. Avoid calling delete <interface pointer>
return res;
}
NS_IMETHODIMP nsConverterFactory::LockFactory(PRBool aLock)
{
if (aLock) PR_AtomicIncrement(&g_LockCount);
else PR_AtomicDecrement(&g_LockCount);
return NS_OK;
}
//----------------------------------------------------------------------------
// Class nsConverterModule [implementation]
NS_IMPL_ISUPPORTS(nsConverterModule, NS_GET_IID(nsIModule))
nsConverterModule::nsConverterModule()
: mInitialized(PR_FALSE)
{
NS_INIT_ISUPPORTS();
}
nsConverterModule::~nsConverterModule()
{
Shutdown();
}
nsresult nsConverterModule::Initialize()
{
return NS_OK;
}
void nsConverterModule::Shutdown()
{
}
//----------------------------------------------------------------------------
// Interface nsIModule [implementation]
NS_IMETHODIMP nsConverterModule::GetClassObject(nsIComponentManager *aCompMgr,
const nsCID& aClass,
const nsIID& aIID,
void ** r_classObj)
{
nsresult rv;
// Defensive programming: Initialize *r_classObj in case of error below
if (!r_classObj) {
return NS_ERROR_INVALID_POINTER;
}
*r_classObj = NULL;
if (!mInitialized) {
rv = Initialize();
if (NS_FAILED(rv)) {
return rv;
}
mInitialized = PR_TRUE;
}
FactoryData * data;
nsConverterFactory * fact;
// XXX cache these factories
for (PRUint32 i=0; i<ARRAY_SIZE(g_FactoryData); i++) {
data = &(g_FactoryData[i]);
if (aClass.Equals(*(data->mCID))) {
fact = new nsConverterFactory(data);
if (fact == NULL) {
return NS_ERROR_OUT_OF_MEMORY;
}
rv = fact->QueryInterface(aIID, (void **) r_classObj);
if (NS_FAILED(rv)) delete fact;
return rv;
}
}
return NS_ERROR_FACTORY_NOT_REGISTERED;
}
NS_IMETHODIMP nsConverterModule::RegisterSelf(nsIComponentManager *aCompMgr,
nsIFile* aPath,
const char* registryLocation,
const char* componentType)
{
nsresult res;
PRUint32 i;
nsIRegistry * registry = NULL;
nsRegistryKey key;
char buff[1024];
// get the registry
res = nsServiceManager::GetService(NS_REGISTRY_PROGID,
NS_GET_IID(nsIRegistry), (nsISupports**)&registry);
if (NS_FAILED(res)) goto done;
// open the registry
res = registry->OpenWellKnownRegistry(
nsIRegistry::ApplicationComponentRegistry);
if (NS_FAILED(res)) goto done;
char name[128];
char progid[128];
char * cid_string;
for (i=0; i<ARRAY_SIZE(g_FactoryData); i++) {
if(0==PL_strcmp(g_FactoryData[i].mCharsetSrc,"Unicode"))
{
PL_strcpy(name, ENCODER_NAME_BASE);
PL_strcat(name, g_FactoryData[i].mCharsetDest);
PL_strcpy(progid, NS_UNICODEENCODER_PROGID_BASE);
PL_strcat(progid, g_FactoryData[i].mCharsetDest);
} else {
PL_strcpy(name, DECODER_NAME_BASE);
PL_strcat(name, g_FactoryData[i].mCharsetSrc);
PL_strcpy(progid, NS_UNICODEDECODER_PROGID_BASE);
PL_strcat(progid, g_FactoryData[i].mCharsetSrc);
}
// register component
res = aCompMgr->RegisterComponentSpec(*(g_FactoryData[i].mCID), name,
progid, aPath, PR_TRUE, PR_TRUE);
if(NS_FAILED(res) && (NS_ERROR_FACTORY_EXISTS != res)) goto done;
// register component info
// XXX take these KONSTANTS out of here; refine this code
cid_string = g_FactoryData[i].mCID->ToString();
sprintf(buff, "%s/%s", "software/netscape/intl/uconv", cid_string);
nsCRT::free(cid_string);
res = registry -> AddSubtree(nsIRegistry::Common, buff, &key);
if (NS_FAILED(res)) goto done;
res = registry -> SetStringUTF8(key, "source", g_FactoryData[i].mCharsetSrc);
if (NS_FAILED(res)) goto done;
res = registry -> SetStringUTF8(key, "destination", g_FactoryData[i].mCharsetDest);
if (NS_FAILED(res)) goto done;
}
done:
if (registry != NULL) {
nsServiceManager::ReleaseService(NS_REGISTRY_PROGID, registry);
}
return res;
}
NS_IMETHODIMP nsConverterModule::UnregisterSelf(nsIComponentManager *aCompMgr,
nsIFile* aPath,
const char* registryLocation)
{
// XXX also delete the stuff I added to the registry
nsresult rv;
for (PRUint32 i=0; i<ARRAY_SIZE(g_FactoryData); i++) {
rv = aCompMgr->UnregisterComponentSpec(*(g_FactoryData[i].mCID), aPath);
}
return NS_OK;
}
NS_IMETHODIMP nsConverterModule::CanUnload(nsIComponentManager *aCompMgr,
PRBool *okToUnload)
{
if (!okToUnload) {
return NS_ERROR_INVALID_POINTER;
}
*okToUnload = (g_InstanceCount == 0 && g_LockCount == 0);
return NS_OK;
}

View File

@ -0,0 +1,720 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Roger B. Sidje <rbs@maths.uq.edu.au>
*
* This Original Code has been modified by Roger B. Sidje.
* Modifications made by Roger B. Sidje described herein are
* Copyright (C) 2000 The University Of Queensland.
*
* Modifications to Mozilla code or documentation
* identified per MPL Section 3.3
*
* Date Modified by Description of modification
* 08/March/2000 RBS. Support for Mathematical fonts.
*/
#include "pratom.h"
#include "nsIComponentManager.h"
#include "nsICharRepresentable.h"
#include "nsUCvMathSupport.h"
#include "nsUCvMathDll.h"
#define DEFAULT_BUFFER_CAPACITY 16
// XXX review the buffer growth limitation code
//----------------------------------------------------------------------
// Class nsBasicDecoderSupport [implementation]
nsBasicDecoderSupport::nsBasicDecoderSupport()
{
NS_INIT_REFCNT();
PR_AtomicIncrement(&g_InstanceCount);
}
nsBasicDecoderSupport::~nsBasicDecoderSupport()
{
PR_AtomicDecrement(&g_InstanceCount);
}
//----------------------------------------------------------------------
// Interface nsISupports [implementation]
NS_IMPL_ADDREF(nsBasicDecoderSupport);
NS_IMPL_RELEASE(nsBasicDecoderSupport);
nsresult nsBasicDecoderSupport::QueryInterface(REFNSIID aIID,
void** aInstancePtr)
{
if (NULL == aInstancePtr) {
return NS_ERROR_NULL_POINTER;
}
*aInstancePtr = NULL;
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
if (aIID.Equals(kIUnicodeDecoderIID)) {
*aInstancePtr = (void*) ((nsIUnicodeDecoder*)this);
NS_ADDREF_THIS();
return NS_OK;
}
if (aIID.Equals(kISupportsIID)) {
*aInstancePtr = (void*) ((nsISupports*)this);
NS_ADDREF_THIS();
return NS_OK;
}
return NS_NOINTERFACE;
}
//----------------------------------------------------------------------
// Interface nsIUnicodeDecoder [implementation]
//----------------------------------------------------------------------
// Class nsBufferDecoderSupport [implementation]
nsBufferDecoderSupport::nsBufferDecoderSupport()
: nsBasicDecoderSupport()
{
mBufferCapacity = DEFAULT_BUFFER_CAPACITY;
mBuffer = new char[mBufferCapacity];
Reset();
}
nsBufferDecoderSupport::~nsBufferDecoderSupport()
{
delete [] mBuffer;
}
void nsBufferDecoderSupport::FillBuffer(const char ** aSrc, PRInt32 aSrcLength)
{
PRInt32 bcr = PR_MIN(mBufferCapacity - mBufferLength, aSrcLength);
memcpy(mBuffer + mBufferLength, *aSrc, bcr);
mBufferLength += bcr;
(*aSrc) += bcr;
}
void nsBufferDecoderSupport::DoubleBuffer()
{
mBufferCapacity *= 2;
char * newBuffer = new char [mBufferCapacity];
if (mBufferLength > 0) memcpy(newBuffer, mBuffer, mBufferLength);
delete [] mBuffer;
mBuffer = newBuffer;
}
//----------------------------------------------------------------------
// Subclassing of nsBasicDecoderSupport class [implementation]
NS_IMETHODIMP nsBufferDecoderSupport::Convert(const char * aSrc,
PRInt32 * aSrcLength,
PRUnichar * aDest,
PRInt32 * aDestLength)
{
// we do all operations using pointers internally
const char * src = aSrc;
const char * srcEnd = aSrc + *aSrcLength;
PRUnichar * dest = aDest;
PRUnichar * destEnd = aDest + *aDestLength;
PRInt32 bcr, bcw; // byte counts for read & write;
nsresult res = NS_OK;
// do we have some residual data from the last conversion?
if (mBufferLength > 0) if (dest == destEnd) {
res = NS_OK_UDEC_MOREOUTPUT;
} else for (;;) {
// we need new data to add to the buffer
if (src == srcEnd) {
res = NS_OK_UDEC_MOREINPUT;
break;
}
// fill that buffer
PRInt32 buffLen = mBufferLength; // initial buffer length
FillBuffer(&src, srcEnd - src);
// convert that buffer
bcr = mBufferLength;
bcw = destEnd - dest;
res = ConvertNoBuff(mBuffer, &bcr, dest, &bcw);
dest += bcw;
if ((res == NS_OK_UDEC_MOREINPUT) && (bcw == 0)) {
res = NS_ERROR_UNEXPECTED;
break;
} else {
if (bcr < buffLen) {
// we didn't convert that residual data - unfill the buffer
src -= mBufferLength - buffLen;
mBufferLength = buffLen;
} else {
// the buffer and some extra data was converted - unget the rest
src -= mBufferLength - bcr;
mBufferLength = 0;
}
break;
}
}
if (res == NS_OK) {
bcr = srcEnd - src;
bcw = destEnd - dest;
res = ConvertNoBuff(src, &bcr, dest, &bcw);
src += bcr;
dest += bcw;
// if we have partial input, store it in our internal buffer.
if (res == NS_OK_UDEC_MOREINPUT) {
bcr = srcEnd - src;
// make sure buffer is large enough
if (bcr > mBufferCapacity) {
// somehow we got into an error state and the buffer is growing out of control
res = NS_ERROR_UNEXPECTED;
} else {
FillBuffer(&src, bcr);
}
}
}
*aSrcLength -= srcEnd - src;
*aDestLength -= destEnd - dest;
return res;
}
NS_IMETHODIMP nsBufferDecoderSupport::Reset()
{
mBufferLength = 0;
return NS_OK;
}
//----------------------------------------------------------------------
// Class nsTableDecoderSupport [implementation]
nsTableDecoderSupport::nsTableDecoderSupport(uShiftTable * aShiftTable,
uMappingTable * aMappingTable)
: nsBufferDecoderSupport()
{
mHelper = NULL;
mShiftTable = aShiftTable;
mMappingTable = aMappingTable;
}
nsTableDecoderSupport::~nsTableDecoderSupport()
{
NS_IF_RELEASE(mHelper);
}
//----------------------------------------------------------------------
// Subclassing of nsBufferDecoderSupport class [implementation]
NS_IMETHODIMP nsTableDecoderSupport::ConvertNoBuff(const char * aSrc,
PRInt32 * aSrcLength,
PRUnichar * aDest,
PRInt32 * aDestLength)
{
nsresult res;
if (mHelper == nsnull) {
res = nsComponentManager::CreateInstance(kUnicodeDecodeHelperCID, NULL,
kIUnicodeDecodeHelperIID, (void**) & mHelper);
if (NS_FAILED(res)) return NS_ERROR_UDEC_NOHELPER;
}
res = mHelper->ConvertByTable(aSrc, aSrcLength, aDest, aDestLength,
mShiftTable, mMappingTable);
return res;
}
//----------------------------------------------------------------------
// Class nsMultiTableDecoderSupport [implementation]
nsMultiTableDecoderSupport::nsMultiTableDecoderSupport(
PRInt32 aTableCount,
uRange * aRangeArray,
uShiftTable ** aShiftTable,
uMappingTable ** aMappingTable)
: nsBufferDecoderSupport()
{
mHelper = NULL;
mTableCount = aTableCount;
mRangeArray = aRangeArray;
mShiftTable = aShiftTable;
mMappingTable = aMappingTable;
}
nsMultiTableDecoderSupport::~nsMultiTableDecoderSupport()
{
NS_IF_RELEASE(mHelper);
}
//----------------------------------------------------------------------
// Subclassing of nsBufferDecoderSupport class [implementation]
NS_IMETHODIMP nsMultiTableDecoderSupport::ConvertNoBuff(const char * aSrc,
PRInt32 * aSrcLength,
PRUnichar * aDest,
PRInt32 * aDestLength)
{
nsresult res;
if (mHelper == nsnull) {
res = nsComponentManager::CreateInstance(kUnicodeDecodeHelperCID, NULL,
kIUnicodeDecodeHelperIID, (void**) &mHelper);
if (NS_FAILED(res)) return NS_ERROR_UDEC_NOHELPER;
}
res = mHelper->ConvertByMultiTable(aSrc, aSrcLength, aDest, aDestLength,
mTableCount, mRangeArray, mShiftTable, mMappingTable);
return res;
}
//----------------------------------------------------------------------
// Class nsOneByteDecoderSupport [implementation]
nsOneByteDecoderSupport::nsOneByteDecoderSupport(
uShiftTable * aShiftTable,
uMappingTable * aMappingTable)
: nsBasicDecoderSupport()
{
mHelper = NULL;
mShiftTable = aShiftTable;
mMappingTable = aMappingTable;
}
nsOneByteDecoderSupport::~nsOneByteDecoderSupport()
{
NS_IF_RELEASE(mHelper);
}
//----------------------------------------------------------------------
// Subclassing of nsBasicDecoderSupport class [implementation]
NS_IMETHODIMP nsOneByteDecoderSupport::Convert(const char * aSrc,
PRInt32 * aSrcLength,
PRUnichar * aDest,
PRInt32 * aDestLength)
{
nsresult res;
if (mHelper == nsnull) {
res = nsComponentManager::CreateInstance(kUnicodeDecodeHelperCID, NULL,
kIUnicodeDecodeHelperIID, (void**) &mHelper);
if (NS_FAILED(res)) return NS_ERROR_UDEC_NOHELPER;
res = mHelper -> CreateFastTable(mShiftTable, mMappingTable, mFastTable,
ONE_BYTE_TABLE_SIZE);
if (NS_FAILED(res)) return res;
}
res = mHelper->ConvertByFastTable(aSrc, aSrcLength, aDest, aDestLength,
mFastTable, ONE_BYTE_TABLE_SIZE);
return res;
}
NS_IMETHODIMP nsOneByteDecoderSupport::GetMaxLength(const char * aSrc,
PRInt32 aSrcLength,
PRInt32 * aDestLength)
{
// single byte to Unicode converter
*aDestLength = aSrcLength;
return NS_OK_UDEC_EXACTLENGTH;
}
NS_IMETHODIMP nsOneByteDecoderSupport::Reset()
{
// nothing to reset, no internal state in this case
return NS_OK;
}
//----------------------------------------------------------------------
// Class nsBasicEncoder [implementation]
nsBasicEncoder::nsBasicEncoder()
{
NS_INIT_REFCNT();
PR_AtomicIncrement(&g_InstanceCount);
}
nsBasicEncoder::~nsBasicEncoder()
{
PR_AtomicDecrement(&g_InstanceCount);
}
//----------------------------------------------------------------------
// Interface nsISupports [implementation]
NS_IMPL_ADDREF(nsBasicEncoder);
NS_IMPL_RELEASE(nsBasicEncoder);
nsresult nsBasicEncoder::QueryInterface(REFNSIID aIID,
void** aInstancePtr)
{
if (NULL == aInstancePtr) {
return NS_ERROR_NULL_POINTER;
}
*aInstancePtr = NULL;
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
if (aIID.Equals(kIUnicodeEncoderIID)) {
*aInstancePtr = (void*) ((nsIUnicodeEncoder*)this);
NS_ADDREF_THIS();
return NS_OK;
}
if (aIID.Equals(NS_GET_IID(nsICharRepresentable))) {
*aInstancePtr = (void*) ((nsICharRepresentable*)this);
NS_ADDREF_THIS();
return NS_OK;
}
if (aIID.Equals(kISupportsIID)) {
*aInstancePtr = (void*) ((nsISupports*)((nsIUnicodeEncoder*)this));
NS_ADDREF_THIS();
return NS_OK;
}
return NS_NOINTERFACE;
}
//----------------------------------------------------------------------
// Class nsEncoderSupport [implementation]
nsEncoderSupport::nsEncoderSupport()
{
mBufferCapacity = DEFAULT_BUFFER_CAPACITY;
mBuffer = new char[mBufferCapacity];
mErrBehavior = kOnError_Signal;
mErrChar = 0;
mErrEncoder = NULL;
Reset();
}
nsEncoderSupport::~nsEncoderSupport()
{
delete [] mBuffer;
NS_IF_RELEASE(mErrEncoder);
}
NS_IMETHODIMP nsEncoderSupport::ConvertNoBuff(const PRUnichar * aSrc,
PRInt32 * aSrcLength,
char * aDest,
PRInt32 * aDestLength)
{
// we do all operations using pointers internally
const PRUnichar * src = aSrc;
const PRUnichar * srcEnd = aSrc + *aSrcLength;
char * dest = aDest;
char * destEnd = aDest + *aDestLength;
PRInt32 bcr, bcw; // byte counts for read & write;
nsresult res;
for (;;) {
bcr = srcEnd - src;
bcw = destEnd - dest;
res = ConvertNoBuffNoErr(src, &bcr, dest, &bcw);
src += bcr;
dest += bcw;
if (res == NS_ERROR_UENC_NOMAPPING) {
if (mErrBehavior == kOnError_Replace) {
const PRUnichar buff[] = {mErrChar};
bcr = 1;
bcw = destEnd - dest;
src--; // back the input: maybe the guy won't consume consume anything.
res = ConvertNoBuffNoErr(buff, &bcr, dest, &bcw);
src += bcr;
dest += bcw;
if (res != NS_OK) break;
} else if (mErrBehavior == kOnError_CallBack) {
bcw = destEnd - dest;
src--;
res = mErrEncoder->Convert(*src, dest, &bcw);
dest += bcw;
// if enought output space then the last char was used
if (res != NS_OK_UENC_MOREOUTPUT) src++;
if (res != NS_OK) break;
} else break;
}
else break;
}
*aSrcLength -= srcEnd - src;
*aDestLength -= destEnd - dest;
return res;
}
NS_IMETHODIMP nsEncoderSupport::FinishNoBuff(char * aDest,
PRInt32 * aDestLength)
{
*aDestLength = 0;
return NS_OK;
}
nsresult nsEncoderSupport::FlushBuffer(char ** aDest, const char * aDestEnd)
{
PRInt32 bcr, bcw; // byte counts for read & write;
nsresult res = NS_OK;
char * dest = *aDest;
if (mBufferStart < mBufferEnd) {
bcr = mBufferEnd - mBufferStart;
bcw = aDestEnd - dest;
if (bcw < bcr) bcr = bcw;
memcpy(dest, mBufferStart, bcr);
dest += bcr;
mBufferStart += bcr;
if (mBufferStart < mBufferEnd) res = NS_OK_UENC_MOREOUTPUT;
}
*aDest = dest;
return res;
}
//----------------------------------------------------------------------
// Interface nsIUnicodeEncoder [implementation]
NS_IMETHODIMP nsEncoderSupport::Convert(const PRUnichar * aSrc,
PRInt32 * aSrcLength,
char * aDest,
PRInt32 * aDestLength)
{
// we do all operations using pointers internally
const PRUnichar * src = aSrc;
const PRUnichar * srcEnd = aSrc + *aSrcLength;
char * dest = aDest;
char * destEnd = aDest + *aDestLength;
PRInt32 bcr, bcw; // byte counts for read & write;
nsresult res;
res = FlushBuffer(&dest, destEnd);
if (res == NS_OK_UENC_MOREOUTPUT) goto final;
bcr = srcEnd - src;
bcw = destEnd - dest;
res = ConvertNoBuff(src, &bcr, dest, &bcw);
src += bcr;
dest += bcw;
if ((res == NS_OK_UENC_MOREOUTPUT) && (dest < destEnd)) {
// convert exactly one character into the internal buffer
// at this point, there should be at least a char in the input
for (;;) {
bcr = 1;
bcw = mBufferCapacity;
res = ConvertNoBuff(src, &bcr, mBuffer, &bcw);
if (res == NS_OK_UENC_MOREOUTPUT) {
delete [] mBuffer;
mBufferCapacity *= 2;
mBuffer = new char [mBufferCapacity];
} else {
src += bcr;
mBufferStart = mBufferEnd = mBuffer;
mBufferEnd += bcw;
break;
}
}
res = FlushBuffer(&dest, destEnd);
}
final:
*aSrcLength -= srcEnd - src;
*aDestLength -= destEnd - dest;
return res;
}
NS_IMETHODIMP nsEncoderSupport::Finish(char * aDest, PRInt32 * aDestLength)
{
// we do all operations using pointers internally
char * dest = aDest;
char * destEnd = aDest + *aDestLength;
PRInt32 bcw; // byte count for write;
nsresult res;
res = FlushBuffer(&dest, destEnd);
if (res == NS_OK_UENC_MOREOUTPUT) goto final;
// do the finish into the internal buffer.
for (;;) {
bcw = mBufferCapacity;
res = FinishNoBuff(mBuffer, &bcw);
if (res == NS_OK_UENC_MOREOUTPUT) {
delete [] mBuffer;
mBufferCapacity *= 2;
mBuffer = new char [mBufferCapacity];
} else {
mBufferStart = mBufferEnd = mBuffer;
mBufferEnd += bcw;
break;
}
}
res = FlushBuffer(&dest, destEnd);
final:
*aDestLength -= destEnd - dest;
return res;
}
NS_IMETHODIMP nsEncoderSupport::Reset()
{
mBufferStart = mBufferEnd = mBuffer;
return NS_OK;
}
NS_IMETHODIMP nsEncoderSupport::SetOutputErrorBehavior(
PRInt32 aBehavior,
nsIUnicharEncoder * aEncoder,
PRUnichar aChar)
{
if ((aBehavior == kOnError_CallBack) && (aEncoder == NULL))
return NS_ERROR_NULL_POINTER;
NS_IF_RELEASE(aEncoder);
mErrEncoder = aEncoder;
NS_IF_ADDREF(aEncoder);
mErrBehavior = aBehavior;
mErrChar = aChar;
return NS_OK;
}
//----------------------------------------------------------------------
// Class nsTableEncoderSupport [implementation]
nsTableEncoderSupport::nsTableEncoderSupport(uShiftTable * aShiftTable,
uMappingTable * aMappingTable)
: nsEncoderSupport()
{
mHelper = NULL;
mShiftTable = aShiftTable;
mMappingTable = aMappingTable;
}
nsTableEncoderSupport::~nsTableEncoderSupport()
{
NS_IF_RELEASE(mHelper);
}
NS_IMETHODIMP nsTableEncoderSupport::FillInfo(PRUint32 *aInfo)
{
nsresult res;
if (mHelper == nsnull) {
res = nsComponentManager::CreateInstance(kUnicodeEncodeHelperCID, NULL,
kIUnicodeEncodeHelperIID, (void**) & mHelper);
if (NS_FAILED(res)) return NS_ERROR_UENC_NOHELPER;
}
res = mHelper->FillInfo(aInfo, mMappingTable);
return res;
}
//----------------------------------------------------------------------
// Subclassing of nsEncoderSupport class [implementation]
NS_IMETHODIMP nsTableEncoderSupport::ConvertNoBuffNoErr(
const PRUnichar * aSrc,
PRInt32 * aSrcLength,
char * aDest,
PRInt32 * aDestLength)
{
nsresult res;
if (mHelper == nsnull) {
res = nsComponentManager::CreateInstance(kUnicodeEncodeHelperCID, NULL,
kIUnicodeEncodeHelperIID, (void**) & mHelper);
if (NS_FAILED(res)) return NS_ERROR_UENC_NOHELPER;
}
res = mHelper->ConvertByTable(aSrc, aSrcLength, aDest, aDestLength,
mShiftTable, mMappingTable);
return res;
}
//----------------------------------------------------------------------
// Class nsMultiTableEncoderSupport [implementation]
nsMultiTableEncoderSupport::nsMultiTableEncoderSupport(
PRInt32 aTableCount,
uShiftTable ** aShiftTable,
uMappingTable ** aMappingTable)
: nsEncoderSupport()
{
mHelper = NULL;
mTableCount = aTableCount;
mShiftTable = aShiftTable;
mMappingTable = aMappingTable;
}
nsMultiTableEncoderSupport::~nsMultiTableEncoderSupport()
{
NS_IF_RELEASE(mHelper);
}
NS_IMETHODIMP nsMultiTableEncoderSupport::FillInfo(PRUint32 *aInfo)
{
nsresult res;
if (mHelper == nsnull) {
res = nsComponentManager::CreateInstance(kUnicodeEncodeHelperCID, NULL,
kIUnicodeEncodeHelperIID, (void**) & mHelper);
if (NS_FAILED(res)) return NS_ERROR_UENC_NOHELPER;
}
res = mHelper->FillInfo(aInfo,mTableCount, mMappingTable);
return res;
}
//----------------------------------------------------------------------
// Subclassing of nsEncoderSupport class [implementation]
NS_IMETHODIMP nsMultiTableEncoderSupport::ConvertNoBuffNoErr(
const PRUnichar * aSrc,
PRInt32 * aSrcLength,
char * aDest,
PRInt32 * aDestLength)
{
nsresult res;
if (mHelper == nsnull) {
res = nsComponentManager::CreateInstance(kUnicodeEncodeHelperCID, NULL,
kIUnicodeEncodeHelperIID, (void**) & mHelper);
if (NS_FAILED(res)) return NS_ERROR_UENC_NOHELPER;
}
res = mHelper->ConvertByMultiTable(aSrc, aSrcLength, aDest, aDestLength,
mTableCount, mShiftTable, mMappingTable);
return res;
}

View File

@ -0,0 +1,433 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Roger B. Sidje <rbs@maths.uq.edu.au>
*
* This Original Code has been modified by Roger B. Sidje.
* Modifications made by Roger B. Sidje described herein are
* Copyright (C) 2000 The University Of Queensland.
*
* Modifications to Mozilla code or documentation
* identified per MPL Section 3.3
*
* Date Modified by Description of modification
* 08/March/2000 RBS. Support for Mathematical fonts.
*/
#ifndef nsUCvMathSupport_h___
#define nsUCvMathSupport_h___
#include "nsIUnicodeEncoder.h"
#include "nsIUnicodeDecoder.h"
#include "nsIUnicodeEncodeHelper.h"
#include "nsIUnicodeDecodeHelper.h"
#include "nsICharRepresentable.h"
#define ONE_BYTE_TABLE_SIZE 256
//----------------------------------------------------------------------
// Class nsBasicDecoderSupport [declaration]
/**
* Support class for the Unicode decoders.
*
* The class source files for this class are in /ucvlatin/nsUCvMathSupport.
* However, because these objects requires non-xpcom subclassing, local copies
* will be made into the other directories using them. Just don't forget to
* keep in sync with the master copy!
*
* This class implements:
* - nsISupports
* - nsIUnicodeDecoder
*
* @created 19/Apr/1999
* @author Catalin Rotaru [CATA]
*/
class nsBasicDecoderSupport : public nsIUnicodeDecoder
{
NS_DECL_ISUPPORTS
public:
/**
* Class constructor.
*/
nsBasicDecoderSupport();
/**
* Class destructor.
*/
virtual ~nsBasicDecoderSupport();
//--------------------------------------------------------------------
// Interface nsIUnicodeDecoder [declaration]
};
//----------------------------------------------------------------------
// Class nsBufferDecoderSupport [declaration]
/**
* Support class for the Unicode decoders.
*
* This class implements:
* - the buffer management
*
* @created 15/Mar/1999
* @author Catalin Rotaru [CATA]
*/
class nsBufferDecoderSupport : public nsBasicDecoderSupport
{
protected:
/**
* Internal buffer for partial conversions.
*/
char * mBuffer;
PRInt32 mBufferCapacity;
PRInt32 mBufferLength;
/**
* Convert method but *without* the buffer management stuff.
*/
NS_IMETHOD ConvertNoBuff(const char * aSrc, PRInt32 * aSrcLength,
PRUnichar * aDest, PRInt32 * aDestLength) = 0;
void FillBuffer(const char ** aSrc, PRInt32 aSrcLength);
void DoubleBuffer();
public:
/**
* Class constructor.
*/
nsBufferDecoderSupport();
/**
* Class destructor.
*/
virtual ~nsBufferDecoderSupport();
//--------------------------------------------------------------------
// Interface nsIUnicodeDecoder [declaration]
NS_IMETHOD Convert(const char * aSrc, PRInt32 * aSrcLength,
PRUnichar * aDest, PRInt32 * aDestLength);
NS_IMETHOD Reset();
};
//----------------------------------------------------------------------
// Class nsTableDecoderSupport [declaration]
/**
* Support class for a single-table-driven Unicode decoder.
*
* @created 15/Mar/1999
* @author Catalin Rotaru [CATA]
*/
class nsTableDecoderSupport : public nsBufferDecoderSupport
{
public:
/**
* Class constructor.
*/
nsTableDecoderSupport(uShiftTable * aShiftTable,
uMappingTable * aMappingTable);
/**
* Class destructor.
*/
virtual ~nsTableDecoderSupport();
protected:
nsIUnicodeDecodeHelper * mHelper; // decoder helper object
uShiftTable * mShiftTable;
uMappingTable * mMappingTable;
//--------------------------------------------------------------------
// Subclassing of nsBufferDecoderSupport class [declaration]
NS_IMETHOD ConvertNoBuff(const char * aSrc, PRInt32 * aSrcLength,
PRUnichar * aDest, PRInt32 * aDestLength);
};
//----------------------------------------------------------------------
// Class nsMultiTableDecoderSupport [declaration]
/**
* Support class for a multi-table-driven Unicode decoder.
*
* @created 24/Mar/1999
* @author Catalin Rotaru [CATA]
*/
class nsMultiTableDecoderSupport : public nsBufferDecoderSupport
{
public:
/**
* Class constructor.
*/
nsMultiTableDecoderSupport(PRInt32 aTableCount, uRange * aRangeArray,
uShiftTable ** aShiftTable, uMappingTable ** aMappingTable);
/**
* Class destructor.
*/
virtual ~nsMultiTableDecoderSupport();
protected:
nsIUnicodeDecodeHelper * mHelper; // decoder helper object
PRInt32 mTableCount;
uRange * mRangeArray;
uShiftTable ** mShiftTable;
uMappingTable ** mMappingTable;
//--------------------------------------------------------------------
// Subclassing of nsBufferDecoderSupport class [declaration]
NS_IMETHOD ConvertNoBuff(const char * aSrc, PRInt32 * aSrcLength,
PRUnichar * aDest, PRInt32 * aDestLength);
};
//----------------------------------------------------------------------
// Class nsBufferDecoderSupport [declaration]
/**
* Support class for a single-byte Unicode decoder.
*
* @created 19/Apr/1999
* @author Catalin Rotaru [CATA]
*/
class nsOneByteDecoderSupport : public nsBasicDecoderSupport
{
public:
/**
* Class constructor.
*/
nsOneByteDecoderSupport(uShiftTable * aShiftTable,
uMappingTable * aMappingTable);
/**
* Class destructor.
*/
virtual ~nsOneByteDecoderSupport();
protected:
nsIUnicodeDecodeHelper * mHelper; // decoder helper object
uShiftTable * mShiftTable;
uMappingTable * mMappingTable;
PRUnichar mFastTable[ONE_BYTE_TABLE_SIZE];
//--------------------------------------------------------------------
// Subclassing of nsBasicDecoderSupport class [declaration]
NS_IMETHOD Convert(const char * aSrc, PRInt32 * aSrcLength,
PRUnichar * aDest, PRInt32 * aDestLength);
NS_IMETHOD GetMaxLength(const char * aSrc, PRInt32 aSrcLength,
PRInt32 * aDestLength);
NS_IMETHOD Reset();
};
//----------------------------------------------------------------------
// Class nsBasicEncoder [declaration]
class nsBasicEncoder : public nsIUnicodeEncoder, public nsICharRepresentable
{
NS_DECL_ISUPPORTS
public:
/**
* Class constructor.
*/
nsBasicEncoder();
/**
* Class destructor.
*/
virtual ~nsBasicEncoder();
};
//----------------------------------------------------------------------
// Class nsEncoderSupport [declaration]
/**
* Support class for the Unicode encoders.
*
* This class implements:
* - nsISupports
* - the buffer management
* - error handling procedure(s)
*
* @created 17/Feb/1999
* @author Catalin Rotaru [CATA]
*/
class nsEncoderSupport : public nsBasicEncoder
{
protected:
/**
* Internal buffer for partial conversions.
*/
char * mBuffer;
PRInt32 mBufferCapacity;
char * mBufferStart;
char * mBufferEnd;
/**
* Error handling stuff
*/
PRInt32 mErrBehavior;
nsIUnicharEncoder * mErrEncoder;
PRUnichar mErrChar;
/**
* Convert method but *without* the buffer management stuff and *with*
* error handling stuff.
*/
NS_IMETHOD ConvertNoBuff(const PRUnichar * aSrc, PRInt32 * aSrcLength,
char * aDest, PRInt32 * aDestLength);
/**
* Convert method but *without* the buffer management stuff and *without*
* error handling stuff.
*/
NS_IMETHOD ConvertNoBuffNoErr(const PRUnichar * aSrc, PRInt32 * aSrcLength,
char * aDest, PRInt32 * aDestLength) = 0;
/**
* Finish method but *without* the buffer management stuff.
*/
NS_IMETHOD FinishNoBuff(char * aDest, PRInt32 * aDestLength);
/**
* Copy as much as possible from the internal buffer to the destination.
*/
nsresult FlushBuffer(char ** aDest, const char * aDestEnd);
public:
/**
* Class constructor.
*/
nsEncoderSupport();
/**
* Class destructor.
*/
virtual ~nsEncoderSupport();
//--------------------------------------------------------------------
// Interface nsIUnicodeEncoder [declaration]
NS_IMETHOD Convert(const PRUnichar * aSrc, PRInt32 * aSrcLength,
char * aDest, PRInt32 * aDestLength);
NS_IMETHOD Finish(char * aDest, PRInt32 * aDestLength);
NS_IMETHOD Reset();
NS_IMETHOD SetOutputErrorBehavior(PRInt32 aBehavior,
nsIUnicharEncoder * aEncoder, PRUnichar aChar);
//--------------------------------------------------------------------
// Interface nsICharRepresentable [declaration]
NS_IMETHOD FillInfo(PRUint32 *aInfo) = 0;
};
//----------------------------------------------------------------------
// Class nsTableEncoderSupport [declaration]
/**
* Support class for a single-table-driven Unicode encoder.
*
* @created 17/Feb/1999
* @author Catalin Rotaru [CATA]
*/
class nsTableEncoderSupport : public nsEncoderSupport
{
public:
/**
* Class constructor.
*/
nsTableEncoderSupport(uShiftTable * aShiftTable,
uMappingTable * aMappingTable);
/**
* Class destructor.
*/
virtual ~nsTableEncoderSupport();
NS_IMETHOD FillInfo( PRUint32 *aInfo);
protected:
nsIUnicodeEncodeHelper * mHelper; // encoder helper object
uShiftTable * mShiftTable;
uMappingTable * mMappingTable;
//--------------------------------------------------------------------
// Subclassing of nsEncoderSupport class [declaration]
NS_IMETHOD ConvertNoBuffNoErr(const PRUnichar * aSrc, PRInt32 * aSrcLength,
char * aDest, PRInt32 * aDestLength);
};
//----------------------------------------------------------------------
// Class nsMultiTableEncoderSupport [declaration]
/**
* Support class for a multi-table-driven Unicode encoder.
*
* @created 11/Mar/1999
* @author Catalin Rotaru [CATA]
*/
class nsMultiTableEncoderSupport : public nsEncoderSupport
{
public:
/**
* Class constructor.
*/
nsMultiTableEncoderSupport(PRInt32 aTableCount, uShiftTable ** aShiftTable,
uMappingTable ** aMappingTable);
/**
* Class destructor.
*/
virtual ~nsMultiTableEncoderSupport();
NS_IMETHOD FillInfo( PRUint32 *aInfo);
protected:
nsIUnicodeEncodeHelper * mHelper; // encoder helper object
PRInt32 mTableCount;
uShiftTable ** mShiftTable;
uMappingTable ** mMappingTable;
//--------------------------------------------------------------------
// Subclassing of nsEncoderSupport class [declaration]
NS_IMETHOD ConvertNoBuffNoErr(const PRUnichar * aSrc, PRInt32 * aSrcLength,
char * aDest, PRInt32 * aDestLength);
};
#endif /* nsUCvMathSupport_h___ */

View File

@ -0,0 +1,72 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Roger B. Sidje <rbs@maths.uq.edu.au>
*
* This Original Code has been modified by Roger B. Sidje.
* Modifications made by Roger B. Sidje described herein are
* Copyright (C) 2000 The University Of Queensland.
*
* Modifications to Mozilla code or documentation
* identified per MPL Section 3.3
*
* Date Modified by Description of modification
* 08/March/2000 RBS. Support for Mathematical fonts.
*/
#include "nsUnicodeToMTExtra.h"
//----------------------------------------------------------------------
// Global functions and data [declaration]
static PRUint16 g_ufMappingTable[] = {
#include "mtextra.uf"
};
static PRInt16 g_ufShiftTable[] = {
0, u1ByteCharset ,
ShiftCell(0,0,0,0,0,0,0,0)
};
//----------------------------------------------------------------------
// Class nsUnicodeToMTExtra [implementation]
nsUnicodeToMTExtra::nsUnicodeToMTExtra()
: nsTableEncoderSupport((uShiftTable*) &g_ufShiftTable,
(uMappingTable*) &g_ufMappingTable)
{
}
nsresult nsUnicodeToMTExtra::CreateInstance(nsISupports ** aResult)
{
*aResult = (nsIUnicodeEncoder*) new nsUnicodeToMTExtra();
return (*aResult == NULL)? NS_ERROR_OUT_OF_MEMORY : NS_OK;
}
//----------------------------------------------------------------------
// Subclassing of nsTableEncoderSupport class [implementation]
NS_IMETHODIMP nsUnicodeToMTExtra::GetMaxLength(const PRUnichar * aSrc,
PRInt32 aSrcLength,
PRInt32 * aDestLength)
{
*aDestLength = aSrcLength;
return NS_OK_UENC_EXACTLENGTH;
}

View File

@ -0,0 +1,69 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Roger B. Sidje <rbs@maths.uq.edu.au>
*
* This Original Code has been modified by Roger B. Sidje.
* Modifications made by Roger B. Sidje described herein are
* Copyright (C) 2000 The University Of Queensland.
*
* Modifications to Mozilla code or documentation
* identified per MPL Section 3.3
*
* Date Modified by Description of modification
* 08/March/2000 RBS. Support for Mathematical fonts.
*/
#ifndef nsUnicodeToMTExtra_h___
#define nsUnicodeToMTExtra_h___
#include "nsUCvMathSupport.h"
//----------------------------------------------------------------------
// Class nsUnicodeToMTExtra [declaration]
/**
* A character set converter from Unicode to MathType Extra.
*
*/
class nsUnicodeToMTExtra : public nsTableEncoderSupport
{
public:
/**
* Class constructor.
*/
nsUnicodeToMTExtra();
/**
* Static class constructor.
*/
static nsresult CreateInstance(nsISupports **aResult);
protected:
//--------------------------------------------------------------------
// Subclassing of nsEncoderSupport class [declaration]
NS_IMETHOD GetMaxLength(const PRUnichar * aSrc, PRInt32 aSrcLength,
PRInt32 * aDestLength);
};
#endif /* nsUnicodeToMTExtra_h___ */

View File

@ -0,0 +1,72 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Roger B. Sidje <rbs@maths.uq.edu.au>
*
* This Original Code has been modified by Roger B. Sidje.
* Modifications made by Roger B. Sidje described herein are
* Copyright (C) 2000 The University Of Queensland.
*
* Modifications to Mozilla code or documentation
* identified per MPL Section 3.3
*
* Date Modified by Description of modification
* 08/March/2000 RBS. Support for Mathematical fonts.
*/
#include "nsUnicodeToMathematica1.h"
//----------------------------------------------------------------------
// Global functions and data [declaration]
static PRUint16 g_ufMappingTable[] = {
#include "mathematica1.uf"
};
static PRInt16 g_ufShiftTable[] = {
0, u1ByteCharset ,
ShiftCell(0,0,0,0,0,0,0,0)
};
//----------------------------------------------------------------------
// Class nsUnicodeToMathematica1 [implementation]
nsUnicodeToMathematica1::nsUnicodeToMathematica1()
: nsTableEncoderSupport((uShiftTable*) &g_ufShiftTable,
(uMappingTable*) &g_ufMappingTable)
{
}
nsresult nsUnicodeToMathematica1::CreateInstance(nsISupports ** aResult)
{
*aResult = (nsIUnicodeEncoder*) new nsUnicodeToMathematica1();
return (*aResult == NULL)? NS_ERROR_OUT_OF_MEMORY : NS_OK;
}
//----------------------------------------------------------------------
// Subclassing of nsTableEncoderSupport class [implementation]
NS_IMETHODIMP nsUnicodeToMathematica1::GetMaxLength(const PRUnichar * aSrc,
PRInt32 aSrcLength,
PRInt32 * aDestLength)
{
*aDestLength = aSrcLength;
return NS_OK_UENC_EXACTLENGTH;
}

View File

@ -0,0 +1,69 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Roger B. Sidje <rbs@maths.uq.edu.au>
*
* This Original Code has been modified by Roger B. Sidje.
* Modifications made by Roger B. Sidje described herein are
* Copyright (C) 2000 The University Of Queensland.
*
* Modifications to Mozilla code or documentation
* identified per MPL Section 3.3
*
* Date Modified by Description of modification
* 08/March/2000 RBS. Support for Mathematical fonts.
*/
#ifndef nsUnicodeToMathematica1_h___
#define nsUnicodeToMathematica1_h___
#include "nsUCvMathSupport.h"
//----------------------------------------------------------------------
// Class nsUnicodeToMathematica1 [declaration]
/**
* A character set converter from Unicode to Math1.
*
*/
class nsUnicodeToMathematica1 : public nsTableEncoderSupport
{
public:
/**
* Class constructor.
*/
nsUnicodeToMathematica1();
/**
* Static class constructor.
*/
static nsresult CreateInstance(nsISupports **aResult);
protected:
//--------------------------------------------------------------------
// Subclassing of nsEncoderSupport class [declaration]
NS_IMETHOD GetMaxLength(const PRUnichar * aSrc, PRInt32 aSrcLength,
PRInt32 * aDestLength);
};
#endif /* nsUnicodeToMathematica1_h___ */

View File

@ -0,0 +1,72 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Roger B. Sidje <rbs@maths.uq.edu.au>
*
* This Original Code has been modified by Roger B. Sidje.
* Modifications made by Roger B. Sidje described herein are
* Copyright (C) 2000 The University Of Queensland.
*
* Modifications to Mozilla code or documentation
* identified per MPL Section 3.3
*
* Date Modified by Description of modification
* 08/March/2000 RBS. Support for Mathematical fonts.
*/
#include "nsUnicodeToMathematica2.h"
//----------------------------------------------------------------------
// Global functions and data [declaration]
static PRUint16 g_ufMappingTable[] = {
#include "mathematica2.uf"
};
static PRInt16 g_ufShiftTable[] = {
0, u1ByteCharset ,
ShiftCell(0,0,0,0,0,0,0,0)
};
//----------------------------------------------------------------------
// Class nsUnicodeToMathematica2 [implementation]
nsUnicodeToMathematica2::nsUnicodeToMathematica2()
: nsTableEncoderSupport((uShiftTable*) &g_ufShiftTable,
(uMappingTable*) &g_ufMappingTable)
{
}
nsresult nsUnicodeToMathematica2::CreateInstance(nsISupports ** aResult)
{
*aResult = (nsIUnicodeEncoder*) new nsUnicodeToMathematica2();
return (*aResult == NULL)? NS_ERROR_OUT_OF_MEMORY : NS_OK;
}
//----------------------------------------------------------------------
// Subclassing of nsTableEncoderSupport class [implementation]
NS_IMETHODIMP nsUnicodeToMathematica2::GetMaxLength(const PRUnichar * aSrc,
PRInt32 aSrcLength,
PRInt32 * aDestLength)
{
*aDestLength = aSrcLength;
return NS_OK_UENC_EXACTLENGTH;
}

View File

@ -0,0 +1,69 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Roger B. Sidje <rbs@maths.uq.edu.au>
*
* This Original Code has been modified by Roger B. Sidje.
* Modifications made by Roger B. Sidje described herein are
* Copyright (C) 2000 The University Of Queensland.
*
* Modifications to Mozilla code or documentation
* identified per MPL Section 3.3
*
* Date Modified by Description of modification
* 08/March/2000 RBS. Support for Mathematical fonts.
*/
#ifndef nsUnicodeToMathematica2_h___
#define nsUnicodeToMathematica2_h___
#include "nsUCvMathSupport.h"
//----------------------------------------------------------------------
// Class nsUnicodeToMathematica2 [declaration]
/**
* A character set converter from Unicode to Math1.
*
*/
class nsUnicodeToMathematica2 : public nsTableEncoderSupport
{
public:
/**
* Class constructor.
*/
nsUnicodeToMathematica2();
/**
* Static class constructor.
*/
static nsresult CreateInstance(nsISupports **aResult);
protected:
//--------------------------------------------------------------------
// Subclassing of nsEncoderSupport class [declaration]
NS_IMETHOD GetMaxLength(const PRUnichar * aSrc, PRInt32 aSrcLength,
PRInt32 * aDestLength);
};
#endif /* nsUnicodeToMathematica2_h___ */

View File

@ -0,0 +1,72 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Roger B. Sidje <rbs@maths.uq.edu.au>
*
* This Original Code has been modified by Roger B. Sidje.
* Modifications made by Roger B. Sidje described herein are
* Copyright (C) 2000 The University Of Queensland.
*
* Modifications to Mozilla code or documentation
* identified per MPL Section 3.3
*
* Date Modified by Description of modification
* 08/March/2000 RBS. Support for Mathematical fonts.
*/
#include "nsUnicodeToMathematica3.h"
//----------------------------------------------------------------------
// Global functions and data [declaration]
static PRUint16 g_ufMappingTable[] = {
#include "mathematica3.uf"
};
static PRInt16 g_ufShiftTable[] = {
0, u1ByteCharset ,
ShiftCell(0,0,0,0,0,0,0,0)
};
//----------------------------------------------------------------------
// Class nsUnicodeToMathematica3 [implementation]
nsUnicodeToMathematica3::nsUnicodeToMathematica3()
: nsTableEncoderSupport((uShiftTable*) &g_ufShiftTable,
(uMappingTable*) &g_ufMappingTable)
{
}
nsresult nsUnicodeToMathematica3::CreateInstance(nsISupports ** aResult)
{
*aResult = (nsIUnicodeEncoder*) new nsUnicodeToMathematica3();
return (*aResult == NULL)? NS_ERROR_OUT_OF_MEMORY : NS_OK;
}
//----------------------------------------------------------------------
// Subclassing of nsTableEncoderSupport class [implementation]
NS_IMETHODIMP nsUnicodeToMathematica3::GetMaxLength(const PRUnichar * aSrc,
PRInt32 aSrcLength,
PRInt32 * aDestLength)
{
*aDestLength = aSrcLength;
return NS_OK_UENC_EXACTLENGTH;
}

View File

@ -0,0 +1,69 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Roger B. Sidje <rbs@maths.uq.edu.au>
*
* This Original Code has been modified by Roger B. Sidje.
* Modifications made by Roger B. Sidje described herein are
* Copyright (C) 2000 The University Of Queensland.
*
* Modifications to Mozilla code or documentation
* identified per MPL Section 3.3
*
* Date Modified by Description of modification
* 08/March/2000 RBS. Support for Mathematical fonts.
*/
#ifndef nsUnicodeToMathematica3_h___
#define nsUnicodeToMathematica3_h___
#include "nsUCvMathSupport.h"
//----------------------------------------------------------------------
// Class nsUnicodeToMathematica3 [declaration]
/**
* A character set converter from Unicode to Math1.
*
*/
class nsUnicodeToMathematica3 : public nsTableEncoderSupport
{
public:
/**
* Class constructor.
*/
nsUnicodeToMathematica3();
/**
* Static class constructor.
*/
static nsresult CreateInstance(nsISupports **aResult);
protected:
//--------------------------------------------------------------------
// Subclassing of nsEncoderSupport class [declaration]
NS_IMETHOD GetMaxLength(const PRUnichar * aSrc, PRInt32 aSrcLength,
PRInt32 * aDestLength);
};
#endif /* nsUnicodeToMathematica3_h___ */

View File

@ -0,0 +1,72 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Roger B. Sidje <rbs@maths.uq.edu.au>
*
* This Original Code has been modified by Roger B. Sidje.
* Modifications made by Roger B. Sidje described herein are
* Copyright (C) 2000 The University Of Queensland.
*
* Modifications to Mozilla code or documentation
* identified per MPL Section 3.3
*
* Date Modified by Description of modification
* 08/March/2000 RBS. Support for Mathematical fonts.
*/
#include "nsUnicodeToMathematica4.h"
//----------------------------------------------------------------------
// Global functions and data [declaration]
static PRUint16 g_ufMappingTable[] = {
#include "mathematica4.uf"
};
static PRInt16 g_ufShiftTable[] = {
0, u1ByteCharset ,
ShiftCell(0,0,0,0,0,0,0,0)
};
//----------------------------------------------------------------------
// Class nsUnicodeToMathematica4 [implementation]
nsUnicodeToMathematica4::nsUnicodeToMathematica4()
: nsTableEncoderSupport((uShiftTable*) &g_ufShiftTable,
(uMappingTable*) &g_ufMappingTable)
{
}
nsresult nsUnicodeToMathematica4::CreateInstance(nsISupports ** aResult)
{
*aResult = (nsIUnicodeEncoder*) new nsUnicodeToMathematica4();
return (*aResult == NULL)? NS_ERROR_OUT_OF_MEMORY : NS_OK;
}
//----------------------------------------------------------------------
// Subclassing of nsTableEncoderSupport class [implementation]
NS_IMETHODIMP nsUnicodeToMathematica4::GetMaxLength(const PRUnichar * aSrc,
PRInt32 aSrcLength,
PRInt32 * aDestLength)
{
*aDestLength = aSrcLength;
return NS_OK_UENC_EXACTLENGTH;
}

View File

@ -0,0 +1,69 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Roger B. Sidje <rbs@maths.uq.edu.au>
*
* This Original Code has been modified by Roger B. Sidje.
* Modifications made by Roger B. Sidje described herein are
* Copyright (C) 2000 The University Of Queensland.
*
* Modifications to Mozilla code or documentation
* identified per MPL Section 3.3
*
* Date Modified by Description of modification
* 08/March/2000 RBS. Support for Mathematical fonts.
*/
#ifndef nsUnicodeToMathematica4_h___
#define nsUnicodeToMathematica4_h___
#include "nsUCvMathSupport.h"
//----------------------------------------------------------------------
// Class nsUnicodeToMathematica4 [declaration]
/**
* A character set converter from Unicode to Math1.
*
*/
class nsUnicodeToMathematica4 : public nsTableEncoderSupport
{
public:
/**
* Class constructor.
*/
nsUnicodeToMathematica4();
/**
* Static class constructor.
*/
static nsresult CreateInstance(nsISupports **aResult);
protected:
//--------------------------------------------------------------------
// Subclassing of nsEncoderSupport class [declaration]
NS_IMETHOD GetMaxLength(const PRUnichar * aSrc, PRInt32 aSrcLength,
PRInt32 * aDestLength);
};
#endif /* nsUnicodeToMathematica4_h___ */

View File

@ -0,0 +1,72 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Roger B. Sidje <rbs@maths.uq.edu.au>
*
* This Original Code has been modified by Roger B. Sidje.
* Modifications made by Roger B. Sidje described herein are
* Copyright (C) 2000 The University Of Queensland.
*
* Modifications to Mozilla code or documentation
* identified per MPL Section 3.3
*
* Date Modified by Description of modification
* 08/March/2000 RBS. Support for Mathematical fonts.
*/
#include "nsUnicodeToMathematica5.h"
//----------------------------------------------------------------------
// Global functions and data [declaration]
static PRUint16 g_ufMappingTable[] = {
#include "mathematica5.uf"
};
static PRInt16 g_ufShiftTable[] = {
0, u1ByteCharset ,
ShiftCell(0,0,0,0,0,0,0,0)
};
//----------------------------------------------------------------------
// Class nsUnicodeToMathematica5 [implementation]
nsUnicodeToMathematica5::nsUnicodeToMathematica5()
: nsTableEncoderSupport((uShiftTable*) &g_ufShiftTable,
(uMappingTable*) &g_ufMappingTable)
{
}
nsresult nsUnicodeToMathematica5::CreateInstance(nsISupports ** aResult)
{
*aResult = (nsIUnicodeEncoder*) new nsUnicodeToMathematica5();
return (*aResult == NULL)? NS_ERROR_OUT_OF_MEMORY : NS_OK;
}
//----------------------------------------------------------------------
// Subclassing of nsTableEncoderSupport class [implementation]
NS_IMETHODIMP nsUnicodeToMathematica5::GetMaxLength(const PRUnichar * aSrc,
PRInt32 aSrcLength,
PRInt32 * aDestLength)
{
*aDestLength = aSrcLength;
return NS_OK_UENC_EXACTLENGTH;
}

View File

@ -0,0 +1,69 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Roger B. Sidje <rbs@maths.uq.edu.au>
*
* This Original Code has been modified by Roger B. Sidje.
* Modifications made by Roger B. Sidje described herein are
* Copyright (C) 2000 The University Of Queensland.
*
* Modifications to Mozilla code or documentation
* identified per MPL Section 3.3
*
* Date Modified by Description of modification
* 08/March/2000 RBS. Support for Mathematical fonts.
*/
#ifndef nsUnicodeToMathematica5_h___
#define nsUnicodeToMathematica5_h___
#include "nsUCvMathSupport.h"
//----------------------------------------------------------------------
// Class nsUnicodeToMathematica5 [declaration]
/**
* A character set converter from Unicode to Math1.
*
*/
class nsUnicodeToMathematica5 : public nsTableEncoderSupport
{
public:
/**
* Class constructor.
*/
nsUnicodeToMathematica5();
/**
* Static class constructor.
*/
static nsresult CreateInstance(nsISupports **aResult);
protected:
//--------------------------------------------------------------------
// Subclassing of nsEncoderSupport class [declaration]
NS_IMETHOD GetMaxLength(const PRUnichar * aSrc, PRInt32 aSrcLength,
PRInt32 * aDestLength);
};
#endif /* nsUnicodeToMathematica5_h___ */

View File

@ -0,0 +1,72 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Roger B. Sidje <rbs@maths.uq.edu.au>
*
* This Original Code has been modified by Roger B. Sidje.
* Modifications made by Roger B. Sidje described herein are
* Copyright (C) 2000 The University Of Queensland.
*
* Modifications to Mozilla code or documentation
* identified per MPL Section 3.3
*
* Date Modified by Description of modification
* 08/March/2000 RBS. Support for Mathematical fonts.
*/
#include "nsUnicodeToTeXCMEXt1.h"
//----------------------------------------------------------------------
// Global functions and data [declaration]
static PRUint16 g_ufMappingTable[] = {
#include "texcmex-t1.uf"
};
static PRInt16 g_ufShiftTable[] = {
0, u1ByteCharset ,
ShiftCell(0,0,0,0,0,0,0,0)
};
//----------------------------------------------------------------------
// Class nsUnicodeToTeXCMEXt1 [implementation]
nsUnicodeToTeXCMEXt1::nsUnicodeToTeXCMEXt1()
: nsTableEncoderSupport((uShiftTable*) &g_ufShiftTable,
(uMappingTable*) &g_ufMappingTable)
{
}
nsresult nsUnicodeToTeXCMEXt1::CreateInstance(nsISupports ** aResult)
{
*aResult = (nsIUnicodeEncoder*) new nsUnicodeToTeXCMEXt1();
return (*aResult == NULL)? NS_ERROR_OUT_OF_MEMORY : NS_OK;
}
//----------------------------------------------------------------------
// Subclassing of nsTableEncoderSupport class [implementation]
NS_IMETHODIMP nsUnicodeToTeXCMEXt1::GetMaxLength(const PRUnichar * aSrc,
PRInt32 aSrcLength,
PRInt32 * aDestLength)
{
*aDestLength = aSrcLength;
return NS_OK_UENC_EXACTLENGTH;
}

View File

@ -0,0 +1,69 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Roger B. Sidje <rbs@maths.uq.edu.au>
*
* This Original Code has been modified by Roger B. Sidje.
* Modifications made by Roger B. Sidje described herein are
* Copyright (C) 2000 The University Of Queensland.
*
* Modifications to Mozilla code or documentation
* identified per MPL Section 3.3
*
* Date Modified by Description of modification
* 08/March/2000 RBS. Support for Mathematical fonts.
*/
#ifndef nsUnicodeToTeXCMEXt1_h___
#define nsUnicodeToTeXCMEXt1_h___
#include "nsUCvMathSupport.h"
//----------------------------------------------------------------------
// Class nsUnicodeToTeXCMEXt1 [declaration]
/**
* A character set converter from Unicode to TeXCMEXt1 (TeX's Computer Modern Extension).
*
*/
class nsUnicodeToTeXCMEXt1 : public nsTableEncoderSupport
{
public:
/**
* Class constructor.
*/
nsUnicodeToTeXCMEXt1();
/**
* Static class constructor.
*/
static nsresult CreateInstance(nsISupports **aResult);
protected:
//--------------------------------------------------------------------
// Subclassing of nsEncoderSupport class [declaration]
NS_IMETHOD GetMaxLength(const PRUnichar * aSrc, PRInt32 aSrcLength,
PRInt32 * aDestLength);
};
#endif /* nsUnicodeToTeXCMEXt1_h___ */

View File

@ -0,0 +1,72 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Roger B. Sidje <rbs@maths.uq.edu.au>
*
* This Original Code has been modified by Roger B. Sidje.
* Modifications made by Roger B. Sidje described herein are
* Copyright (C) 2000 The University Of Queensland.
*
* Modifications to Mozilla code or documentation
* identified per MPL Section 3.3
*
* Date Modified by Description of modification
* 08/March/2000 RBS. Support for Mathematical fonts.
*/
#include "nsUnicodeToTeXCMEXttf.h"
//----------------------------------------------------------------------
// Global functions and data [declaration]
static PRUint16 g_ufMappingTable[] = {
#include "texcmex-ttf.uf"
};
static PRInt16 g_ufShiftTable[] = {
0, u1ByteCharset ,
ShiftCell(0,0,0,0,0,0,0,0)
};
//----------------------------------------------------------------------
// Class nsUnicodeToTeXCMEXttf [implementation]
nsUnicodeToTeXCMEXttf::nsUnicodeToTeXCMEXttf()
: nsTableEncoderSupport((uShiftTable*) &g_ufShiftTable,
(uMappingTable*) &g_ufMappingTable)
{
}
nsresult nsUnicodeToTeXCMEXttf::CreateInstance(nsISupports ** aResult)
{
*aResult = (nsIUnicodeEncoder*) new nsUnicodeToTeXCMEXttf();
return (*aResult == NULL)? NS_ERROR_OUT_OF_MEMORY : NS_OK;
}
//----------------------------------------------------------------------
// Subclassing of nsTableEncoderSupport class [implementation]
NS_IMETHODIMP nsUnicodeToTeXCMEXttf::GetMaxLength(const PRUnichar * aSrc,
PRInt32 aSrcLength,
PRInt32 * aDestLength)
{
*aDestLength = aSrcLength;
return NS_OK_UENC_EXACTLENGTH;
}

View File

@ -0,0 +1,69 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Roger B. Sidje <rbs@maths.uq.edu.au>
*
* This Original Code has been modified by Roger B. Sidje.
* Modifications made by Roger B. Sidje described herein are
* Copyright (C) 2000 The University Of Queensland.
*
* Modifications to Mozilla code or documentation
* identified per MPL Section 3.3
*
* Date Modified by Description of modification
* 08/March/2000 RBS. Support for Mathematical fonts.
*/
#ifndef nsUnicodeToTeXCMEXttf_h___
#define nsUnicodeToTeXCMEXttf_h___
#include "nsUCvMathSupport.h"
//----------------------------------------------------------------------
// Class nsUnicodeToTeXCMEXttf [declaration]
/**
* A character set converter from Unicode to TeXCMEXttf (TeX's Computer Modern Extension).
*
*/
class nsUnicodeToTeXCMEXttf : public nsTableEncoderSupport
{
public:
/**
* Class constructor.
*/
nsUnicodeToTeXCMEXttf();
/**
* Static class constructor.
*/
static nsresult CreateInstance(nsISupports **aResult);
protected:
//--------------------------------------------------------------------
// Subclassing of nsEncoderSupport class [declaration]
NS_IMETHOD GetMaxLength(const PRUnichar * aSrc, PRInt32 aSrcLength,
PRInt32 * aDestLength);
};
#endif /* nsUnicodeToTeXCMEXttf_h___ */

View File

@ -0,0 +1,72 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Roger B. Sidje <rbs@maths.uq.edu.au>
*
* This Original Code has been modified by Roger B. Sidje.
* Modifications made by Roger B. Sidje described herein are
* Copyright (C) 2000 The University Of Queensland.
*
* Modifications to Mozilla code or documentation
* identified per MPL Section 3.3
*
* Date Modified by Description of modification
* 08/March/2000 RBS. Support for Mathematical fonts.
*/
#include "nsUnicodeToTeXCMSYt1.h"
//----------------------------------------------------------------------
// Global functions and data [declaration]
static PRUint16 g_ufMappingTable[] = {
#include "texcmsy-t1.uf"
};
static PRInt16 g_ufShiftTable[] = {
0, u1ByteCharset ,
ShiftCell(0,0,0,0,0,0,0,0)
};
//----------------------------------------------------------------------
// Class nsUnicodeToTeXCMSYt1 [implementation]
nsUnicodeToTeXCMSYt1::nsUnicodeToTeXCMSYt1()
: nsTableEncoderSupport((uShiftTable*) &g_ufShiftTable,
(uMappingTable*) &g_ufMappingTable)
{
}
nsresult nsUnicodeToTeXCMSYt1::CreateInstance(nsISupports ** aResult)
{
*aResult = (nsIUnicodeEncoder*) new nsUnicodeToTeXCMSYt1();
return (*aResult == NULL)? NS_ERROR_OUT_OF_MEMORY : NS_OK;
}
//----------------------------------------------------------------------
// Subclassing of nsTableEncoderSupport class [implementation]
NS_IMETHODIMP nsUnicodeToTeXCMSYt1::GetMaxLength(const PRUnichar * aSrc,
PRInt32 aSrcLength,
PRInt32 * aDestLength)
{
*aDestLength = aSrcLength;
return NS_OK_UENC_EXACTLENGTH;
}

View File

@ -0,0 +1,69 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Roger B. Sidje <rbs@maths.uq.edu.au>
*
* This Original Code has been modified by Roger B. Sidje.
* Modifications made by Roger B. Sidje described herein are
* Copyright (C) 2000 The University Of Queensland.
*
* Modifications to Mozilla code or documentation
* identified per MPL Section 3.3
*
* Date Modified by Description of modification
* 08/March/2000 RBS. Support for Mathematical fonts.
*/
#ifndef nsUnicodeToTeXCMSYt1_h___
#define nsUnicodeToTeXCMSYt1_h___
#include "nsUCvMathSupport.h"
//----------------------------------------------------------------------
// Class nsUnicodeToTeXCMSYt1 [declaration]
/**
* A character set converter from Unicode to TeXCMSYt1 (TeX's Computer Modern Symbol).
*
*/
class nsUnicodeToTeXCMSYt1 : public nsTableEncoderSupport
{
public:
/**
* Class constructor.
*/
nsUnicodeToTeXCMSYt1();
/**
* Static class constructor.
*/
static nsresult CreateInstance(nsISupports **aResult);
protected:
//--------------------------------------------------------------------
// Subclassing of nsEncoderSupport class [declaration]
NS_IMETHOD GetMaxLength(const PRUnichar * aSrc, PRInt32 aSrcLength,
PRInt32 * aDestLength);
};
#endif /* nsUnicodeToTeXCMSYt1_h___ */

View File

@ -0,0 +1,72 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Roger B. Sidje <rbs@maths.uq.edu.au>
*
* This Original Code has been modified by Roger B. Sidje.
* Modifications made by Roger B. Sidje described herein are
* Copyright (C) 2000 The University Of Queensland.
*
* Modifications to Mozilla code or documentation
* identified per MPL Section 3.3
*
* Date Modified by Description of modification
* 08/March/2000 RBS. Support for Mathematical fonts.
*/
#include "nsUnicodeToTeXCMSYttf.h"
//----------------------------------------------------------------------
// Global functions and data [declaration]
static PRUint16 g_ufMappingTable[] = {
#include "texcmsy-ttf.uf"
};
static PRInt16 g_ufShiftTable[] = {
0, u1ByteCharset ,
ShiftCell(0,0,0,0,0,0,0,0)
};
//----------------------------------------------------------------------
// Class nsUnicodeToTeXCMSYttf [implementation]
nsUnicodeToTeXCMSYttf::nsUnicodeToTeXCMSYttf()
: nsTableEncoderSupport((uShiftTable*) &g_ufShiftTable,
(uMappingTable*) &g_ufMappingTable)
{
}
nsresult nsUnicodeToTeXCMSYttf::CreateInstance(nsISupports ** aResult)
{
*aResult = (nsIUnicodeEncoder*) new nsUnicodeToTeXCMSYttf();
return (*aResult == NULL)? NS_ERROR_OUT_OF_MEMORY : NS_OK;
}
//----------------------------------------------------------------------
// Subclassing of nsTableEncoderSupport class [implementation]
NS_IMETHODIMP nsUnicodeToTeXCMSYttf::GetMaxLength(const PRUnichar * aSrc,
PRInt32 aSrcLength,
PRInt32 * aDestLength)
{
*aDestLength = aSrcLength;
return NS_OK_UENC_EXACTLENGTH;
}

View File

@ -0,0 +1,69 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Roger B. Sidje <rbs@maths.uq.edu.au>
*
* This Original Code has been modified by Roger B. Sidje.
* Modifications made by Roger B. Sidje described herein are
* Copyright (C) 2000 The University Of Queensland.
*
* Modifications to Mozilla code or documentation
* identified per MPL Section 3.3
*
* Date Modified by Description of modification
* 08/March/2000 RBS. Support for Mathematical fonts.
*/
#ifndef nsUnicodeToTeXCMSYttf_h___
#define nsUnicodeToTeXCMSYttf_h___
#include "nsUCvMathSupport.h"
//----------------------------------------------------------------------
// Class nsUnicodeToTeXCMSYttf [declaration]
/**
* A character set converter from Unicode to TeXCMSYttf (TeX's Computer Modern Symbol).
*
*/
class nsUnicodeToTeXCMSYttf : public nsTableEncoderSupport
{
public:
/**
* Class constructor.
*/
nsUnicodeToTeXCMSYttf();
/**
* Static class constructor.
*/
static nsresult CreateInstance(nsISupports **aResult);
protected:
//--------------------------------------------------------------------
// Subclassing of nsEncoderSupport class [declaration]
NS_IMETHOD GetMaxLength(const PRUnichar * aSrc, PRInt32 aSrcLength,
PRInt32 * aDestLength);
};
#endif /* nsUnicodeToTeXCMSYttf_h___ */

View File

@ -0,0 +1,173 @@
/*========================================================
This is a Generated file. Please don't edit it.
The tool which used to generate this file is called fromu.
If you have any problem of this file. Please contact
Netscape Client International Team or
ftang@netscape <Frank Tang>
Table in Debug form
Begin of Item 0000
Format 0
srcBegin = E021
srcEnd = E02B
destBegin = 0021
End of Item 0000
Begin of Item 0001
Format 0
srcBegin = E030
srcEnd = E045
destBegin = 0030
End of Item 0001
Begin of Item 0002
Format 0
srcBegin = E04C
srcEnd = E053
destBegin = 0058
End of Item 0002
Begin of Item 0003
Format 0
srcBegin = E054
srcEnd = E071
destBegin = 0061
End of Item 0003
Begin of Item 0004
Format 0
srcBegin = E072
srcEnd = E07F
destBegin = 0000
End of Item 0004
Begin of Item 0005
Format 0
srcBegin = E089
srcEnd = E099
destBegin = 0010
End of Item 0005
Begin of Item 0006
Format 1
srcBegin = 220F
srcEnd = 2211
mappingOffset = 0000
Mapping =
0051 0060 0050
End of Item 0006
Begin of Item 0007
Format 1
srcBegin = 2227
srcEnd = 222E
mappingOffset = 0003
Mapping =
0056 0057 FFFD FFFD 0052 FFFD FFFD 0048
End of Item 0007
Begin of Item 0008
Format 2
srcBegin = 2249
destBegin = 004C
End of Item 0008
Begin of Item 0009
Format 1
srcBegin = 228E
srcEnd = 2299
mappingOffset = 000B
Mapping =
0055 FFFD FFFD FFFD FFFD FFFD 0046 FFFD
FFFD 004E FFFD 004A
End of Item 0009
Begin of Item 000A
Format 1
srcBegin = 22C2
srcEnd = 22C3
mappingOffset = 0017
Mapping =
0054 0053
End of Item 000A
Begin of Item 000B
Format 1
srcBegin = E02C
srcEnd = E02F
mappingOffset = 0019
Mapping =
002E 002F 000E 000F
End of Item 000B
Begin of Item 000C
Format 1
srcBegin = E046
srcEnd = E04B
mappingOffset = 001D
Mapping =
0047 0049 004B FFFD 004D 004F
End of Item 000C
Begin of Item 000D
Format 1
srcBegin = E080
srcEnd = E081
mappingOffset = 0023
Mapping =
002C 002D
End of Item 000D
Begin of Item 000E
Format 2
srcBegin = E09A
destBegin = 007F
End of Item 000E
========================================================*/
/* Offset=0x0000 ItemOfList */
0x000F,
/*-------------------------------------------------------*/
/* Offset=0x0001 offsetToFormatArray */
0x0004,
/*-------------------------------------------------------*/
/* Offset=0x0002 offsetToMapCellArray */
0x0008,
/*-------------------------------------------------------*/
/* Offset=0x0003 offsetToMappingTable */
0x0035,
/*-------------------------------------------------------*/
/* Offset=0x0004 Start of Format Array */
/* Total of Format 0 : 0x0006 */
/* Total of Format 1 : 0x0007 */
/* Total of Format 2 : 0x0002 */
/* Total of Format 3 : 0x0000 */
0x0000, 0x1100, 0x1112, 0x0211,
/*-------------------------------------------------------*/
/* Offset=0x0008 Start of MapCell Array */
/* 0000 */ 0xE021, 0xE02B, 0x0021,
/* 0001 */ 0xE030, 0xE045, 0x0030,
/* 0002 */ 0xE04C, 0xE053, 0x0058,
/* 0003 */ 0xE054, 0xE071, 0x0061,
/* 0004 */ 0xE072, 0xE07F, 0x0000,
/* 0005 */ 0xE089, 0xE099, 0x0010,
/* 0006 */ 0x220F, 0x2211, 0x0000,
/* 0007 */ 0x2227, 0x222E, 0x0003,
/* 0008 */ 0x2249, 0x0000, 0x004C,
/* 0009 */ 0x228E, 0x2299, 0x000B,
/* 000A */ 0x22C2, 0x22C3, 0x0017,
/* 000B */ 0xE02C, 0xE02F, 0x0019,
/* 000C */ 0xE046, 0xE04B, 0x001D,
/* 000D */ 0xE080, 0xE081, 0x0023,
/* 000E */ 0xE09A, 0x0000, 0x007F,
/*-------------------------------------------------------*/
/* Offset=0x0035 Start of MappingTable */
/* 0000 */ 0x0051, 0x0060, 0x0050, 0x0056, 0x0057, 0xFFFD, 0xFFFD, 0x0052,
/* 0008 */ 0xFFFD, 0xFFFD, 0x0048, 0x0055, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0010 */ 0xFFFD, 0x0046, 0xFFFD, 0xFFFD, 0x004E, 0xFFFD, 0x004A, 0x0054,
/* 0018 */ 0x0053, 0x002E, 0x002F, 0x000E, 0x000F, 0x0047, 0x0049, 0x004B,
/* 0020 */ 0xFFFD, 0x004D, 0x004F, 0x002C, 0x002D,
/* End of table Total Length = 0x005A * 2 */

View File

@ -0,0 +1,184 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
* Roger B. Sidje <rbs@maths.uq.edu.au>
*
* This Original Code has been modified by Roger B. Sidje.
* Modifications made by Roger B. Sidje described herein are
* Copyright (C) 2000 The University Of Queensland.
*
* Modifications to Mozilla code or documentation
* identified per MPL Section 3.3
*
* Date Modified by Description of modification
* 08/March/2000 RBS. Support for Mathematical fonts.
*/
/*========================================================
This is a Generated file. Please don't edit it.
The tool which used to generate this file is called fromu.
If you have any problem of this file. Please contact
Netscape Client International Team or
ftang@netscape <Frank Tang>
Table in Debug form
Begin of Item 0000
Format 0
srcBegin = E021
srcEnd = E045
destBegin = 0021
End of Item 0000
Begin of Item 0001
Format 0
srcBegin = E04C
srcEnd = E053
destBegin = 0058
End of Item 0001
Begin of Item 0002
Format 0
srcBegin = E054
srcEnd = E071
destBegin = 0061
End of Item 0002
Begin of Item 0003
Format 0
srcBegin = E072
srcEnd = E07B
destBegin = 00A1
End of Item 0003
Begin of Item 0004
Format 0
srcBegin = E07C
srcEnd = E081
destBegin = 00AD
End of Item 0004
Begin of Item 0005
Format 0
srcBegin = E089
srcEnd = E09A
destBegin = 00B3
End of Item 0005
Begin of Item 0006
Format 2
srcBegin = 0020
destBegin = 0020
End of Item 0006
Begin of Item 0007
Format 1
srcBegin = 220F
srcEnd = 2211
mappingOffset = 0000
Mapping =
0051 0060 0050
End of Item 0007
Begin of Item 0008
Format 1
srcBegin = 2227
srcEnd = 222E
mappingOffset = 0003
Mapping =
0056 0057 FFFD FFFD 0052 FFFD FFFD 0048
End of Item 0008
Begin of Item 0009
Format 2
srcBegin = 2249
destBegin = 004C
End of Item 0009
Begin of Item 000A
Format 1
srcBegin = 228E
srcEnd = 2299
mappingOffset = 000B
Mapping =
0055 FFFD FFFD FFFD FFFD FFFD 0046 FFFD
FFFD 004E FFFD 004A
End of Item 000A
Begin of Item 000B
Format 1
srcBegin = 22C2
srcEnd = 22C3
mappingOffset = 0017
Mapping =
0054 0053
End of Item 000B
Begin of Item 000C
Format 1
srcBegin = E046
srcEnd = E04B
mappingOffset = 0019
Mapping =
0047 0049 004B FFFD 004D 004F
End of Item 000C
========================================================*/
/* Offset=0x0000 ItemOfList */
0x000D,
/*-------------------------------------------------------*/
/* Offset=0x0001 offsetToFormatArray */
0x0004,
/*-------------------------------------------------------*/
/* Offset=0x0002 offsetToMapCellArray */
0x0008,
/*-------------------------------------------------------*/
/* Offset=0x0003 offsetToMappingTable */
0x002F,
/*-------------------------------------------------------*/
/* Offset=0x0004 Start of Format Array */
/* Total of Format 0 : 0x0006 */
/* Total of Format 1 : 0x0005 */
/* Total of Format 2 : 0x0002 */
/* Total of Format 3 : 0x0000 */
0x0000, 0x1200, 0x1121, 0x0001,
/*-------------------------------------------------------*/
/* Offset=0x0008 Start of MapCell Array */
/* 0000 */ 0xE021, 0xE045, 0x0021,
/* 0001 */ 0xE04C, 0xE053, 0x0058,
/* 0002 */ 0xE054, 0xE071, 0x0061,
/* 0003 */ 0xE072, 0xE07B, 0x00A1,
/* 0004 */ 0xE07C, 0xE081, 0x00AD,
/* 0005 */ 0xE089, 0xE09A, 0x00B3,
/* 0006 */ 0x0020, 0x0000, 0x0020,
/* 0007 */ 0x220F, 0x2211, 0x0000,
/* 0008 */ 0x2227, 0x222E, 0x0003,
/* 0009 */ 0x2249, 0x0000, 0x004C,
/* 000A */ 0x228E, 0x2299, 0x000B,
/* 000B */ 0x22C2, 0x22C3, 0x0017,
/* 000C */ 0xE046, 0xE04B, 0x0019,
/*-------------------------------------------------------*/
/* Offset=0x002F Start of MappingTable */
/* 0000 */ 0x0051, 0x0060, 0x0050, 0x0056, 0x0057, 0xFFFD, 0xFFFD, 0x0052,
/* 0008 */ 0xFFFD, 0xFFFD, 0x0048, 0x0055, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0010 */ 0xFFFD, 0x0046, 0xFFFD, 0xFFFD, 0x004E, 0xFFFD, 0x004A, 0x0054,
/* 0018 */ 0x0053, 0x0047, 0x0049, 0x004B, 0xFFFD, 0x004D, 0x004F,
/* End of table Total Length = 0x004E * 2 */

View File

@ -0,0 +1,305 @@
/*========================================================
This is a Generated file. Please don't edit it.
The tool which used to generate this file is called fromu.
If you have any problem of this file. Please contact
Netscape Client International Team or
ftang@netscape <Frank Tang>
Table in Debug form
Begin of Item 0000
Format 0
srcBegin = F112
srcEnd = F119
destBegin = 0053
End of Item 0000
Begin of Item 0001
Format 2
srcBegin = 005C
destBegin = 006E
End of Item 0001
Begin of Item 0002
Format 1
srcBegin = 007B
srcEnd = 007D
mappingOffset = 0000
Mapping =
0066 FFFD 0067
End of Item 0002
Begin of Item 0003
Format 1
srcBegin = 00A7
srcEnd = 00B6
mappingOffset = 0003
Mapping =
0078 FFFD FFFD FFFD FFFD 003A FFFD FFFD
FFFD FFFD 0006 FFFD FFFD FFFD FFFD 007B
End of Item 0003
Begin of Item 0004
Format 2
srcBegin = 00D7
destBegin = 0002
End of Item 0004
Begin of Item 0005
Format 2
srcBegin = 00F7
destBegin = 0004
End of Item 0005
Begin of Item 0006
Format 2
srcBegin = 0338
destBegin = 0036
End of Item 0006
Begin of Item 0007
Format 1
srcBegin = 2020
srcEnd = 2021
mappingOffset = 0013
Mapping =
0079 007A
End of Item 0007
Begin of Item 0008
Format 2
srcBegin = 2032
destBegin = 0030
End of Item 0008
Begin of Item 0009
Format 1
srcBegin = 210B
srcEnd = 211C
mappingOffset = 0015
Mapping =
0048 FFFD FFFD FFFD FFFD 0049 003D 004C
FFFD FFFD FFFD FFFD FFFD 0050 FFFD FFFD
0052 003C
End of Item 0009
Begin of Item 000A
Format 1
srcBegin = 212C
srcEnd = 2135
mappingOffset = 0027
Mapping =
0042 FFFD FFFD FFFD 0045 0046 FFFD 004D
FFFD 0040
End of Item 000A
Begin of Item 000B
Format 1
srcBegin = 2190
srcEnd = 2199
mappingOffset = 0031
Mapping =
0020 0022 0021 0023 0024 006C 002D 0025
0026 002E
End of Item 000B
Begin of Item 000C
Format 1
srcBegin = 21D0
srcEnd = 21D5
mappingOffset = 003B
Mapping =
0028 002A 0029 002B 002C 006D
End of Item 000C
Begin of Item 000D
Format 1
srcBegin = 2200
srcEnd = 222B
mappingOffset = 0041
Mapping =
0038 FFFD FFFD 0039 FFFD 003B FFFD 0072
0032 FFFD FFFD 0033 FFFD FFFD FFFD FFFD
0071 FFFD 0000 0007 FFFD FFFD FFFD 0003
000E 000F 0070 FFFD FFFD 002F 0031 FFFD
FFFD FFFD FFFD 006A FFFD 006B FFFD 005E
005F 005C 005B 0073
End of Item 000D
Begin of Item 000E
Format 1
srcBegin = 223C
srcEnd = 224D
mappingOffset = 006D
Mapping =
0018 FFFD FFFD FFFD 006F FFFD FFFD 0027
FFFD FFFD FFFD FFFD 0019 FFFD FFFD FFFD
FFFD 0010
End of Item 000E
Begin of Item 000F
Format 1
srcBegin = 2261
srcEnd = 226B
mappingOffset = 007F
Mapping =
0011 FFFD FFFD 0014 0015 FFFD FFFD FFFD
FFFD 001C 001D
End of Item 000F
Begin of Item 0010
Format 1
srcBegin = 227A
srcEnd = 22A6
mappingOffset = 008A
Mapping =
001E 001F 0016 0017 FFFD FFFD FFFD FFFD
001A 001B FFFD FFFD 0012 0013 FFFD FFFD
FFFD FFFD FFFD FFFD 005D FFFD FFFD 0076
0077 0075 0074 0008 0009 000A 000B 000C
FFFD FFFD FFFD FFFD FFFD FFFD FFFD FFFD
0060 0061 003E 003F 0037
End of Item 0010
Begin of Item 0011
Format 1
srcBegin = 22C4
srcEnd = 22C5
mappingOffset = 00B7
Mapping =
0005 0001
End of Item 0011
Begin of Item 0012
Format 1
srcBegin = 2308
srcEnd = 230B
mappingOffset = 00B9
Mapping =
0064 0065 0062 0063
End of Item 0012
Begin of Item 0013
Format 1
srcBegin = 2329
srcEnd = 232A
mappingOffset = 00BD
Mapping =
0068 0069
End of Item 0013
Begin of Item 0014
Format 1
srcBegin = 25B3
srcEnd = 25BD
mappingOffset = 00BF
Mapping =
0034 FFFD FFFD FFFD FFFD FFFD FFFD FFFD
FFFD FFFD 0035
End of Item 0014
Begin of Item 0015
Format 2
srcBegin = 25CB
destBegin = 000D
End of Item 0015
Begin of Item 0016
Format 1
srcBegin = 2660
srcEnd = 2666
mappingOffset = 00CA
Mapping =
007F FFFD FFFD 007C FFFD 007E 007D
End of Item 0016
Begin of Item 0017
Format 1
srcBegin = F100
srcEnd = F110
mappingOffset = 00D1
Mapping =
0041 FFFD 0043 0044 FFFD FFFD 0047 FFFD
FFFD 004A 004B FFFD FFFD 004E 004F FFFD
0051
End of Item 0017
========================================================*/
/* Offset=0x0000 ItemOfList */
0x0018,
/*-------------------------------------------------------*/
/* Offset=0x0001 offsetToFormatArray */
0x0004,
/*-------------------------------------------------------*/
/* Offset=0x0002 offsetToMapCellArray */
0x000B,
/*-------------------------------------------------------*/
/* Offset=0x0003 offsetToMappingTable */
0x0053,
/*-------------------------------------------------------*/
/* Offset=0x0004 Start of Format Array */
/* Total of Format 0 : 0x0001 */
/* Total of Format 1 : 0x0011 */
/* Total of Format 2 : 0x0006 */
/* Total of Format 3 : 0x0000 */
0x1120, 0x1222, 0x1112, 0x1111, 0x1111, 0x1121, 0x0000,
/*-------------------------------------------------------*/
/* Offset=0x000B Start of MapCell Array */
/* 0000 */ 0xF112, 0xF119, 0x0053,
/* 0001 */ 0x005C, 0x0000, 0x006E,
/* 0002 */ 0x007B, 0x007D, 0x0000,
/* 0003 */ 0x00A7, 0x00B6, 0x0003,
/* 0004 */ 0x00D7, 0x0000, 0x0002,
/* 0005 */ 0x00F7, 0x0000, 0x0004,
/* 0006 */ 0x0338, 0x0000, 0x0036,
/* 0007 */ 0x2020, 0x2021, 0x0013,
/* 0008 */ 0x2032, 0x0000, 0x0030,
/* 0009 */ 0x210B, 0x211C, 0x0015,
/* 000A */ 0x212C, 0x2135, 0x0027,
/* 000B */ 0x2190, 0x2199, 0x0031,
/* 000C */ 0x21D0, 0x21D5, 0x003B,
/* 000D */ 0x2200, 0x222B, 0x0041,
/* 000E */ 0x223C, 0x224D, 0x006D,
/* 000F */ 0x2261, 0x226B, 0x007F,
/* 0010 */ 0x227A, 0x22A6, 0x008A,
/* 0011 */ 0x22C4, 0x22C5, 0x00B7,
/* 0012 */ 0x2308, 0x230B, 0x00B9,
/* 0013 */ 0x2329, 0x232A, 0x00BD,
/* 0014 */ 0x25B3, 0x25BD, 0x00BF,
/* 0015 */ 0x25CB, 0x0000, 0x000D,
/* 0016 */ 0x2660, 0x2666, 0x00CA,
/* 0017 */ 0xF100, 0xF110, 0x00D1,
/*-------------------------------------------------------*/
/* Offset=0x0053 Start of MappingTable */
/* 0000 */ 0x0066, 0xFFFD, 0x0067, 0x0078, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0008 */ 0x003A, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0006, 0xFFFD, 0xFFFD,
/* 0010 */ 0xFFFD, 0xFFFD, 0x007B, 0x0079, 0x007A, 0x0048, 0xFFFD, 0xFFFD,
/* 0018 */ 0xFFFD, 0xFFFD, 0x0049, 0x003D, 0x004C, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0020 */ 0xFFFD, 0xFFFD, 0x0050, 0xFFFD, 0xFFFD, 0x0052, 0x003C, 0x0042,
/* 0028 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x0045, 0x0046, 0xFFFD, 0x004D, 0xFFFD,
/* 0030 */ 0x0040, 0x0020, 0x0022, 0x0021, 0x0023, 0x0024, 0x006C, 0x002D,
/* 0038 */ 0x0025, 0x0026, 0x002E, 0x0028, 0x002A, 0x0029, 0x002B, 0x002C,
/* 0040 */ 0x006D, 0x0038, 0xFFFD, 0xFFFD, 0x0039, 0xFFFD, 0x003B, 0xFFFD,
/* 0048 */ 0x0072, 0x0032, 0xFFFD, 0xFFFD, 0x0033, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0050 */ 0xFFFD, 0x0071, 0xFFFD, 0x0000, 0x0007, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0058 */ 0x0003, 0x000E, 0x000F, 0x0070, 0xFFFD, 0xFFFD, 0x002F, 0x0031,
/* 0060 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x006A, 0xFFFD, 0x006B, 0xFFFD,
/* 0068 */ 0x005E, 0x005F, 0x005C, 0x005B, 0x0073, 0x0018, 0xFFFD, 0xFFFD,
/* 0070 */ 0xFFFD, 0x006F, 0xFFFD, 0xFFFD, 0x0027, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0078 */ 0xFFFD, 0x0019, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0010, 0x0011,
/* 0080 */ 0xFFFD, 0xFFFD, 0x0014, 0x0015, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0088 */ 0x001C, 0x001D, 0x001E, 0x001F, 0x0016, 0x0017, 0xFFFD, 0xFFFD,
/* 0090 */ 0xFFFD, 0xFFFD, 0x001A, 0x001B, 0xFFFD, 0xFFFD, 0x0012, 0x0013,
/* 0098 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x005D, 0xFFFD,
/* 00A0 */ 0xFFFD, 0x0076, 0x0077, 0x0075, 0x0074, 0x0008, 0x0009, 0x000A,
/* 00A8 */ 0x000B, 0x000C, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
/* 00B0 */ 0xFFFD, 0xFFFD, 0x0060, 0x0061, 0x003E, 0x003F, 0x0037, 0x0005,
/* 00B8 */ 0x0001, 0x0064, 0x0065, 0x0062, 0x0063, 0x0068, 0x0069, 0x0034,
/* 00C0 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
/* 00C8 */ 0xFFFD, 0x0035, 0x007F, 0xFFFD, 0xFFFD, 0x007C, 0xFFFD, 0x007E,
/* 00D0 */ 0x007D, 0x0041, 0xFFFD, 0x0043, 0x0044, 0xFFFD, 0xFFFD, 0x0047,
/* 00D8 */ 0xFFFD, 0xFFFD, 0x004A, 0x004B, 0xFFFD, 0xFFFD, 0x004E, 0x004F,
/* 00E0 */ 0xFFFD, 0x0051,
/* End of table Total Length = 0x0135 * 2 */

View File

@ -0,0 +1,314 @@
/*========================================================
This is a Generated file. Please don't edit it.
The tool which used to generate this file is called fromu.
If you have any problem of this file. Please contact
Netscape Client International Team or
ftang@netscape <Frank Tang>
Table in Debug form
Begin of Item 0000
Format 0
srcBegin = F112
srcEnd = F119
destBegin = 0053
End of Item 0000
Begin of Item 0001
Format 2
srcBegin = 0020
destBegin = 0020
End of Item 0001
Begin of Item 0002
Format 2
srcBegin = 005C
destBegin = 006E
End of Item 0002
Begin of Item 0003
Format 1
srcBegin = 007B
srcEnd = 007D
mappingOffset = 0000
Mapping =
0066 FFFD 0067
End of Item 0003
Begin of Item 0004
Format 1
srcBegin = 00A0
srcEnd = 00B6
mappingOffset = 0003
Mapping =
00A0 FFFD FFFD FFFD FFFD FFFD FFFD 0078
FFFD FFFD FFFD FFFD 003A FFFD FFFD FFFD
FFFD 00A7 FFFD FFFD FFFD FFFD 007B
End of Item 0004
Begin of Item 0005
Format 2
srcBegin = 00D7
destBegin = 00A3
End of Item 0005
Begin of Item 0006
Format 2
srcBegin = 00F7
destBegin = 00A5
End of Item 0006
Begin of Item 0007
Format 2
srcBegin = 0338
destBegin = 0036
End of Item 0007
Begin of Item 0008
Format 1
srcBegin = 2020
srcEnd = 2021
mappingOffset = 001A
Mapping =
0079 007A
End of Item 0008
Begin of Item 0009
Format 2
srcBegin = 2032
destBegin = 0030
End of Item 0009
Begin of Item 000A
Format 1
srcBegin = 210B
srcEnd = 211C
mappingOffset = 001C
Mapping =
0048 FFFD FFFD FFFD FFFD 0049 003D 004C
FFFD FFFD FFFD FFFD FFFD 0050 FFFD FFFD
0052 003C
End of Item 000A
Begin of Item 000B
Format 1
srcBegin = 212C
srcEnd = 2135
mappingOffset = 002E
Mapping =
0042 FFFD FFFD FFFD 0045 0046 FFFD 004D
FFFD 0040
End of Item 000B
Begin of Item 000C
Format 1
srcBegin = 2190
srcEnd = 2199
mappingOffset = 0038
Mapping =
00C3 0022 0021 0023 0024 006C 002D 0025
0026 002E
End of Item 000C
Begin of Item 000D
Format 1
srcBegin = 21D0
srcEnd = 21D5
mappingOffset = 0042
Mapping =
0028 002A 0029 002B 002C 006D
End of Item 000D
Begin of Item 000E
Format 1
srcBegin = 2200
srcEnd = 222B
mappingOffset = 0048
Mapping =
0038 FFFD FFFD 0039 FFFD 003B FFFD 0072
0032 FFFD FFFD 0033 FFFD FFFD FFFD FFFD
0071 FFFD 00A1 00A8 FFFD FFFD FFFD 00A4
00B1 00B2 0070 FFFD FFFD 002F 0031 FFFD
FFFD FFFD FFFD 006A FFFD 006B FFFD 005E
005F 005C 005B 0073
End of Item 000E
Begin of Item 000F
Format 1
srcBegin = 223C
srcEnd = 224D
mappingOffset = 0074
Mapping =
00BB FFFD FFFD FFFD 006F FFFD FFFD 0027
FFFD FFFD FFFD FFFD 00BC FFFD FFFD FFFD
FFFD 00B3
End of Item 000F
Begin of Item 0010
Format 1
srcBegin = 2261
srcEnd = 226B
mappingOffset = 0086
Mapping =
00B4 FFFD FFFD 00B7 00B8 FFFD FFFD FFFD
FFFD 00BF 00C0
End of Item 0010
Begin of Item 0011
Format 1
srcBegin = 227A
srcEnd = 22A6
mappingOffset = 0091
Mapping =
00C1 00C2 00B9 00BA FFFD FFFD FFFD FFFD
00BD 00BE FFFD FFFD 00B5 00B6 FFFD FFFD
FFFD FFFD FFFD FFFD 005D FFFD FFFD 0076
0077 0075 0074 00A9 00AA 00AD 00AE 00AF
FFFD FFFD FFFD FFFD FFFD FFFD FFFD FFFD
0060 0061 003E 003F 0037
End of Item 0011
Begin of Item 0012
Format 1
srcBegin = 22C4
srcEnd = 22C5
mappingOffset = 00BE
Mapping =
00A6 00A2
End of Item 0012
Begin of Item 0013
Format 1
srcBegin = 2308
srcEnd = 230B
mappingOffset = 00C0
Mapping =
0064 0065 0062 0063
End of Item 0013
Begin of Item 0014
Format 1
srcBegin = 2329
srcEnd = 232A
mappingOffset = 00C4
Mapping =
0068 0069
End of Item 0014
Begin of Item 0015
Format 1
srcBegin = 25B3
srcEnd = 25BD
mappingOffset = 00C6
Mapping =
0034 FFFD FFFD FFFD FFFD FFFD FFFD FFFD
FFFD FFFD 0035
End of Item 0015
Begin of Item 0016
Format 2
srcBegin = 25CB
destBegin = 00B0
End of Item 0016
Begin of Item 0017
Format 1
srcBegin = 2660
srcEnd = 2666
mappingOffset = 00D1
Mapping =
00C4 FFFD FFFD 007C FFFD 007E 007D
End of Item 0017
Begin of Item 0018
Format 1
srcBegin = F100
srcEnd = F110
mappingOffset = 00D8
Mapping =
0041 FFFD 0043 0044 FFFD FFFD 0047 FFFD
FFFD 004A 004B FFFD FFFD 004E 004F FFFD
0051
End of Item 0018
========================================================*/
/* Offset=0x0000 ItemOfList */
0x0019,
/*-------------------------------------------------------*/
/* Offset=0x0001 offsetToFormatArray */
0x0004,
/*-------------------------------------------------------*/
/* Offset=0x0002 offsetToMapCellArray */
0x000B,
/*-------------------------------------------------------*/
/* Offset=0x0003 offsetToMappingTable */
0x0056,
/*-------------------------------------------------------*/
/* Offset=0x0004 Start of Format Array */
/* Total of Format 0 : 0x0001 */
/* Total of Format 1 : 0x0011 */
/* Total of Format 2 : 0x0007 */
/* Total of Format 3 : 0x0000 */
0x1220, 0x2221, 0x1121, 0x1111, 0x1111, 0x1211, 0x0001,
/*-------------------------------------------------------*/
/* Offset=0x000B Start of MapCell Array */
/* 0000 */ 0xF112, 0xF119, 0x0053,
/* 0001 */ 0x0020, 0x0000, 0x0020,
/* 0002 */ 0x005C, 0x0000, 0x006E,
/* 0003 */ 0x007B, 0x007D, 0x0000,
/* 0004 */ 0x00A0, 0x00B6, 0x0003,
/* 0005 */ 0x00D7, 0x0000, 0x00A3,
/* 0006 */ 0x00F7, 0x0000, 0x00A5,
/* 0007 */ 0x0338, 0x0000, 0x0036,
/* 0008 */ 0x2020, 0x2021, 0x001A,
/* 0009 */ 0x2032, 0x0000, 0x0030,
/* 000A */ 0x210B, 0x211C, 0x001C,
/* 000B */ 0x212C, 0x2135, 0x002E,
/* 000C */ 0x2190, 0x2199, 0x0038,
/* 000D */ 0x21D0, 0x21D5, 0x0042,
/* 000E */ 0x2200, 0x222B, 0x0048,
/* 000F */ 0x223C, 0x224D, 0x0074,
/* 0010 */ 0x2261, 0x226B, 0x0086,
/* 0011 */ 0x227A, 0x22A6, 0x0091,
/* 0012 */ 0x22C4, 0x22C5, 0x00BE,
/* 0013 */ 0x2308, 0x230B, 0x00C0,
/* 0014 */ 0x2329, 0x232A, 0x00C4,
/* 0015 */ 0x25B3, 0x25BD, 0x00C6,
/* 0016 */ 0x25CB, 0x0000, 0x00B0,
/* 0017 */ 0x2660, 0x2666, 0x00D1,
/* 0018 */ 0xF100, 0xF110, 0x00D8,
/*-------------------------------------------------------*/
/* Offset=0x0056 Start of MappingTable */
/* 0000 */ 0x0066, 0xFFFD, 0x0067, 0x00A0, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0008 */ 0xFFFD, 0xFFFD, 0x0078, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x003A,
/* 0010 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00A7, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0018 */ 0xFFFD, 0x007B, 0x0079, 0x007A, 0x0048, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0020 */ 0xFFFD, 0x0049, 0x003D, 0x004C, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0028 */ 0xFFFD, 0x0050, 0xFFFD, 0xFFFD, 0x0052, 0x003C, 0x0042, 0xFFFD,
/* 0030 */ 0xFFFD, 0xFFFD, 0x0045, 0x0046, 0xFFFD, 0x004D, 0xFFFD, 0x0040,
/* 0038 */ 0x00C3, 0x0022, 0x0021, 0x0023, 0x0024, 0x006C, 0x002D, 0x0025,
/* 0040 */ 0x0026, 0x002E, 0x0028, 0x002A, 0x0029, 0x002B, 0x002C, 0x006D,
/* 0048 */ 0x0038, 0xFFFD, 0xFFFD, 0x0039, 0xFFFD, 0x003B, 0xFFFD, 0x0072,
/* 0050 */ 0x0032, 0xFFFD, 0xFFFD, 0x0033, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0058 */ 0x0071, 0xFFFD, 0x00A1, 0x00A8, 0xFFFD, 0xFFFD, 0xFFFD, 0x00A4,
/* 0060 */ 0x00B1, 0x00B2, 0x0070, 0xFFFD, 0xFFFD, 0x002F, 0x0031, 0xFFFD,
/* 0068 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x006A, 0xFFFD, 0x006B, 0xFFFD, 0x005E,
/* 0070 */ 0x005F, 0x005C, 0x005B, 0x0073, 0x00BB, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0078 */ 0x006F, 0xFFFD, 0xFFFD, 0x0027, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0080 */ 0x00BC, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00B3, 0x00B4, 0xFFFD,
/* 0088 */ 0xFFFD, 0x00B7, 0x00B8, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00BF,
/* 0090 */ 0x00C0, 0x00C1, 0x00C2, 0x00B9, 0x00BA, 0xFFFD, 0xFFFD, 0xFFFD,
/* 0098 */ 0xFFFD, 0x00BD, 0x00BE, 0xFFFD, 0xFFFD, 0x00B5, 0x00B6, 0xFFFD,
/* 00A0 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x005D, 0xFFFD, 0xFFFD,
/* 00A8 */ 0x0076, 0x0077, 0x0075, 0x0074, 0x00A9, 0x00AA, 0x00AD, 0x00AE,
/* 00B0 */ 0x00AF, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
/* 00B8 */ 0xFFFD, 0x0060, 0x0061, 0x003E, 0x003F, 0x0037, 0x00A6, 0x00A2,
/* 00C0 */ 0x0064, 0x0065, 0x0062, 0x0063, 0x0068, 0x0069, 0x0034, 0xFFFD,
/* 00C8 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
/* 00D0 */ 0x0035, 0x00C4, 0xFFFD, 0xFFFD, 0x007C, 0xFFFD, 0x007E, 0x007D,
/* 00D8 */ 0x0041, 0xFFFD, 0x0043, 0x0044, 0xFFFD, 0xFFFD, 0x0047, 0xFFFD,
/* 00E0 */ 0xFFFD, 0x004A, 0x004B, 0xFFFD, 0xFFFD, 0x004E, 0x004F, 0xFFFD,
/* 00E8 */ 0x0051,
/* End of table Total Length = 0x013F * 2 */