Imported Upstream version 6.12.0.86

Former-commit-id: 7a84ce7d08c42c458ac8e74b27186ca863315d79
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2020-07-10 08:44:59 +00:00
parent 92747312ea
commit 0b380204a4
812 changed files with 26901 additions and 9053 deletions

View File

@ -1,413 +0,0 @@
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
// Copyright (c) 2005 Novell, Inc. (http://www.novell.com)
//
// Authors:
// Peter Bartok (pbartok@novell.com)
//
//
// COMPLETE
using System.Collections;
namespace System.Windows.Forms.RTF {
internal class Charcode {
#region Local Variables
private StandardCharCode[] codes;
private Hashtable reverse;
private int size;
#endregion // Local Variables
#region Cached Values
static Charcode ansi_generic;
#endregion
#region Public Constructors
public Charcode() : this(256) {
}
private Charcode(int size) {
this.size = size;
this.codes = new StandardCharCode[size];
this.reverse = new Hashtable(size);
// No need to reinitialize array to its default value
//for (int i = 0; i < size; i++) {
// codes[i] = StandardCharCode.nothing;
//}
}
#endregion // Public Constructors
#region Public Instance Properties
public int this[StandardCharCode c] {
get {
object obj;
obj = reverse[c];
if (obj != null) {
return (int)obj;
}
for (int i = 0; i < size; i++) {
if (codes[i] == c) {
return i;
}
}
return -1;
}
}
public StandardCharCode this[int c] {
get {
if (c < 0 || c >= size) {
return StandardCharCode.nothing;
}
return codes[c];
}
private set {
if (c < 0 || c >= size) {
return;
}
codes[c] = value;
reverse[value] = c;
}
}
#endregion // Public Instance Properties
#region Public Instance Methods
#endregion // Public Instance Methods
#region Public Static Methods
public static Charcode AnsiGeneric {
get {
if (ansi_generic != null)
return ansi_generic;
ansi_generic = new Charcode(256);
ansi_generic[0x06] = StandardCharCode.formula;
ansi_generic[0x1e] = StandardCharCode.nobrkhyphen;
ansi_generic[0x1f] = StandardCharCode.opthyphen;
ansi_generic[' '] = StandardCharCode.space;
ansi_generic['!'] = StandardCharCode.exclam;
ansi_generic['"'] = StandardCharCode.quotedbl;
ansi_generic['#'] = StandardCharCode.numbersign;
ansi_generic['$'] = StandardCharCode.dollar;
ansi_generic['%'] = StandardCharCode.percent;
ansi_generic['&'] = StandardCharCode.ampersand;
ansi_generic['\\'] = StandardCharCode.quoteright;
ansi_generic['('] = StandardCharCode.parenleft;
ansi_generic[')'] = StandardCharCode.parenright;
ansi_generic['*'] = StandardCharCode.asterisk;
ansi_generic['+'] = StandardCharCode.plus;
ansi_generic[','] = StandardCharCode.comma;
ansi_generic['-'] = StandardCharCode.hyphen;
ansi_generic['.'] = StandardCharCode.period;
ansi_generic['/'] = StandardCharCode.slash;
ansi_generic['0'] = StandardCharCode.zero;
ansi_generic['1'] = StandardCharCode.one;
ansi_generic['2'] = StandardCharCode.two;
ansi_generic['3'] = StandardCharCode.three;
ansi_generic['4'] = StandardCharCode.four;
ansi_generic['5'] = StandardCharCode.five;
ansi_generic['6'] = StandardCharCode.six;
ansi_generic['7'] = StandardCharCode.seven;
ansi_generic['8'] = StandardCharCode.eight;
ansi_generic['9'] = StandardCharCode.nine;
ansi_generic[':'] = StandardCharCode.colon;
ansi_generic[';'] = StandardCharCode.semicolon;
ansi_generic['<'] = StandardCharCode.less;
ansi_generic['='] = StandardCharCode.equal;
ansi_generic['>'] = StandardCharCode.greater;
ansi_generic['?'] = StandardCharCode.question;
ansi_generic['@'] = StandardCharCode.at;
ansi_generic['A'] = StandardCharCode.A;
ansi_generic['B'] = StandardCharCode.B;
ansi_generic['C'] = StandardCharCode.C;
ansi_generic['D'] = StandardCharCode.D;
ansi_generic['E'] = StandardCharCode.E;
ansi_generic['F'] = StandardCharCode.F;
ansi_generic['G'] = StandardCharCode.G;
ansi_generic['H'] = StandardCharCode.H;
ansi_generic['I'] = StandardCharCode.I;
ansi_generic['J'] = StandardCharCode.J;
ansi_generic['K'] = StandardCharCode.K;
ansi_generic['L'] = StandardCharCode.L;
ansi_generic['M'] = StandardCharCode.M;
ansi_generic['N'] = StandardCharCode.N;
ansi_generic['O'] = StandardCharCode.O;
ansi_generic['P'] = StandardCharCode.P;
ansi_generic['Q'] = StandardCharCode.Q;
ansi_generic['R'] = StandardCharCode.R;
ansi_generic['S'] = StandardCharCode.S;
ansi_generic['T'] = StandardCharCode.T;
ansi_generic['U'] = StandardCharCode.U;
ansi_generic['V'] = StandardCharCode.V;
ansi_generic['W'] = StandardCharCode.W;
ansi_generic['X'] = StandardCharCode.X;
ansi_generic['Y'] = StandardCharCode.Y;
ansi_generic['Z'] = StandardCharCode.Z;
ansi_generic['['] = StandardCharCode.bracketleft;
ansi_generic['\\'] = StandardCharCode.backslash;
ansi_generic[']'] = StandardCharCode.bracketright;
ansi_generic['^'] = StandardCharCode.asciicircum;
ansi_generic['_'] = StandardCharCode.underscore;
ansi_generic['`'] = StandardCharCode.quoteleft;
ansi_generic['a'] = StandardCharCode.a;
ansi_generic['b'] = StandardCharCode.b;
ansi_generic['c'] = StandardCharCode.c;
ansi_generic['d'] = StandardCharCode.d;
ansi_generic['e'] = StandardCharCode.e;
ansi_generic['f'] = StandardCharCode.f;
ansi_generic['g'] = StandardCharCode.g;
ansi_generic['h'] = StandardCharCode.h;
ansi_generic['i'] = StandardCharCode.i;
ansi_generic['j'] = StandardCharCode.j;
ansi_generic['k'] = StandardCharCode.k;
ansi_generic['l'] = StandardCharCode.l;
ansi_generic['m'] = StandardCharCode.m;
ansi_generic['n'] = StandardCharCode.n;
ansi_generic['o'] = StandardCharCode.o;
ansi_generic['p'] = StandardCharCode.p;
ansi_generic['q'] = StandardCharCode.q;
ansi_generic['r'] = StandardCharCode.r;
ansi_generic['s'] = StandardCharCode.s;
ansi_generic['t'] = StandardCharCode.t;
ansi_generic['u'] = StandardCharCode.u;
ansi_generic['v'] = StandardCharCode.v;
ansi_generic['w'] = StandardCharCode.w;
ansi_generic['x'] = StandardCharCode.x;
ansi_generic['y'] = StandardCharCode.y;
ansi_generic['z'] = StandardCharCode.z;
ansi_generic['{'] = StandardCharCode.braceleft;
ansi_generic['|'] = StandardCharCode.bar;
ansi_generic['}'] = StandardCharCode.braceright;
ansi_generic['~'] = StandardCharCode.asciitilde;
ansi_generic[0xa0] = StandardCharCode.nobrkspace;
ansi_generic[0xa1] = StandardCharCode.exclamdown;
ansi_generic[0xa2] = StandardCharCode.cent;
ansi_generic[0xa3] = StandardCharCode.sterling;
ansi_generic[0xa4] = StandardCharCode.currency;
ansi_generic[0xa5] = StandardCharCode.yen;
ansi_generic[0xa6] = StandardCharCode.brokenbar;
ansi_generic[0xa7] = StandardCharCode.section;
ansi_generic[0xa8] = StandardCharCode.dieresis;
ansi_generic[0xa9] = StandardCharCode.copyright;
ansi_generic[0xaa] = StandardCharCode.ordfeminine;
ansi_generic[0xab] = StandardCharCode.guillemotleft;
ansi_generic[0xac] = StandardCharCode.logicalnot;
ansi_generic[0xad] = StandardCharCode.opthyphen;
ansi_generic[0xae] = StandardCharCode.registered;
ansi_generic[0xaf] = StandardCharCode.macron;
ansi_generic[0xb0] = StandardCharCode.degree;
ansi_generic[0xb1] = StandardCharCode.plusminus;
ansi_generic[0xb2] = StandardCharCode.twosuperior;
ansi_generic[0xb3] = StandardCharCode.threesuperior;
ansi_generic[0xb4] = StandardCharCode.acute;
ansi_generic[0xb5] = StandardCharCode.mu;
ansi_generic[0xb6] = StandardCharCode.paragraph;
ansi_generic[0xb7] = StandardCharCode.periodcentered;
ansi_generic[0xb8] = StandardCharCode.cedilla;
ansi_generic[0xb9] = StandardCharCode.onesuperior;
ansi_generic[0xba] = StandardCharCode.ordmasculine;
ansi_generic[0xbb] = StandardCharCode.guillemotright;
ansi_generic[0xbc] = StandardCharCode.onequarter;
ansi_generic[0xbd] = StandardCharCode.onehalf;
ansi_generic[0xbe] = StandardCharCode.threequarters;
ansi_generic[0xbf] = StandardCharCode.questiondown;
ansi_generic[0xc0] = StandardCharCode.Agrave;
ansi_generic[0xc1] = StandardCharCode.Aacute;
ansi_generic[0xc2] = StandardCharCode.Acircumflex;
ansi_generic[0xc3] = StandardCharCode.Atilde;
ansi_generic[0xc4] = StandardCharCode.Adieresis;
ansi_generic[0xc5] = StandardCharCode.Aring;
ansi_generic[0xc6] = StandardCharCode.AE;
ansi_generic[0xc7] = StandardCharCode.Ccedilla;
ansi_generic[0xc8] = StandardCharCode.Egrave;
ansi_generic[0xc9] = StandardCharCode.Eacute;
ansi_generic[0xca] = StandardCharCode.Ecircumflex;
ansi_generic[0xcb] = StandardCharCode.Edieresis;
ansi_generic[0xcc] = StandardCharCode.Igrave;
ansi_generic[0xcd] = StandardCharCode.Iacute;
ansi_generic[0xce] = StandardCharCode.Icircumflex;
ansi_generic[0xcf] = StandardCharCode.Idieresis;
ansi_generic[0xd0] = StandardCharCode.Eth;
ansi_generic[0xd1] = StandardCharCode.Ntilde;
ansi_generic[0xd2] = StandardCharCode.Ograve;
ansi_generic[0xd3] = StandardCharCode.Oacute;
ansi_generic[0xd4] = StandardCharCode.Ocircumflex;
ansi_generic[0xd5] = StandardCharCode.Otilde;
ansi_generic[0xd6] = StandardCharCode.Odieresis;
ansi_generic[0xd7] = StandardCharCode.multiply;
ansi_generic[0xd8] = StandardCharCode.Oslash;
ansi_generic[0xd9] = StandardCharCode.Ugrave;
ansi_generic[0xda] = StandardCharCode.Uacute;
ansi_generic[0xdb] = StandardCharCode.Ucircumflex;
ansi_generic[0xdc] = StandardCharCode.Udieresis;
ansi_generic[0xdd] = StandardCharCode.Yacute;
ansi_generic[0xde] = StandardCharCode.Thorn;
ansi_generic[0xdf] = StandardCharCode.germandbls;
ansi_generic[0xe0] = StandardCharCode.agrave;
ansi_generic[0xe1] = StandardCharCode.aacute;
ansi_generic[0xe2] = StandardCharCode.acircumflex;
ansi_generic[0xe3] = StandardCharCode.atilde;
ansi_generic[0xe4] = StandardCharCode.adieresis;
ansi_generic[0xe5] = StandardCharCode.aring;
ansi_generic[0xe6] = StandardCharCode.ae;
ansi_generic[0xe7] = StandardCharCode.ccedilla;
ansi_generic[0xe8] = StandardCharCode.egrave;
ansi_generic[0xe9] = StandardCharCode.eacute;
ansi_generic[0xea] = StandardCharCode.ecircumflex;
ansi_generic[0xeb] = StandardCharCode.edieresis;
ansi_generic[0xec] = StandardCharCode.igrave;
ansi_generic[0xed] = StandardCharCode.iacute;
ansi_generic[0xee] = StandardCharCode.icircumflex;
ansi_generic[0xef] = StandardCharCode.idieresis;
ansi_generic[0xf0] = StandardCharCode.eth;
ansi_generic[0xf1] = StandardCharCode.ntilde;
ansi_generic[0xf2] = StandardCharCode.ograve;
ansi_generic[0xf3] = StandardCharCode.oacute;
ansi_generic[0xf4] = StandardCharCode.ocircumflex;
ansi_generic[0xf5] = StandardCharCode.otilde;
ansi_generic[0xf6] = StandardCharCode.odieresis;
ansi_generic[0xf7] = StandardCharCode.divide;
ansi_generic[0xf8] = StandardCharCode.oslash;
ansi_generic[0xf9] = StandardCharCode.ugrave;
ansi_generic[0xfa] = StandardCharCode.uacute;
ansi_generic[0xfb] = StandardCharCode.ucircumflex;
ansi_generic[0xfc] = StandardCharCode.udieresis;
ansi_generic[0xfd] = StandardCharCode.yacute;
ansi_generic[0xfe] = StandardCharCode.thorn;
ansi_generic[0xff] = StandardCharCode.ydieresis;
return ansi_generic;
}
}
public static Charcode AnsiSymbol {
get {
Charcode code = new Charcode(256);
code[0x06] = StandardCharCode.formula;
code[0x1e] = StandardCharCode.nobrkhyphen;
code[0x1f] = StandardCharCode.opthyphen;
code[' '] = StandardCharCode.space;
code['!'] = StandardCharCode.exclam;
code['"'] = StandardCharCode.universal;
code['#'] = StandardCharCode.mathnumbersign;
code['$'] = StandardCharCode.existential;
code['%'] = StandardCharCode.percent;
code['&'] = StandardCharCode.ampersand;
code['\\'] = StandardCharCode.suchthat;
code['('] = StandardCharCode.parenleft;
code[')'] = StandardCharCode.parenright;
code['*'] = StandardCharCode.mathasterisk;
code['+'] = StandardCharCode.mathplus;
code[','] = StandardCharCode.comma;
code['-'] = StandardCharCode.mathminus;
code['.'] = StandardCharCode.period;
code['/'] = StandardCharCode.slash;
code['0'] = StandardCharCode.zero;
code['1'] = StandardCharCode.one;
code['2'] = StandardCharCode.two;
code['3'] = StandardCharCode.three;
code['4'] = StandardCharCode.four;
code['5'] = StandardCharCode.five;
code['6'] = StandardCharCode.six;
code['7'] = StandardCharCode.seven;
code['8'] = StandardCharCode.eight;
code['9'] = StandardCharCode.nine;
code[':'] = StandardCharCode.colon;
code[';'] = StandardCharCode.semicolon;
code['<'] = StandardCharCode.less;
code['='] = StandardCharCode.mathequal;
code['>'] = StandardCharCode.greater;
code['?'] = StandardCharCode.question;
code['@'] = StandardCharCode.congruent;
code['A'] = StandardCharCode.Alpha;
code['B'] = StandardCharCode.Beta;
code['C'] = StandardCharCode.Chi;
code['D'] = StandardCharCode.Delta;
code['E'] = StandardCharCode.Epsilon;
code['F'] = StandardCharCode.Phi;
code['G'] = StandardCharCode.Gamma;
code['H'] = StandardCharCode.Eta;
code['I'] = StandardCharCode.Iota;
code['K'] = StandardCharCode.Kappa;
code['L'] = StandardCharCode.Lambda;
code['M'] = StandardCharCode.Mu;
code['N'] = StandardCharCode.Nu;
code['O'] = StandardCharCode.Omicron;
code['P'] = StandardCharCode.Pi;
code['Q'] = StandardCharCode.Theta;
code['R'] = StandardCharCode.Rho;
code['S'] = StandardCharCode.Sigma;
code['T'] = StandardCharCode.Tau;
code['U'] = StandardCharCode.Upsilon;
code['V'] = StandardCharCode.varsigma;
code['W'] = StandardCharCode.Omega;
code['X'] = StandardCharCode.Xi;
code['Y'] = StandardCharCode.Psi;
code['Z'] = StandardCharCode.Zeta;
code['['] = StandardCharCode.bracketleft;
code['\\'] = StandardCharCode.backslash;
code[']'] = StandardCharCode.bracketright;
code['^'] = StandardCharCode.asciicircum;
code['_'] = StandardCharCode.underscore;
code['`'] = StandardCharCode.quoteleft;
code['a'] = StandardCharCode.alpha;
code['b'] = StandardCharCode.beta;
code['c'] = StandardCharCode.chi;
code['d'] = StandardCharCode.delta;
code['e'] = StandardCharCode.epsilon;
code['f'] = StandardCharCode.phi;
code['g'] = StandardCharCode.gamma;
code['h'] = StandardCharCode.eta;
code['i'] = StandardCharCode.iota;
code['k'] = StandardCharCode.kappa;
code['l'] = StandardCharCode.lambda;
code['m'] = StandardCharCode.mu;
code['n'] = StandardCharCode.nu;
code['o'] = StandardCharCode.omicron;
code['p'] = StandardCharCode.pi;
code['q'] = StandardCharCode.theta;
code['r'] = StandardCharCode.rho;
code['s'] = StandardCharCode.sigma;
code['t'] = StandardCharCode.tau;
code['u'] = StandardCharCode.upsilon;
code['w'] = StandardCharCode.omega;
code['x'] = StandardCharCode.xi;
code['y'] = StandardCharCode.psi;
code['z'] = StandardCharCode.zeta;
code['{'] = StandardCharCode.braceleft;
code['|'] = StandardCharCode.bar;
code['}'] = StandardCharCode.braceright;
code['~'] = StandardCharCode.mathtilde;
return code;
}
}
#endregion // Public Static Methods
}
}

