charconvfw/Charconvplugin/src/G_iscii.cpp
changeset 0 1fb32624e06b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/charconvfw/Charconvplugin/src/G_iscii.cpp	Tue Feb 02 02:02:46 2010 +0200
@@ -0,0 +1,856 @@
+/*
+* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:    
+*
+*/
+
+
+
+
+#include <e32std.h>
+#include <convdata.h>
+#include <convgeneratedcpp.h>
+
+#define ARRAY_LENGTH(aArray) (sizeof(aArray)/sizeof((aArray)[0]))
+
+#pragma warning (disable: 4049) // compiler limit : terminating line number emission
+
+_LIT8(KLit8ReplacementForUnconvertibleUnicodeCharacters, "\x1a");
+
+GLDEF_C const TDesC8& ReplacementForUnconvertibleUnicodeCharacters_internal()
+	{
+	return KLit8ReplacementForUnconvertibleUnicodeCharacters;
+	}
+
+LOCAL_D const SCnvConversionData::SOneDirectionData::SRange::UData::SIndexedTable16::SEntry indexedTable16_foreignToUnicode_1[]=
+	{
+		{
+		0x090e
+		},
+		{
+		0x090f
+		},
+		{
+		0x0910
+		},
+		{
+		0x090d
+		},
+		{
+		0x0912
+		},
+		{
+		0x0913
+		},
+		{
+		0x0914
+		},
+		{
+		0x0911
+		}
+	};
+
+LOCAL_D const SCnvConversionData::SOneDirectionData::SRange::UData::SIndexedTable16::SEntry indexedTable16_foreignToUnicode_2[]=
+	{
+		{
+		0x0946
+		},
+		{
+		0x0947
+		},
+		{
+		0x0948
+		},
+		{
+		0x0945
+		},
+		{
+		0x094a
+		},
+		{
+		0x094b
+		},
+		{
+		0x094c
+		},
+		{
+		0x0949
+		},
+		{
+		0x094d
+		},
+		{
+		0x093c
+		},
+		{
+		0x0964
+		}
+	};
+
+LOCAL_D const SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable1616::SEntry keyedTable1616_foreignToUnicode_1[]=
+	{
+		{
+		0x80,
+		0x0960
+		},
+		{
+		0x81,
+		0x0961
+		},
+		{
+		0x82,
+		0x0962
+		},
+		{
+		0x83,
+		0x0963
+		},
+		{
+		0x84,
+		0x090c
+		},
+		{
+		0x85,
+		0x0944
+		}
+	};
+
+LOCAL_D const SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable1616::SEntry keyedTable1616_foreignToUnicode_2[]=
+	{
+		{
+		0xa1,
+		0x0901
+		},
+		{
+		0xa2,
+		0x0902
+		},
+		{
+		0xa3,
+		0x0903
+		},
+		{
+		0xa4,
+		0x0905
+		}
+	};
+
+LOCAL_D const SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable1616::SEntry keyedTable1616_foreignToUnicode_3[]=
+	{
+		{
+		0xce,
+		0x095f
+		},
+		{
+		0xcf,
+		0x0930
+		}
+	};
+
+LOCAL_D const SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable1616::SEntry keyedTable1616_foreignToUnicode_4[]=
+	{
+		{
+		0xd9,
+		0x00a0
+		},
+		{
+		0xda,
+		0x093e
+		}
+	};
+
+LOCAL_D const SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable1616::SEntry keyedTable1616_foreignToUnicode_5[]=
+	{
+		{
+		0xfc,
+		0x200c
+		},
+		{
+		0xfd,
+		0x200d
+		},
+		{
+		0xfe,
+		0x0950
+		},
+		{
+		0xff,
+		0x093d
+		}
+	};
+
+LOCAL_D const SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable1616::SEntry keyedTable1616_foreignToUnicode_6[]=
+	{
+		{
+		0xa1e9,
+		0x0950
+		},
+		{
+		0xa6e9,
+		0x090c
+		},
+		{
+		0xa7e9,
+		0x0961
+		},
+		{
+		0xaae9,
+		0x0960
+		},
+		{
+		0xb3e9,
+		0x0958
+		},
+		{
+		0xb4e9,
+		0x0959
+		},
+		{
+		0xb5e9,
+		0x095a
+		},
+		{
+		0xbae9,
+		0x095b
+		},
+		{
+		0xbfe9,
+		0x095c
+		},
+		{
+		0xc0e9,
+		0x095d
+		},
+		{
+		0xc9e9,
+		0x095e
+		},
+		{
+		0xdbe9,
+		0x0962
+		},
+		{
+		0xdce9,
+		0x0963
+		},
+		{
+		0xdfe9,
+		0x0944
+		},
+		{
+		0xeae9,
+		0x093d
+		}
+	};
+
+LOCAL_D const SCnvConversionData::SOneDirectionData::SRange::UData::SIndexedTable16::SEntry indexedTable16_unicodeToForeign_1[]=
+	{
+		{
+		0xae
+		},
+		{
+		0xab
+		},
+		{
+		0xac
+		},
+		{
+		0xad
+		},
+		{
+		0xb2
+		},
+		{
+		0xaf
+		},
+		{
+		0xb0
+		},
+		{
+		0xb1
+		}
+	};
+
+LOCAL_D const SCnvConversionData::SOneDirectionData::SRange::UData::SIndexedTable16::SEntry indexedTable16_unicodeToForeign_2[]=
+	{
+		{
+		0xe3
+		},
+		{
+		0xe0
+		},
+		{
+		0xe1
+		},
+		{
+		0xe2
+		},
+		{
+		0xe7
+		},
+		{
+		0xe4
+		},
+		{
+		0xe5
+		},
+		{
+		0xe6
+		},
+		{
+		0xe8
+		}
+	};
+
+LOCAL_D const SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable1616::SEntry keyedTable1616_unicodeToForeign_1[]=
+	{
+		{
+		0x0901,
+		0xa1
+		},
+		{
+		0x0902,
+		0xa2
+		},
+		{
+		0x0903,
+		0xa3
+		},
+		{
+		0x0905,
+		0xa4
+		}
+	};
+
+LOCAL_D const SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable1616::SEntry keyedTable1616_unicodeToForeign_2[]=
+	{
+		{
+		0x0930,
+		0xcf
+		},
+		{
+		0x0931,
+		0xd0
+		},
+		{
+		0x0932,
+		0xd1
+		},
+		{
+		0x0933,
+		0xd2
+		},
+		{
+		0x0934,
+		0xd3
+		},
+		{
+		0x0935,
+		0xd4
+		},
+		{
+		0x0936,
+		0xd5
+		},
+		{
+		0x0937,
+		0xd6
+		},
+		{
+		0x0938,
+		0xd7
+		},
+		{
+		0x0939,
+		0xd8
+		},
+		{
+		0x093c,
+		0xe9
+		}
+	};
+
+LOCAL_D const SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable1616::SEntry keyedTable1616_unicodeToForeign_3[]=
+	{
+		{
+		0x095f,
+		0xce
+		}
+	};
+
+LOCAL_D const SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable1616::SEntry keyedTable1616_unicodeToForeign_4[]=
+	{
+		{
+		0x0964,
+		0xea
+		}
+	};
+
+LOCAL_D const SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable1616::SEntry keyedTable1616_unicodeToForeign_5[]=
+	{
+		{
+		0x200c,
+		0xe8
+		},
+		{
+		0x200d,
+		0xe9
+		}
+	};
+
+LOCAL_D const SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable1616::SEntry keyedTable1616_unicodeToForeign_6[]=
+	{
+		{
+		0x00a0,
+		0xd9
+		}
+	};
+
+LOCAL_D const SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable1616::SEntry keyedTable1616_unicodeToForeign_7[]=
+	{
+		{
+		0x0960,
+		0xaae9
+		},
+		{
+		0x0961,
+		0xa7e9
+		},
+		{
+		0x0962,
+		0xdbe9
+		},
+		{
+		0x0963,
+		0xdce9
+		}
+	};
+
+LOCAL_D const SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable1616::SEntry keyedTable1616_unicodeToForeign_8[]=
+	{
+		{
+		0x0950,
+		0xa1e9
+		},
+		{
+		0x0958,
+		0xb3e9
+		},
+		{
+		0x0959,
+		0xb4e9
+		},
+		{
+		0x095a,
+		0xb5e9
+		},
+		{
+		0x095b,
+		0xbae9
+		},
+		{
+		0x095c,
+		0xbfe9
+		},
+		{
+		0x095d,
+		0xc0e9
+		},
+		{
+		0x095e,
+		0xc9e9
+		}
+	};
+
+LOCAL_D const SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable1616::SEntry keyedTable1616_unicodeToForeign_9[]=
+	{
+		{
+		0x093d,
+		0xeae9
+		}
+	};
+
+LOCAL_D const SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable1616::SEntry keyedTable1616_unicodeToForeign_10[]=
+	{
+		{
+		0x0944,
+		0xdfe9
+		}
+	};
+
+LOCAL_D const SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable1616::SEntry keyedTable1616_unicodeToForeign_11[]=
+	{
+		{
+		0x090c,
+		0xa6e9
+		}
+	};
+
+LOCAL_D const SCnvConversionData::SVariableByteData::SRange foreignVariableByteDataRanges[]=
+	{
+		{
+		0x00,
+		0xff,
+		0,
+		0
+		}
+	};
+
+LOCAL_D const SCnvConversionData::SOneDirectionData::SRange foreignToUnicodeDataRanges[]=
+	{
+		{
+		0x00,
+		0x7f,
+		SCnvConversionData::SOneDirectionData::SRange::EDirect,
+		0,
+		0,
+			{
+			0
+			}
+		},
+		{
+		0x80,
+		0x85,
+		SCnvConversionData::SOneDirectionData::SRange::EKeyedTable1616,
+		0,
+		0,
+			{
+			UData_SKeyedTable1616(keyedTable1616_foreignToUnicode_1)
+			}
+		},
+		{
+		0xa1,
+		0xa4,
+		SCnvConversionData::SOneDirectionData::SRange::EKeyedTable1616,
+		0,
+		0,
+			{
+			UData_SKeyedTable1616(keyedTable1616_foreignToUnicode_2)
+			}
+		},
+		{
+		0xa5,
+		0xaa,
+		SCnvConversionData::SOneDirectionData::SRange::EOffset,
+		0,
+		0,
+			{
+			STATIC_CAST(TUint, 2145)
+			}
+		},
+		{
+		0xab,
+		0xb2,
+		SCnvConversionData::SOneDirectionData::SRange::EIndexedTable16,
+		0,
+		0,
+			{
+			UData_SIndexedTable16(indexedTable16_foreignToUnicode_1)
+			}
+		},
+		{
+		0xb3,
+		0xcd,
+		SCnvConversionData::SOneDirectionData::SRange::EOffset,
+		0,
+		0,
+			{
+			STATIC_CAST(TUint, 2146)
+			}
+		},
+		{
+		0xce,
+		0xcf,
+		SCnvConversionData::SOneDirectionData::SRange::EKeyedTable1616,
+		0,
+		0,
+			{
+			UData_SKeyedTable1616(keyedTable1616_foreignToUnicode_3)
+			}
+		},
+		{
+		0xd0,
+		0xd8,
+		SCnvConversionData::SOneDirectionData::SRange::EOffset,
+		0,
+		0,
+			{
+			STATIC_CAST(TUint, 2145)
+			}
+		},
+		{
+		0xd9,
+		0xda,
+		SCnvConversionData::SOneDirectionData::SRange::EKeyedTable1616,
+		0,
+		0,
+			{
+			UData_SKeyedTable1616(keyedTable1616_foreignToUnicode_4)
+			}
+		},
+		{
+		0xdb,
+		0xdf,
+		SCnvConversionData::SOneDirectionData::SRange::EOffset,
+		0,
+		0,
+			{
+			STATIC_CAST(TUint, 2148)
+			}
+		},
+		{
+		0xe0,
+		0xea,
+		SCnvConversionData::SOneDirectionData::SRange::EIndexedTable16,
+		0,
+		0,
+			{
+			UData_SIndexedTable16(indexedTable16_foreignToUnicode_2)
+			}
+		},
+		{
+		0xf1,
+		0xfa,
+		SCnvConversionData::SOneDirectionData::SRange::EOffset,
+		0,
+		0,
+			{
+			STATIC_CAST(TUint, 2165)
+			}
+		},
+		{
+		0xfc,
+		0xff,
+		SCnvConversionData::SOneDirectionData::SRange::EKeyedTable1616,
+		0,
+		0,
+			{
+			UData_SKeyedTable1616(keyedTable1616_foreignToUnicode_5)
+			}
+		},
+		{
+		0xa1e9,
+		0xeae9,
+		SCnvConversionData::SOneDirectionData::SRange::EKeyedTable1616,
+		0,
+		0,
+			{
+			UData_SKeyedTable1616(keyedTable1616_foreignToUnicode_6)
+			}
+		}
+	};
+
+LOCAL_D const SCnvConversionData::SOneDirectionData::SRange unicodeToForeignDataRanges[]=
+	{
+		{
+		0x0000,
+		0x007f,
+		SCnvConversionData::SOneDirectionData::SRange::EDirect,
+		1,
+		0,
+			{
+			0
+			}
+		},
+		{
+		0x0901,
+		0x0905,
+		SCnvConversionData::SOneDirectionData::SRange::EKeyedTable1616,
+		1,
+		0,
+			{
+			UData_SKeyedTable1616(keyedTable1616_unicodeToForeign_1)
+			}
+		},
+		{
+		0x0906,
+		0x090b,
+		SCnvConversionData::SOneDirectionData::SRange::EOffset,
+		1,
+		0,
+			{
+			STATIC_CAST(TUint, -2145)
+			}
+		},
+		{
+		0x090d,
+		0x0914,
+		SCnvConversionData::SOneDirectionData::SRange::EIndexedTable16,
+		1,
+		0,
+			{
+			UData_SIndexedTable16(indexedTable16_unicodeToForeign_1)
+			}
+		},
+		{
+		0x0915,
+		0x092f,
+		SCnvConversionData::SOneDirectionData::SRange::EOffset,
+		1,
+		0,
+			{
+			STATIC_CAST(TUint, -2146)
+			}
+		},
+		{
+		0x0930,
+		0x093c,
+		SCnvConversionData::SOneDirectionData::SRange::EKeyedTable1616,
+		1,
+		0,
+			{
+			UData_SKeyedTable1616(keyedTable1616_unicodeToForeign_2)
+			}
+		},
+		{
+		0x093e,
+		0x0943,
+		SCnvConversionData::SOneDirectionData::SRange::EOffset,
+		1,
+		0,
+			{
+			STATIC_CAST(TUint, -2148)
+			}
+		},
+		{
+		0x0945,
+		0x094d,
+		SCnvConversionData::SOneDirectionData::SRange::EIndexedTable16,
+		1,
+		0,
+			{
+			UData_SIndexedTable16(indexedTable16_unicodeToForeign_2)
+			}
+		},
+		{
+		0x095f,
+		0x095f,
+		SCnvConversionData::SOneDirectionData::SRange::EKeyedTable1616,
+		1,
+		0,
+			{
+			UData_SKeyedTable1616(keyedTable1616_unicodeToForeign_3)
+			}
+		},
+		{
+		0x0964,
+		0x0964,
+		SCnvConversionData::SOneDirectionData::SRange::EKeyedTable1616,
+		1,
+		0,
+			{
+			UData_SKeyedTable1616(keyedTable1616_unicodeToForeign_4)
+			}
+		},
+		{
+		0x0966,
+		0x096f,
+		SCnvConversionData::SOneDirectionData::SRange::EOffset,
+		1,
+		0,
+			{
+			STATIC_CAST(TUint, -2165)
+			}
+		},
+		{
+		0x200c,
+		0x200d,
+		SCnvConversionData::SOneDirectionData::SRange::EKeyedTable1616,
+		1,
+		0,
+			{
+			UData_SKeyedTable1616(keyedTable1616_unicodeToForeign_5)
+			}
+		},
+		{
+		0x00a0,
+		0x00a0,
+		SCnvConversionData::SOneDirectionData::SRange::EKeyedTable1616,
+		1,
+		0,
+			{
+			UData_SKeyedTable1616(keyedTable1616_unicodeToForeign_6)
+			}
+		},
+		{
+		0x0960,
+		0x0963,
+		SCnvConversionData::SOneDirectionData::SRange::EKeyedTable1616,
+		2,
+		0,
+			{
+			UData_SKeyedTable1616(keyedTable1616_unicodeToForeign_7)
+			}
+		},
+		{
+		0x0950,
+		0x095e,
+		SCnvConversionData::SOneDirectionData::SRange::EKeyedTable1616,
+		2,
+		0,
+			{
+			UData_SKeyedTable1616(keyedTable1616_unicodeToForeign_8)
+			}
+		},
+		{
+		0x093d,
+		0x093d,
+		SCnvConversionData::SOneDirectionData::SRange::EKeyedTable1616,
+		2,
+		0,
+			{
+			UData_SKeyedTable1616(keyedTable1616_unicodeToForeign_9)
+			}
+		},
+		{
+		0x0944,
+		0x0944,
+		SCnvConversionData::SOneDirectionData::SRange::EKeyedTable1616,
+		2,
+		0,
+			{
+			UData_SKeyedTable1616(keyedTable1616_unicodeToForeign_10)
+			}
+		},
+		{
+		0x090c,
+		0x090c,
+		SCnvConversionData::SOneDirectionData::SRange::EKeyedTable1616,
+		2,
+		0,
+			{
+			UData_SKeyedTable1616(keyedTable1616_unicodeToForeign_11)
+			}
+		}
+	};
+
+GLDEF_D const SCnvConversionData conversionData=
+	{
+	SCnvConversionData::EFixedBigEndian,
+		{
+		ARRAY_LENGTH(foreignVariableByteDataRanges),
+		foreignVariableByteDataRanges
+		},
+		{
+		ARRAY_LENGTH(foreignToUnicodeDataRanges),
+		foreignToUnicodeDataRanges
+		},
+		{
+		ARRAY_LENGTH(unicodeToForeignDataRanges),
+		unicodeToForeignDataRanges
+		},
+	NULL,
+	NULL
+	};
+