diff -r 000000000000 -r 1fb32624e06b charconvfw/Charconvplugin/src/G_iscii.cpp --- /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 +#include +#include + +#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 + }; +