View File

@ -1,157 +0,0 @@
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
// Copyright (c) 2005 Novell, Inc. (http://www.novell.com)
//
// Authors:
// Peter Bartok (pbartok@novell.com)
//
//
using System;
// COMPLETE
namespace System.Windows.Forms.RTF {
#if RTF_LIB
public
#else
internal
#endif
class Charset {
#region Local Variables
private CharsetType id;
private CharsetFlags flags;
private Charcode code;
private string file;
#endregion // Local Variables
#region Public Constructors
public Charset() {
flags = CharsetFlags.Read | CharsetFlags.Switch;
id = CharsetType.General;
file = string.Empty;
this.ReadMap();
}
#endregion // Public Constructors
#region Public Instance Properties
public Charcode Code {
get {
return code;
}
set {
code = value;
}
}
public CharsetFlags Flags {
get {
return flags;
}
set {
flags = value;
}
}
public CharsetType ID {
get {
return id;
}
set {
switch(value) {
case CharsetType.Symbol: {
id = CharsetType.Symbol;
return;
}
default:
case CharsetType.General: {
id = CharsetType.General;
return;
}
}
}
}
public string File {
get {
return file;
}
set {
if (file != value) {
file = value;
}
}
}
public StandardCharCode this[int c] {
get {
return code[c];
}
}
#endregion // Public Instance Properties
#region Public Instance Methods
public bool ReadMap() {
switch (id) {
case CharsetType.General: {
if (file == string.Empty) {
code = Charcode.AnsiGeneric;
return true;
}
// FIXME - implement reading charmap from file...
return true;
}
case CharsetType.Symbol: {
if (file == string.Empty) {
code = Charcode.AnsiSymbol;
return true;
}
// FIXME - implement reading charmap from file...
return true;
}
default: {
return false;
}
}
}
public char StdCharCode(string name) {
// FIXME - finish this
return ' ';
}
public string StdCharName(char code) {
// FIXME - finish this
return String.Empty;
}
#endregion // Public Instance Methods
}
}

View File

@ -1,41 +0,0 @@
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
// Copyright (c) 2005 Novell, Inc. (http://www.novell.com)
//
// Authors:
// Peter Bartok (pbartok@novell.com)
//
//
// COMPLETE
namespace System.Windows.Forms.RTF {
[Flags]
#if RTF_LIB
public
#else
internal
#endif
enum CharsetFlags {
None = 0x00,
Read = 0x01,
Switch = 0x02
}
}

View File

@ -0,0 +1,79 @@
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
// Copyright (c) 2020 Karl Scowen
//
// Authors:
// Karl Scowen <contact@scowencomputers.co.nz>
//
//
namespace System.Windows.Forms.RTF {
internal static class CharsetToCodepage {
public static int Translate(CharsetType charset)
{
switch (charset) {
case CharsetType.General:
case CharsetType.Arabic_Traditional:
case CharsetType.Arabic_user:
case CharsetType.Hebrew_user:
case CharsetType.Mac: // Technically wrong, because "mac" should actually be quite a few with their own code pages...
default:
return System.Text.Encoding.Default.CodePage;
case CharsetType.ANSI:
return 1252;
case CharsetType.Symbol:
return 42;
case CharsetType.Shift_Jis:
return 932;
case CharsetType.Hangul:
return 949;
case CharsetType.Johab:
return 1361;
case CharsetType.GB2312:
return 936;
case CharsetType.Big5:
return 950;
case CharsetType.Greek:
return 1253;
case CharsetType.Turkish:
return 1254;
case CharsetType.Vietnamese:
return 1258;
case CharsetType.Hebrew:
return 1255;
case CharsetType.Arabic:
return 1256;
case CharsetType.Baltic:
return 1257;
case CharsetType.Russian:
return 1251;
case CharsetType.Thai:
return 874;
case CharsetType.Eastern_European:
return 1250;
case CharsetType.PC_437:
return 437;
case CharsetType.OEM:
return 850;
}
}
}
}

View File

@ -21,6 +21,7 @@
//
// Authors:
// Peter Bartok (pbartok@novell.com)
// Karl Scowen (contact@scowencomputers.co.nz)
//
//
@ -33,8 +34,29 @@ namespace System.Windows.Forms.RTF {
#else
internal
#endif
enum CharsetType {
General = 0,
Symbol = 1,
enum CharsetType : byte {
ANSI = 0,
General = 1,
Symbol = 2,
Mac = 77,
Shift_Jis = 128,
Hangul = 129,
Johab = 130,
GB2312 = 134,
Big5 = 136,
Greek = 161,
Turkish = 162,
Vietnamese = 163,
Hebrew = 177,
Arabic = 178,
Arabic_Traditional = 179,
Arabic_user = 180,
Hebrew_user = 181,
Baltic = 186,
Russian = 204,
Thai = 222,
Eastern_European = 238,
PC_437 = 254,
OEM = 255
}
}

View File

@ -366,10 +366,12 @@ namespace System.Windows.Forms.RTF {
new KeyStruct(Major.StyleAttr, Minor.Next, "snext"),
new KeyStruct(Major.PictAttr, Minor.MacQD, "macpict"),
new KeyStruct(Major.PictAttr, Minor.PMMetafile, "pmmetafile"),
new KeyStruct(Major.PictAttr, Minor.EnhancedMetafile, "emfblip"),
new KeyStruct(Major.PictAttr, Minor.WinMetafile, "wmetafile"),
new KeyStruct(Major.PictAttr, Minor.DevIndBitmap, "dibitmap"),
new KeyStruct(Major.PictAttr, Minor.WinBitmap, "wbitmap"),
new KeyStruct(Major.PictAttr, Minor.PngBlip, "pngblip"),
new KeyStruct(Major.PictAttr, Minor.JpegBlip, "jpgblip"),
new KeyStruct(Major.PictAttr, Minor.PixelBits, "wbmbitspixel"),
new KeyStruct(Major.PictAttr, Minor.BitmapPlanes, "wbmplanes"),
new KeyStruct(Major.PictAttr, Minor.BitmapWid, "wbmwidthbytes"),
@ -393,6 +395,7 @@ namespace System.Windows.Forms.RTF {
new KeyStruct(Major.NeXTGrAttr, Minor.NeXTGHeight, "height"),
new KeyStruct(Major.Destination, Minor.OptDest, "*"),
new KeyStruct(Major.Destination, Minor.FontTbl, "fonttbl"),
new KeyStruct(Major.Destination, Minor.FontName, "fname"),
new KeyStruct(Major.Destination, Minor.FontAltName, "falt"),
new KeyStruct(Major.Destination, Minor.EmbeddedFont, "fonteb"),
new KeyStruct(Major.Destination, Minor.FontFile, "fontfile"),

View File

@ -41,6 +41,7 @@ namespace System.Windows.Forms.RTF {
// Major.Destinan
FontTbl,
FontName,
FontAltName,
EmbeddedFont,
FontFile,
@ -520,10 +521,12 @@ namespace System.Windows.Forms.RTF {
// Major.PictAttr
MacQD,
PMMetafile,
EnhancedMetafile,
WinMetafile,
DevIndBitmap,
WinBitmap,
PngBlip,
JpegBlip,
PixelBits,
BitmapPlanes,
BitmapWid,

View File

@ -66,7 +66,7 @@ namespace System.Windows.Forms.RTF {
public float Width {
get {
float w = width;
if (w == -1) {
if (w < 0) {
if (image == null)
image = ToImage ();
w = image.Width;
@ -79,7 +79,7 @@ namespace System.Windows.Forms.RTF {
public float Height {
get {
float h = height;
if (h == -1) {
if (h < 0) {
if (image == null)
image = ToImage ();
h = image.Height;
@ -113,7 +113,9 @@ namespace System.Windows.Forms.RTF {
return false;
switch (image_type) {
case Minor.PngBlip:
case Minor.JpegBlip:
case Minor.WinMetafile:
case Minor.EnhancedMetafile:
break;
default:
return false;
@ -126,15 +128,7 @@ namespace System.Windows.Forms.RTF {
{
if (image == null)
image = ToImage ();
float height = this.height;
float width = this.width;
if (height == -1)
height = image.Height;
if (width == -1)
width = image.Width;
dc.DrawImage (image, x, y, width, height);
dc.DrawImage (image, x, y, Width, Height);
}
public Image ToImage ()

View File

@ -21,6 +21,7 @@
//
// Authors:
// Peter Bartok (pbartok@novell.com)
// Karl Scowen <contact@scowencomputers.co.nz>
//
// COMPLETE
@ -60,10 +61,6 @@ namespace System.Windows.Forms.RTF {
private char prev_char;
private bool bump_line;
private Font font_list;
private Charset cur_charset;
private Stack charset_stack;
private Style styles;
@ -101,10 +98,7 @@ namespace System.Windows.Forms.RTF {
line_pos = 0;
prev_char = unchecked((char)-1);
bump_line = false;
font_list = null;
charset_stack = null;
cur_charset = new Charset();
charset_stack = new Stack();
destination_callbacks = new DestinationCallback();
class_callbacks = new ClassCallback();
@ -369,49 +363,52 @@ SkipCRLF:
GetToken2();
if (this.rtf_class == TokenClass.Text) {
this.minor = (Minor)this.cur_charset[(int)this.major];
if (encoding == null) {
if (encoding == null)
encoding = Encoding.GetEncoding (encoding_code_page);
}
encoded_text = new String (encoding.GetChars (new byte [] { (byte) this.major }));
}
if (this.cur_charset.Flags == CharsetFlags.None) {
return this.rtf_class;
}
if (CheckCMM (TokenClass.Control, Major.Unicode, Minor.UnicodeAnsiCodepage)) {
} else if (CheckCMM (TokenClass.Control, Major.Unicode, Minor.UnicodeAnsiCodepage)) {
encoding_code_page = param;
// fallback to the default one in case we have an invalid value
if (encoding_code_page < 0 || encoding_code_page > 65535)
encoding_code_page = DefaultEncodingCodePage;
}
if (((this.cur_charset.Flags & CharsetFlags.Read) != 0) && CheckCM(TokenClass.Control, Major.CharSet)) {
this.cur_charset.ReadMap();
} else if (((this.cur_charset.Flags & CharsetFlags.Switch) != 0) && CheckCMM(TokenClass.Control, Major.CharAttr, Minor.FontNum)) {
encoding = null;
} else if (CheckCMM(TokenClass.Control, Major.CharAttr, Minor.FontNum)) {
Font fp;
fp = Font.GetFont(this.font_list, this.param);
fp = Font.GetFont(this.fonts, this.param);
if (fp != null) {
if (fp.Name.StartsWith("Symbol")) {
this.cur_charset.ID = CharsetType.Symbol;
if (fp.Codepage != 0) {
if (fp.Codepage != encoding_code_page) {
encoding_code_page = fp.Codepage;
encoding = null;
}
} else {
this.cur_charset.ID = CharsetType.General;
var cp = CharsetToCodepage.Translate (fp.Charset);
if (cp != 0 && cp != encoding_code_page) {
encoding_code_page = cp;
encoding = null;
}
}
}
} else if (this.rtf_class == TokenClass.Group) {
switch(this.major) {
case Major.BeginGroup: {
charset_stack.Push(encoding_code_page);
break;
}
} else if (((this.cur_charset.Flags & CharsetFlags.Switch) != 0) && (this.rtf_class == TokenClass.Group)) {
switch(this.major) {
case Major.BeginGroup: {
this.charset_stack.Push(this.cur_charset);
break;
}
case Major.EndGroup: {
this.cur_charset = (Charset)this.charset_stack.Pop();
break;
case Major.EndGroup: {
if (charset_stack.Count > 0) {
encoding_code_page = (int)this.charset_stack.Pop();
} else {
encoding_code_page = DefaultEncodingCodePage;
}
if (encoding != null && encoding.CodePage != encoding_code_page)
encoding = null;
break;
}
}
}
@ -677,7 +674,10 @@ SkipCRLF:
font = new Font(rtf);
while ((rtf.rtf_class != TokenClass.EOF) && (!rtf.CheckCM(TokenClass.Text, (Major)';')) && (!rtf.CheckCM(TokenClass.Group, Major.EndGroup))) {
int depth = 0;
string untaggedName = null;
while ((rtf.rtf_class != TokenClass.EOF) && (!rtf.CheckCM(TokenClass.Text, (Major)';')) && depth >= 0) {
if (rtf.rtf_class == TokenClass.Control) {
switch(rtf.major) {
case Major.FontFamily: {
@ -734,6 +734,26 @@ SkipCRLF:
break;
}
case Major.Destination: {
switch (rtf.minor) {
case Minor.FontName:
untaggedName = ReadFontName (rtf);
break;
case Minor.FontAltName:
font.AltName = ReadFontName (rtf);
break;
default: {
#if RTF_DEBUG
Console.WriteLine ("Got unhandled Control.Destination.Minor: " + rtf.minor);
#endif
break;
}
}
break;
}
default: {
#if RTF_DEBUG
Console.WriteLine("ReadFontTbl: Unknown Control token " + rtf.major);
@ -742,22 +762,12 @@ SkipCRLF:
}
}
} else if (rtf.CheckCM(TokenClass.Group, Major.BeginGroup)) {
rtf.SkipGroup();
} else if (rtf.rtf_class == TokenClass.Text) {
StringBuilder sb;
sb = new StringBuilder();
while ((rtf.rtf_class != TokenClass.EOF) && (!rtf.CheckCM(TokenClass.Text, (Major)';')) && (!rtf.CheckCM(TokenClass.Group, Major.EndGroup)) && (!rtf.CheckCM(TokenClass.Group, Major.BeginGroup))) {
sb.Append((char)rtf.major);
rtf.GetToken();
}
if (rtf.CheckCM(TokenClass.Group, Major.EndGroup)) {
rtf.UngetToken();
}
font.Name = sb.ToString();
depth++;
} else if (rtf.CheckCM(TokenClass.Group, Major.EndGroup)) {
depth--;
} else if (rtf.rtf_class == TokenClass.Text)
{
font.Name = ReadFontName (rtf);
continue;
#if RTF_DEBUG
} else {
@ -768,6 +778,9 @@ SkipCRLF:
rtf.GetToken();
}
if (untaggedName != null)
font.Name = untaggedName;
if (old == 0) {
rtf.GetToken();
@ -788,6 +801,26 @@ SkipCRLF:
rtf.RouteToken();
}
private static String ReadFontName(RTF rtf)
{
StringBuilder sb = new StringBuilder ();
while (rtf.rtf_class != TokenClass.EOF && rtf.rtf_class != TokenClass.Text)
rtf.GetToken ();
while ((rtf.rtf_class != TokenClass.EOF) && (!rtf.CheckCM (TokenClass.Text, (Major)';')) && (!rtf.CheckCM(TokenClass.Group, Major.EndGroup)) &&
(!rtf.CheckCM (TokenClass.Group, Major.BeginGroup))) {
sb.Append ((char)rtf.major);
rtf.GetToken ();
}
if (rtf.CheckCM (TokenClass.Group, Major.EndGroup)) {
rtf.UngetToken();
}
return sb.ToString ();
}
private void ReadColorTbl(RTF rtf) {
Color color;
int num;
@ -943,20 +976,25 @@ SkipCRLF:
private void ReadPictGroup(RTF rtf)
{
bool read_image_data = false;
int groupDepth = 0;
Picture picture = new Picture ();
while (true) {
rtf.GetToken ();
if (rtf.CheckCM (TokenClass.Group, Major.BeginGroup))
groupDepth++;
if (rtf.CheckCM (TokenClass.Group, Major.EndGroup))
groupDepth--;
if (groupDepth < 0)
break;
switch (minor) {
case Minor.PngBlip:
picture.ImageType = minor;
read_image_data = true;
break;
case Minor.JpegBlip:
case Minor.WinMetafile:
case Minor.EnhancedMetafile:
picture.ImageType = minor;
read_image_data = true;
continue;
@ -1047,10 +1085,33 @@ SkipCRLF:
}
}
private void ReadObjGroup(RTF rtf) {
rtf.SkipGroup();
rtf.RouteToken();
private void ReadObjGroup (RTF rtf)
{
int level;
level = 1;
while (GetToken () != TokenClass.EOF && this.minor != Minor.ObjResult) {
if (rtf_class == TokenClass.Group) {
if (this.major == Major.BeginGroup) {
level++;
} else if (this.major == Major.EndGroup) {
level--;
if (level < 1) {
break;
}
}
}
}
if (level >= 1) {
GetToken ();
if (rtf_class == TokenClass.Group)
GetToken ();
rtf.RouteToken ();
}
}
#endregion // Default Delegates
}
}
}

View File

@ -1,392 +0,0 @@
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
// Copyright (c) 2005 Novell, Inc. (http://www.novell.com)
//
// Authors:
// Peter Bartok (pbartok@novell.com)
//
//
// COMPLETE
namespace System.Windows.Forms.RTF {
#if RTF_LIB
public
#else
internal
#endif
enum StandardCharCode {
nothing = 0,
space = 1,
exclam = 2,
quotedbl = 3,
numbersign = 4,
dollar = 5,
percent = 6,
ampersand = 7,
quoteright = 8,
parenleft = 9,
parenright = 10,
asterisk = 11,
plus = 12,
comma = 13,
hyphen = 14,
period = 15,
slash = 16,
zero = 17,
one = 18,
two = 19,
three = 20,
four = 21,
five = 22,
six = 23,
seven = 24,
eight = 25,
nine = 26,
colon = 27,
semicolon = 28,
less = 29,
equal = 30,
greater = 31,
question = 32,
at = 33,
A = 34,
B = 35,
C = 36,
D = 37,
E = 38,
F = 39,
G = 40,
H = 41,
I = 42,
J = 43,
K = 44,
L = 45,
M = 46,
N = 47,
O = 48,
P = 49,
Q = 50,
R = 51,
S = 52,
T = 53,
U = 54,
V = 55,
W = 56,
X = 57,
Y = 58,
Z = 59,
bracketleft = 60,
backslash = 61,
bracketright = 62,
asciicircum = 63,
underscore = 64,
quoteleft = 65,
a = 66,
b = 67,
c = 68,
d = 69,
e = 70,
f = 71,
g = 72,
h = 73,
i = 74,
j = 75,
k = 76,
l = 77,
m = 78,
n = 79,
o = 80,
p = 81,
q = 82,
r = 83,
s = 84,
t = 85,
u = 86,
v = 87,
w = 88,
x = 89,
y = 90,
z = 91,
braceleft = 92,
bar = 93,
braceright = 94,
asciitilde = 95,
exclamdown = 96,
cent = 97,
sterling = 98,
fraction = 99,
yen = 100,
florin = 101,
section = 102,
currency = 103,
quotedblleft = 104,
guillemotleft = 105,
guilsinglleft = 106,
guilsinglright = 107,
fi = 108,
fl = 109,
endash = 110,
dagger = 111,
daggerdbl = 112,
periodcentered = 113,
paragraph = 114,
bullet = 115,
quotesinglbase = 116,
quotedblbase = 117,
quotedblright = 118,
guillemotright = 119,
ellipsis = 120,
perthousand = 121,
questiondown = 122,
grave = 123,
acute = 124,
circumflex = 125,
tilde = 126,
macron = 127,
breve = 128,
dotaccent = 129,
dieresis = 130,
ring = 131,
cedilla = 132,
hungarumlaut = 133,
ogonek = 134,
caron = 135,
emdash = 136,
AE = 137,
ordfeminine = 138,
Lslash = 139,
Oslash = 140,
OE = 141,
ordmasculine = 142,
ae = 143,
dotlessi = 144,
lslash = 145,
oslash = 146,
oe = 147,
germandbls = 148,
Aacute = 149,
Acircumflex = 150,
Adieresis = 151,
Agrave = 152,
Aring = 153,
Atilde = 154,
Ccedilla = 155,
Eacute = 156,
Ecircumflex = 157,
Edieresis = 158,
Egrave = 159,
Eth = 160,
Iacute = 161,
Icircumflex = 162,
Idieresis = 163,
Igrave = 164,
Ntilde = 165,
Oacute = 166,
Ocircumflex = 167,
Odieresis = 168,
Ograve = 169,
Otilde = 170,
Scaron = 171,
Thorn = 172,
Uacute = 173,
Ucircumflex = 174,
Udieresis = 175,
Ugrave = 176,
Yacute = 177,
Ydieresis = 178,
aacute = 179,
acircumflex = 180,
adieresis = 181,
agrave = 182,
aring = 183,
atilde = 184,
brokenbar = 185,
ccedilla = 186,
copyright = 187,
degree = 188,
divide = 189,
eacute = 190,
ecircumflex = 191,
edieresis = 192,
egrave = 193,
eth = 194,
iacute = 195,
icircumflex = 196,
idieresis = 197,
igrave = 198,
logicalnot = 199,
minus = 200,
multiply = 201,
ntilde = 202,
oacute = 203,
ocircumflex = 204,
odieresis = 205,
ograve = 206,
onehalf = 207,
onequarter = 208,
onesuperior = 209,
otilde = 210,
plusminus = 211,
registered = 212,
thorn = 213,
threequarters = 214,
threesuperior = 215,
trademark = 216,
twosuperior = 217,
uacute = 218,
ucircumflex = 219,
udieresis = 220,
ugrave = 221,
yacute = 222,
ydieresis = 223,
Alpha = 224,
Beta = 225,
Chi = 226,
Delta = 227,
Epsilon = 228,
Phi = 229,
Gamma = 230,
Eta = 231,
Iota = 232,
Kappa = 233,
Lambda = 234,
Mu = 235,
Nu = 236,
Omicron = 237,
Pi = 238,
Theta = 239,
Rho = 240,
Sigma = 241,
Tau = 242,
Upsilon = 243,
varUpsilon = 244,
Omega = 245,
Xi = 246,
Psi = 247,
Zeta = 248,
alpha = 249,
beta = 250,
chi = 251,
delta = 252,
epsilon = 253,
phi = 254,
varphi = 255,
gamma = 256,
eta = 257,
iota = 258,
kappa = 259,
lambda = 260,
mu = 261,
nu = 262,
omicron = 263,
pi = 264,
varpi = 265,
theta = 266,
vartheta = 267,
rho = 268,
sigma = 269,
varsigma = 270,
tau = 271,
upsilon = 272,
omega = 273,
xi = 274,
psi = 275,
zeta = 276,
nobrkspace = 277,
nobrkhyphen = 278,
lessequal = 279,
greaterequal = 280,
infinity = 281,
integral = 282,
notequal = 283,
radical = 284,
radicalex = 285,
approxequal = 286,
apple = 287,
partialdiff = 288,
opthyphen = 289,
formula = 290,
lozenge = 291,
universal = 292,
existential = 293,
suchthat = 294,
congruent = 295,
therefore = 296,
perpendicular = 297,
minute = 298,
club = 299,
diamond = 300,
heart = 301,
spade = 302,
arrowboth = 303,
arrowleft = 304,
arrowup = 305,
arrowright = 306,
arrowdown = 307,
second = 308,
proportional = 309,
equivalence = 310,
arrowvertex = 311,
arrowhorizex = 312,
carriagereturn = 313,
aleph = 314,
Ifraktur = 315,
Rfraktur = 316,
weierstrass = 317,
circlemultiply = 318,
circleplus = 319,
emptyset = 320,
intersection = 321,
union = 322,
propersuperset = 323,
reflexsuperset = 324,
notsubset = 325,
propersubset = 326,
reflexsubset = 327,
element = 328,
notelement = 329,
angle = 330,
gradient = 331,
product = 332,
logicaland = 333,
logicalor = 334,
arrowdblboth = 335,
arrowdblleft = 336,
arrowdblup = 337,
arrowdblright = 338,
arrowdbldown = 339,
angleleft = 340,
registersans = 341,
copyrightsans = 342,
trademarksans = 343,
angleright = 344,
mathplus = 345,
mathminus = 346,
mathasterisk = 347,
mathnumbersign = 348,
dotmath = 349,
mathequal = 350,
mathtilde = 351,
MaxChar = 352
}
}

View File

@ -1,411 +0,0 @@
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
// Copyright (c) 2005 Novell, Inc. (http://www.novell.com)
//
// Authors:
// Peter Bartok (pbartok@novell.com)
//
//
// COMPLETE
namespace System.Windows.Forms.RTF {
#if RTF_LIB
public
#else
internal
#endif
class StandardCharName {
public static string[] Names = {
"nothing",
"space",
"exclam",
"quotedbl",
"numbersign",
"dollar",
"percent",
"ampersand",
"quoteright",
"parenleft",
"parenright",
"asterisk",
"plus",
"comma",
"hyphen",
"period",
"slash",
"zero",
"one",
"two",
"three",
"four",
"five",
"six",
"seven",
"eight",
"nine",
"colon",
"semicolon",
"less",
"equal",
"greater",
"question",
"at",
"A",
"B",
"C",
"D",
"E",
"F",
"G",
"H",
"I",
"J",
"K",
"L",
"M",
"N",
"O",
"P",
"Q",
"R",
"S",
"T",
"U",
"V",
"W",
"X",
"Y",
"Z",
"bracketleft",
"backslash",
"bracketright",
"asciicircum",
"underscore",
"quoteleft",
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"i",
"j",
"k",
"l",
"m",
"n",
"o",
"p",
"q",
"r",
"s",
"t",
"u",
"v",
"w",
"x",
"y",
"z",
"braceleft",
"bar",
"braceright",
"asciitilde",
"exclamdown",
"cent",
"sterling",
"fraction",
"yen",
"florin",
"section",
"currency",
"quotedblleft",
"guillemotleft",
"guilsinglleft",
"guilsinglright",
"fi",
"fl",
"endash",
"dagger",
"daggerdbl",
"periodcentered",
"paragraph",
"bullet",
"quotesinglbase",
"quotedblbase",
"quotedblright",
"guillemotright",
"ellipsis",
"perthousand",
"questiondown",
"grave",
"acute",
"circumflex",
"tilde",
"macron",
"breve",
"dotaccent",
"dieresis",
"ring",
"cedilla",
"hungarumlaut",
"ogonek",
"caron",
"emdash",
"AE",
"ordfeminine",
"Lslash",
"Oslash",
"OE",
"ordmasculine",
"ae",
"dotlessi",
"lslash",
"oslash",
"oe",
"germandbls",
"Aacute",
"Acircumflex",
"Adieresis",
"Agrave",
"Aring",
"Atilde",
"Ccedilla",
"Eacute",
"Ecircumflex",
"Edieresis",
"Egrave",
"Eth",
"Iacute",
"Icircumflex",
"Idieresis",
"Igrave",
"Ntilde",
"Oacute",
"Ocircumflex",
"Odieresis",
"Ograve",
"Otilde",
"Scaron",
"Thorn",
"Uacute",
"Ucircumflex",
"Udieresis",
"Ugrave",
"Yacute",
"Ydieresis",
"aacute",
"acircumflex",
"adieresis",
"agrave",
"aring",
"atilde",
"brokenbar",
"ccedilla",
"copyright",
"degree",
"divide",
"eacute",
"ecircumflex",
"edieresis",
"egrave",
"eth",
"iacute",
"icircumflex",
"idieresis",
"igrave",
"logicalnot",
"minus",
"multiply",
"ntilde",
"oacute",
"ocircumflex",
"odieresis",
"ograve",
"onehalf",
"onequarter",
"onesuperior",
"otilde",
"plusminus",
"registered",
"thorn",
"threequarters",
"threesuperior",
"trademark",
"twosuperior",
"uacute",
"ucircumflex",
"udieresis",
"ugrave",
"yacute",
"ydieresis",
"Alpha",
"Beta",
"Chi",
"Delta",
"Epsilon",
"Phi",
"Gamma",
"Eta",
"Iota",
"Kappa",
"Lambda",
"Mu",
"Nu",
"Omicron",
"Pi",
"Theta",
"Rho",
"Sigma",
"Tau",
"Upsilon",
"varUpsilon",
"Omega",
"Xi",
"Psi",
"Zeta",
"alpha",
"beta",
"chi",
"delta",
"epsilon",
"phi",
"varphi",
"gamma",
"eta",
"iota",
"kappa",
"lambda",
"mu",
"nu",
"omicron",
"pi",
"varpi",
"theta",
"vartheta",
"rho",
"sigma",
"varsigma",
"tau",
"upsilon",
"omega",
"xi",
"psi",
"zeta",
"nobrkspace",
"nobrkhyphen",
"lessequal",
"greaterequal",
"infinity",
"integral",
"notequal",
"radical",
"radicalex",
"approxequal",
"apple",
"partialdiff",
"opthyphen",
"formula",
"lozenge",
"universal",
"existential",
"suchthat",
"congruent",
"therefore",
"perpendicular",
"minute",
"club",
"diamond",
"heart",
"spade",
"arrowboth",
"arrowleft",
"arrowup",
"arrowright",
"arrowdown",
"second",
"proportional",
"equivalence",
"arrowvertex",
"arrowhorizex",
"carriagereturn",
"aleph",
"Ifraktur",
"Rfraktur",
"weierstrass",
"circlemultiply",
"circleplus",
"emptyset",
"intersection",
"union",
"propersuperset",
"reflexsuperset",
"notsubset",
"propersubset",
"reflexsubset",
"element",
"notelement",
"angle",
"gradient",
"product",
"logicaland",
"logicalor",
"arrowdblboth",
"arrowdblleft",
"arrowdblup",
"arrowdblright",
"arrowdbldown",
"angleleft",
"registersans",
"copyrightsans",
"trademarksans",
"angleright",
"mathplus",
"mathminus",
"mathasterisk",
"mathnumbersign",
"dotmath",
"mathequal",
"mathtilde"
};
/// <summary>Lookup name by ID</summary>
public static string Name(int index) {
if ((index < 0) || (index >= Names.Length)) {
return string.Empty;
}
return Names[index];
}
/// <summary>Lookup ID by name (e.g. mathtilde)</summary>
public static int ID(string name) {
for (int i=0; i < Names.Length; i++) {
if (name.Equals(Names[i])) {
return i;
}
}
return 0;
}
}
}

View File

@ -1,440 +0,0 @@
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
// Copyright (c) 2005 Novell, Inc. (http://www.novell.com)
//
// Authors:
// Peter Bartok (pbartok@novell.com)
//
//
// This map is for convencience only, any app can create/use it's own
// StdCharCode -> <text> table
using System.Collections;
namespace System.Windows.Forms.RTF {
#if RTF_LIB
public
#else
internal
#endif
class TextMap {
#region Local Variables
private string[] table;
#endregion // Local Variables
#region Public Constructors
public TextMap() {
table = new string[(int)StandardCharCode.MaxChar];
for (int i = 0; i < (int)StandardCharCode.MaxChar; i++) {
table[i] = string.Empty;
}
}
#endregion // Public Constructors
#region Public Instance Properties
internal string this[StandardCharCode c] { // FIXME - this should be public, if the whole namespace was public (ie standalone RTF parser)
get {
return table[(int)c];
}
set {
table[(int)c] = value;
}
}
public string[] Table {
get {
return table;
}
}
#endregion // Public Instance Properties
#region Public Static Methods
public static void SetupStandardTable(string[] table)
{
/*
table[(int)StandardCharCode.space] = " ";
table[(int)StandardCharCode.exclam] = "!";
table[(int)StandardCharCode.quotedbl] = "\"";
table[(int)StandardCharCode.numbersign] = "#";
table[(int)StandardCharCode.dollar] = "$";
table[(int)StandardCharCode.percent] = "%";
table[(int)StandardCharCode.ampersand] = "&";
table[(int)StandardCharCode.quoteright] = "'";
table[(int)StandardCharCode.parenleft] = "(";
table[(int)StandardCharCode.parenright] = ")";
table[(int)StandardCharCode.asterisk] = "*";
table[(int)StandardCharCode.plus] = "+";
table[(int)StandardCharCode.comma] = ",";
table[(int)StandardCharCode.hyphen] = "-";
table[(int)StandardCharCode.period] = ".";
table[(int)StandardCharCode.slash] = "/";
table[(int)StandardCharCode.zero] = "0";
table[(int)StandardCharCode.one] = "1";
table[(int)StandardCharCode.two] = "2";
table[(int)StandardCharCode.three] = "3";
table[(int)StandardCharCode.four] = "4";
table[(int)StandardCharCode.five] = "5";
table[(int)StandardCharCode.six] = "6";
table[(int)StandardCharCode.seven] = "7";
table[(int)StandardCharCode.eight] = "8";
table[(int)StandardCharCode.nine] = "9";
table[(int)StandardCharCode.colon] = ":";
table[(int)StandardCharCode.semicolon] = ";";
table[(int)StandardCharCode.less] = "<";
table[(int)StandardCharCode.equal] = "=";
table[(int)StandardCharCode.greater] = ">";
table[(int)StandardCharCode.question] = "?";
table[(int)StandardCharCode.at] = "@";
table[(int)StandardCharCode.A] = "A";
table[(int)StandardCharCode.B] = "B";
table[(int)StandardCharCode.C] = "C";
table[(int)StandardCharCode.D] = "D";
table[(int)StandardCharCode.E] = "E";
table[(int)StandardCharCode.F] = "F";
table[(int)StandardCharCode.G] = "G";
table[(int)StandardCharCode.H] = "H";
table[(int)StandardCharCode.I] = "I";
table[(int)StandardCharCode.J] = "J";
table[(int)StandardCharCode.K] = "K";
table[(int)StandardCharCode.L] = "L";
table[(int)StandardCharCode.M] = "M";
table[(int)StandardCharCode.N] = "N";
table[(int)StandardCharCode.O] = "O";
table[(int)StandardCharCode.P] = "P";
table[(int)StandardCharCode.Q] = "Q";
table[(int)StandardCharCode.R] = "R";
table[(int)StandardCharCode.S] = "S";
table[(int)StandardCharCode.T] = "T";
table[(int)StandardCharCode.U] = "U";
table[(int)StandardCharCode.V] = "V";
table[(int)StandardCharCode.W] = "W";
table[(int)StandardCharCode.X] = "X";
table[(int)StandardCharCode.Y] = "Y";
table[(int)StandardCharCode.Z] = "Z";
table[(int)StandardCharCode.bracketleft] = "[";
table[(int)StandardCharCode.backslash] = "\\";
table[(int)StandardCharCode.bracketright] = "]";
table[(int)StandardCharCode.asciicircum] = "^";
table[(int)StandardCharCode.underscore] = "_";
table[(int)StandardCharCode.quoteleft] = "`";
table[(int)StandardCharCode.a] = "a";
table[(int)StandardCharCode.b] = "b";
table[(int)StandardCharCode.c] = "c";
table[(int)StandardCharCode.d] = "d";
table[(int)StandardCharCode.e] = "e";
table[(int)StandardCharCode.f] = "f";
table[(int)StandardCharCode.g] = "g";
table[(int)StandardCharCode.h] = "h";
table[(int)StandardCharCode.i] = "i";
table[(int)StandardCharCode.j] = "j";
table[(int)StandardCharCode.k] = "k";
table[(int)StandardCharCode.l] = "l";
table[(int)StandardCharCode.m] = "m";
table[(int)StandardCharCode.n] = "n";
table[(int)StandardCharCode.o] = "o";
table[(int)StandardCharCode.p] = "p";
table[(int)StandardCharCode.q] = "q";
table[(int)StandardCharCode.r] = "r";
table[(int)StandardCharCode.s] = "s";
table[(int)StandardCharCode.t] = "t";
table[(int)StandardCharCode.u] = "u";
table[(int)StandardCharCode.v] = "v";
table[(int)StandardCharCode.w] = "w";
table[(int)StandardCharCode.x] = "x";
table[(int)StandardCharCode.y] = "y";
table[(int)StandardCharCode.z] = "z";
table[(int)StandardCharCode.braceleft] = "{";
table[(int)StandardCharCode.bar] = "|";
table[(int)StandardCharCode.braceright] = "}";
table[(int)StandardCharCode.asciitilde] = "~";
table[(int)StandardCharCode.AE] = "AE";
table[(int)StandardCharCode.OE] = "OE";
table[(int)StandardCharCode.acute] = "'";
table[(int)StandardCharCode.ae] = "ae";
table[(int)StandardCharCode.angleleft] = "<";
table[(int)StandardCharCode.angleright] = ">";
table[(int)StandardCharCode.arrowboth] = "<->";
table[(int)StandardCharCode.arrowdblboth] = "<=>";
table[(int)StandardCharCode.arrowdblleft] = "<=";
table[(int)StandardCharCode.arrowdblright] = "=>";
table[(int)StandardCharCode.arrowleft] = "<-";
table[(int)StandardCharCode.arrowright] = "->";
table[(int)StandardCharCode.bullet] = "o";
table[(int)StandardCharCode.cent] = "cent";
table[(int)StandardCharCode.circumflex] = "^";
table[(int)StandardCharCode.copyright] = "(c)";
table[(int)StandardCharCode.copyrightsans] = "(c)";
table[(int)StandardCharCode.degree] = "deg.";
table[(int)StandardCharCode.divide] = "/";
table[(int)StandardCharCode.dotlessi] = "i";
table[(int)StandardCharCode.ellipsis] = "...";
table[(int)StandardCharCode.emdash] = "--";
table[(int)StandardCharCode.endash] = "-";
table[(int)StandardCharCode.fi] = "fi";
table[(int)StandardCharCode.fl] = "fl";
table[(int)StandardCharCode.fraction] = "/";
table[(int)StandardCharCode.germandbls] = "ss";
table[(int)StandardCharCode.grave] = "`";
table[(int)StandardCharCode.greaterequal] = ">=";
table[(int)StandardCharCode.guillemotleft] = "<<";
table[(int)StandardCharCode.guillemotright] = ">>";
table[(int)StandardCharCode.guilsinglleft] = "<";
table[(int)StandardCharCode.guilsinglright] = ">";
table[(int)StandardCharCode.lessequal] = "<=";
table[(int)StandardCharCode.logicalnot] = "~";
table[(int)StandardCharCode.mathasterisk] = "*";
table[(int)StandardCharCode.mathequal] = "=";
table[(int)StandardCharCode.mathminus] = "-";
table[(int)StandardCharCode.mathnumbersign] = "#";
table[(int)StandardCharCode.mathplus] = "+";
table[(int)StandardCharCode.mathtilde] = "~";
table[(int)StandardCharCode.minus] = "-";
table[(int)StandardCharCode.mu] = "u";
table[(int)StandardCharCode.multiply] = "x";
table[(int)StandardCharCode.nobrkhyphen] = "-";
table[(int)StandardCharCode.nobrkspace] = "";
table[(int)StandardCharCode.notequal] = "!=";
table[(int)StandardCharCode.oe] = "oe";
table[(int)StandardCharCode.onehalf] = "1/2";
table[(int)StandardCharCode.onequarter] = "1/4";
table[(int)StandardCharCode.periodcentered] = ".";
table[(int)StandardCharCode.plusminus] = "+/-";
table[(int)StandardCharCode.quotedblbase] = ",,";
table[(int)StandardCharCode.quotedblleft] = "\"";
table[(int)StandardCharCode.quotedblright] = "\"";
table[(int)StandardCharCode.quotesinglbase] = ",";
table[(int)StandardCharCode.registered] = "reg.";
table[(int)StandardCharCode.registersans] = "reg.";
table[(int)StandardCharCode.threequarters] = "3/4";
table[(int)StandardCharCode.tilde] = "~";
table[(int)StandardCharCode.trademark] = "(TM)";
table[(int)StandardCharCode.trademarksans] = "(TM)";
table[(int)StandardCharCode.aacute] = "\xE0";
table[(int)StandardCharCode.questiondown] = "\xBF";
table[(int)StandardCharCode.udieresis] = "\xFC";
table[(int)StandardCharCode.Udieresis] = "\xDC";
table[(int)StandardCharCode.odieresis] = "\xF6";
table[(int)StandardCharCode.Odieresis] = "\xD6";
*/
table [(int) StandardCharCode.formula] = "\x6";
table [(int) StandardCharCode.nobrkhyphen] = "\x1e";
table [(int) StandardCharCode.opthyphen] = "\x1f";
table [(int) StandardCharCode.space] = " ";
table [(int) StandardCharCode.exclam] = "!";
table [(int) StandardCharCode.quotedbl] = "\"";
table [(int) StandardCharCode.numbersign] = "#";
table [(int) StandardCharCode.dollar] = "$";
table [(int) StandardCharCode.percent] = "%";
table [(int) StandardCharCode.ampersand] = "&";
table [(int) StandardCharCode.parenleft] = "(";
table [(int) StandardCharCode.parenright] = ")";
table [(int) StandardCharCode.asterisk] = "*";
table [(int) StandardCharCode.plus] = "+";
table [(int) StandardCharCode.comma] = ",";
table [(int) StandardCharCode.hyphen] = "-";
table [(int) StandardCharCode.period] = ".";
table [(int) StandardCharCode.slash] = "/";
table [(int) StandardCharCode.zero] = "0";
table [(int) StandardCharCode.one] = "1";
table [(int) StandardCharCode.two] = "2";
table [(int) StandardCharCode.three] = "3";
table [(int) StandardCharCode.four] = "4";
table [(int) StandardCharCode.five] = "5";
table [(int) StandardCharCode.six] = "6";
table [(int) StandardCharCode.seven] = "7";
table [(int) StandardCharCode.eight] = "8";
table [(int) StandardCharCode.nine] = "9";
table [(int) StandardCharCode.colon] = ":";
table [(int) StandardCharCode.semicolon] = ";";
table [(int) StandardCharCode.less] = "<";
table [(int) StandardCharCode.equal] = "=";
table [(int) StandardCharCode.greater] = ">";
table [(int) StandardCharCode.question] = "?";
table [(int) StandardCharCode.at] = "@";
table [(int) StandardCharCode.A] = "A";
table [(int) StandardCharCode.B] = "B";
table [(int) StandardCharCode.C] = "C";
table [(int) StandardCharCode.D] = "D";
table [(int) StandardCharCode.E] = "E";
table [(int) StandardCharCode.F] = "F";
table [(int) StandardCharCode.G] = "G";
table [(int) StandardCharCode.H] = "H";
table [(int) StandardCharCode.I] = "I";
table [(int) StandardCharCode.J] = "J";
table [(int) StandardCharCode.K] = "K";
table [(int) StandardCharCode.L] = "L";
table [(int) StandardCharCode.M] = "M";
table [(int) StandardCharCode.N] = "N";
table [(int) StandardCharCode.O] = "O";
table [(int) StandardCharCode.P] = "P";
table [(int) StandardCharCode.Q] = "Q";
table [(int) StandardCharCode.R] = "R";
table [(int) StandardCharCode.S] = "S";
table [(int) StandardCharCode.T] = "T";
table [(int) StandardCharCode.U] = "U";
table [(int) StandardCharCode.V] = "V";
table [(int) StandardCharCode.W] = "W";
table [(int) StandardCharCode.X] = "X";
table [(int) StandardCharCode.Y] = "Y";
table [(int) StandardCharCode.Z] = "Z";
table [(int) StandardCharCode.bracketleft] = "[";
table [(int) StandardCharCode.backslash] = "\\";
table [(int) StandardCharCode.bracketright] = "]";
table [(int) StandardCharCode.asciicircum] = "^";
table [(int) StandardCharCode.underscore] = "_";
table [(int) StandardCharCode.quoteleft] = "`";
table [(int) StandardCharCode.a] = "a";
table [(int) StandardCharCode.b] = "b";
table [(int) StandardCharCode.c] = "c";
table [(int) StandardCharCode.d] = "d";
table [(int) StandardCharCode.e] = "e";
table [(int) StandardCharCode.f] = "f";
table [(int) StandardCharCode.g] = "g";
table [(int) StandardCharCode.h] = "h";
table [(int) StandardCharCode.i] = "i";
table [(int) StandardCharCode.j] = "j";
table [(int) StandardCharCode.k] = "k";
table [(int) StandardCharCode.l] = "l";
table [(int) StandardCharCode.m] = "m";
table [(int) StandardCharCode.n] = "n";
table [(int) StandardCharCode.o] = "o";
table [(int) StandardCharCode.p] = "p";
table [(int) StandardCharCode.q] = "q";
table [(int) StandardCharCode.r] = "r";
table [(int) StandardCharCode.s] = "s";
table [(int) StandardCharCode.t] = "t";
table [(int) StandardCharCode.u] = "u";
table [(int) StandardCharCode.v] = "v";
table [(int) StandardCharCode.w] = "w";
table [(int) StandardCharCode.x] = "x";
table [(int) StandardCharCode.y] = "y";
table [(int) StandardCharCode.z] = "z";
table [(int) StandardCharCode.braceleft] = "{";
table [(int) StandardCharCode.bar] = "|";
table [(int) StandardCharCode.braceright] = "}";
table [(int) StandardCharCode.asciitilde] = "~";
table [(int) StandardCharCode.nobrkspace] = "\xa0";
table [(int) StandardCharCode.exclamdown] = "\xa1";
table [(int) StandardCharCode.cent] = "\xa2";
table [(int) StandardCharCode.sterling] = "\xa3";
table [(int) StandardCharCode.currency] = "\xa4";
table [(int) StandardCharCode.yen] = "\xa5";
table [(int) StandardCharCode.brokenbar] = "\xa6";
table [(int) StandardCharCode.section] = "\xa7";
table [(int) StandardCharCode.dieresis] = "\xa8";
table [(int) StandardCharCode.copyright] = "\xa9";
table [(int) StandardCharCode.ordfeminine] = "\xaa";
table [(int) StandardCharCode.guillemotleft] = "\xab";
table [(int) StandardCharCode.logicalnot] = "\xac";
table [(int) StandardCharCode.opthyphen] = "\xad";
table [(int) StandardCharCode.registered] = "\xae";
table [(int) StandardCharCode.macron] = "\xaf";
table [(int) StandardCharCode.degree] = "\xb0";
table [(int) StandardCharCode.plusminus] = "\xb1";
table [(int) StandardCharCode.twosuperior] = "\xb2";
table [(int) StandardCharCode.threesuperior] = "\xb3";
table [(int) StandardCharCode.acute] = "\xb4";
table [(int) StandardCharCode.mu] = "\xb5";
table [(int) StandardCharCode.paragraph] = "\xb6";
table [(int) StandardCharCode.periodcentered] = "\xb7";
table [(int) StandardCharCode.cedilla] = "\xb8";
table [(int) StandardCharCode.onesuperior] = "\xb9";
table [(int) StandardCharCode.ordmasculine] = "\xba";
table [(int) StandardCharCode.guillemotright] = "\xbb";
table [(int) StandardCharCode.onequarter] = "\xbc";
table [(int) StandardCharCode.onehalf] = "\xbd";
table [(int) StandardCharCode.threequarters] = "\xbe";
table [(int) StandardCharCode.questiondown] = "\xbf";
table [(int) StandardCharCode.Agrave] = "\xc0";
table [(int) StandardCharCode.Aacute] = "\xc1";
table [(int) StandardCharCode.Acircumflex] = "\xc2";
table [(int) StandardCharCode.Atilde] = "\xc3";
table [(int) StandardCharCode.Adieresis] = "\xc4";
table [(int) StandardCharCode.Aring] = "\xc5";
table [(int) StandardCharCode.AE] = "\xc6";
table [(int) StandardCharCode.Ccedilla] = "\xc7";
table [(int) StandardCharCode.Egrave] = "\xc8";
table [(int) StandardCharCode.Eacute] = "\xc9";
table [(int) StandardCharCode.Ecircumflex] = "\xca";
table [(int) StandardCharCode.Edieresis] = "\xcb";
table [(int) StandardCharCode.Igrave] = "\xcc";
table [(int) StandardCharCode.Iacute] = "\xcd";
table [(int) StandardCharCode.Icircumflex] = "\xce";
table [(int) StandardCharCode.Idieresis] = "\xcf";
table [(int) StandardCharCode.Eth] = "\xd0";
table [(int) StandardCharCode.Ntilde] = "\xd1";
table [(int) StandardCharCode.Ograve] = "\xd2";
table [(int) StandardCharCode.Oacute] = "\xd3";
table [(int) StandardCharCode.Ocircumflex] = "\xd4";
table [(int) StandardCharCode.Otilde] = "\xd5";
table [(int) StandardCharCode.Odieresis] = "\xd6";
table [(int) StandardCharCode.multiply] = "\xd7";
table [(int) StandardCharCode.Oslash] = "\xd8";
table [(int) StandardCharCode.Ugrave] = "\xd9";
table [(int) StandardCharCode.Uacute] = "\xda";
table [(int) StandardCharCode.Ucircumflex] = "\xdb";
table [(int) StandardCharCode.Udieresis] = "\xdc";
table [(int) StandardCharCode.Yacute] = "\xdd";
table [(int) StandardCharCode.Thorn] = "\xde";
table [(int) StandardCharCode.germandbls] = "\xdf";
table [(int) StandardCharCode.agrave] = "\xe0";
table [(int) StandardCharCode.aacute] = "\xe1";
table [(int) StandardCharCode.acircumflex] = "\xe2";
table [(int) StandardCharCode.atilde] = "\xe3";
table [(int) StandardCharCode.adieresis] = "\xe4";
table [(int) StandardCharCode.aring] = "\xe5";
table [(int) StandardCharCode.ae] = "\xe6";
table [(int) StandardCharCode.ccedilla] = "\xe7";
table [(int) StandardCharCode.egrave] = "\xe8";
table [(int) StandardCharCode.eacute] = "\xe9";
table [(int) StandardCharCode.ecircumflex] = "\xea";
table [(int) StandardCharCode.edieresis] = "\xeb";
table [(int) StandardCharCode.igrave] = "\xec";
table [(int) StandardCharCode.iacute] = "\xed";
table [(int) StandardCharCode.icircumflex] = "\xee";
table [(int) StandardCharCode.idieresis] = "\xef";
table [(int) StandardCharCode.eth] = "\xf0";
table [(int) StandardCharCode.ntilde] = "\xf1";
table [(int) StandardCharCode.ograve] = "\xf2";
table [(int) StandardCharCode.oacute] = "\xf3";
table [(int) StandardCharCode.ocircumflex] = "\xf4";
table [(int) StandardCharCode.otilde] = "\xf5";
table [(int) StandardCharCode.odieresis] = "\xf6";
table [(int) StandardCharCode.divide] = "\xf7";
table [(int) StandardCharCode.oslash] = "\xf8";
table [(int) StandardCharCode.ugrave] = "\xf9";
table [(int) StandardCharCode.uacute] = "\xfa";
table [(int) StandardCharCode.ucircumflex] = "\xfb";
table [(int) StandardCharCode.udieresis] = "\xfc";
table [(int) StandardCharCode.yacute] = "\xfd";
table [(int) StandardCharCode.thorn] = "\xfe";
table [(int) StandardCharCode.ydieresis] = "\xff";
}
#endregion // Public Static Methods
}
}