charconvfw/Charconvplugin/src/G_KOI8R.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 16 Apr 2010 16:55:07 +0300
changeset 16 56cd22a7a1cb
parent 0 1fb32624e06b
permissions -rw-r--r--
Revision: 201011 Kit: 201015

/*
* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies). 
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the License "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 TUint16 keyedTables16OfIndexedTables16_indexedEntries_foreignToUnicode_1[]=
	{
	0x2500,
	0x2502,
	0x250c,
	0x2510,
	0x2514,
	0x2518,
	0x251c,
	0x2524,
	0x252c,
	0x2534,
	0x253c,
	0x2580,
	0x2584,
	0x2588,
	0x258c,
	0x2590,
	0x2591,
	0x2592,
	0x2593,
	0x2320,
	0x25a0,
	0x2219,
	0x221a,
	0x2248,
	0x2264,
	0x2265
	};

LOCAL_D const TUint16 keyedTables16OfIndexedTables16_indexedEntries_foreignToUnicode_2[]=
	{
	0x2321,
	0x00b0,
	0x00b2,
	0x00b7,
	0x00f7,
	0x2550,
	0x2551,
	0x2552,
	0x0451,
	0x2553,
	0x2554,
	0x2555,
	0x2556,
	0x2557,
	0x2558,
	0x2559,
	0x255a,
	0x255b,
	0x255c,
	0x255d,
	0x255e,
	0x255f,
	0x2560,
	0x2561,
	0x0401,
	0x2562,
	0x2563,
	0x2564,
	0x2565,
	0x2566,
	0x2567,
	0x2568,
	0x2569,
	0x256a,
	0x256b,
	0x256c
	};

LOCAL_D const TUint16 keyedTables16OfIndexedTables16_indexedEntries_foreignToUnicode_3[]=
	{
	0x044e,
	0x0430,
	0x0431,
	0x0446,
	0x0434,
	0x0435,
	0x0444,
	0x0433,
	0x0445,
	0x0438,
	0x0439,
	0x043a,
	0x043b,
	0x043c,
	0x043d,
	0x043e,
	0x043f,
	0x044f,
	0x0440,
	0x0441,
	0x0442,
	0x0443,
	0x0436,
	0x0432,
	0x044c,
	0x044b,
	0x0437,
	0x0448,
	0x044d,
	0x0449,
	0x0447,
	0x044a,
	0x042e,
	0x0410,
	0x0411,
	0x0426,
	0x0414,
	0x0415,
	0x0424,
	0x0413,
	0x0425,
	0x0418,
	0x0419,
	0x041a,
	0x041b,
	0x041c,
	0x041d,
	0x041e,
	0x041f,
	0x042f,
	0x0420,
	0x0421,
	0x0422,
	0x0423,
	0x0416,
	0x0412,
	0x042c,
	0x042b,
	0x0417,
	0x0428,
	0x042d,
	0x0429,
	0x0427,
	0x042a
	};

LOCAL_D const SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable16OfIndexedTables16::SKeyedEntry keyedTables16OfIndexedTables16_keyedEntries_foreignToUnicode_1[]=
	{
		{
		0x80,
		0x99,
		keyedTables16OfIndexedTables16_indexedEntries_foreignToUnicode_1
		},
		{
		0x9b,
		0xbe,
		keyedTables16OfIndexedTables16_indexedEntries_foreignToUnicode_2
		},
		{
		0xc0,
		0xff,
		keyedTables16OfIndexedTables16_indexedEntries_foreignToUnicode_3
		}
	};

LOCAL_D const SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable1616::SEntry keyedTable1616_unicodeToForeign_1[]=
	{
		{
		0x00b0,
		0x9c
		},
		{
		0x00b2,
		0x9d
		},
		{
		0x00b7,
		0x9e
		},
		{
		0x00f7,
		0x9f
		},
		{
		0x0401,
		0xb3
		},
		{
		0x0410,
		0xe1
		},
		{
		0x0411,
		0xe2
		},
		{
		0x0412,
		0xf7
		},
		{
		0x0413,
		0xe7
		},
		{
		0x0414,
		0xe4
		},
		{
		0x0415,
		0xe5
		},
		{
		0x0416,
		0xf6
		},
		{
		0x0417,
		0xfa
		},
		{
		0x0418,
		0xe9
		},
		{
		0x0419,
		0xea
		},
		{
		0x041a,
		0xeb
		},
		{
		0x041b,
		0xec
		},
		{
		0x041c,
		0xed
		},
		{
		0x041d,
		0xee
		},
		{
		0x041e,
		0xef
		},
		{
		0x041f,
		0xf0
		},
		{
		0x0420,
		0xf2
		},
		{
		0x0421,
		0xf3
		},
		{
		0x0422,
		0xf4
		},
		{
		0x0423,
		0xf5
		},
		{
		0x0424,
		0xe6
		},
		{
		0x0425,
		0xe8
		},
		{
		0x0426,
		0xe3
		},
		{
		0x0427,
		0xfe
		},
		{
		0x0428,
		0xfb
		},
		{
		0x0429,
		0xfd
		},
		{
		0x042a,
		0xff
		},
		{
		0x042b,
		0xf9
		},
		{
		0x042c,
		0xf8
		},
		{
		0x042d,
		0xfc
		},
		{
		0x042e,
		0xe0
		},
		{
		0x042f,
		0xf1
		},
		{
		0x0430,
		0xc1
		},
		{
		0x0431,
		0xc2
		},
		{
		0x0432,
		0xd7
		},
		{
		0x0433,
		0xc7
		},
		{
		0x0434,
		0xc4
		},
		{
		0x0435,
		0xc5
		},
		{
		0x0436,
		0xd6
		},
		{
		0x0437,
		0xda
		},
		{
		0x0438,
		0xc9
		},
		{
		0x0439,
		0xca
		},
		{
		0x043a,
		0xcb
		},
		{
		0x043b,
		0xcc
		},
		{
		0x043c,
		0xcd
		},
		{
		0x043d,
		0xce
		},
		{
		0x043e,
		0xcf
		},
		{
		0x043f,
		0xd0
		},
		{
		0x0440,
		0xd2
		},
		{
		0x0441,
		0xd3
		},
		{
		0x0442,
		0xd4
		},
		{
		0x0443,
		0xd5
		},
		{
		0x0444,
		0xc6
		},
		{
		0x0445,
		0xc8
		},
		{
		0x0446,
		0xc3
		},
		{
		0x0447,
		0xde
		},
		{
		0x0448,
		0xdb
		},
		{
		0x0449,
		0xdd
		},
		{
		0x044a,
		0xdf
		},
		{
		0x044b,
		0xd9
		},
		{
		0x044c,
		0xd8
		},
		{
		0x044d,
		0xdc
		},
		{
		0x044e,
		0xc0
		},
		{
		0x044f,
		0xd1
		},
		{
		0x0451,
		0xa3
		},
		{
		0x2219,
		0x95
		},
		{
		0x221a,
		0x96
		},
		{
		0x2248,
		0x97
		},
		{
		0x2264,
		0x98
		},
		{
		0x2265,
		0x99
		},
		{
		0x2320,
		0x93
		},
		{
		0x2321,
		0x9b
		},
		{
		0x2500,
		0x80
		},
		{
		0x2502,
		0x81
		},
		{
		0x250c,
		0x82
		},
		{
		0x2510,
		0x83
		},
		{
		0x2514,
		0x84
		},
		{
		0x2518,
		0x85
		},
		{
		0x251c,
		0x86
		},
		{
		0x2524,
		0x87
		},
		{
		0x252c,
		0x88
		},
		{
		0x2534,
		0x89
		},
		{
		0x253c,
		0x8a
		},
		{
		0x2550,
		0xa0
		},
		{
		0x2551,
		0xa1
		},
		{
		0x2552,
		0xa2
		},
		{
		0x2553,
		0xa4
		},
		{
		0x2554,
		0xa5
		},
		{
		0x2555,
		0xa6
		},
		{
		0x2556,
		0xa7
		},
		{
		0x2557,
		0xa8
		},
		{
		0x2558,
		0xa9
		},
		{
		0x2559,
		0xaa
		},
		{
		0x255a,
		0xab
		},
		{
		0x255b,
		0xac
		},
		{
		0x255c,
		0xad
		},
		{
		0x255d,
		0xae
		},
		{
		0x255e,
		0xaf
		},
		{
		0x255f,
		0xb0
		},
		{
		0x2560,
		0xb1
		},
		{
		0x2561,
		0xb2
		},
		{
		0x2562,
		0xb4
		},
		{
		0x2563,
		0xb5
		},
		{
		0x2564,
		0xb6
		},
		{
		0x2565,
		0xb7
		},
		{
		0x2566,
		0xb8
		},
		{
		0x2567,
		0xb9
		},
		{
		0x2568,
		0xba
		},
		{
		0x2569,
		0xbb
		},
		{
		0x256a,
		0xbc
		},
		{
		0x256b,
		0xbd
		},
		{
		0x256c,
		0xbe
		},
		{
		0x2580,
		0x8b
		},
		{
		0x2584,
		0x8c
		},
		{
		0x2588,
		0x8d
		},
		{
		0x258c,
		0x8e
		},
		{
		0x2590,
		0x8f
		},
		{
		0x2591,
		0x90
		},
		{
		0x2592,
		0x91
		},
		{
		0x2593,
		0x92
		},
		{
		0x25a0,
		0x94
		}
	};

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,
		0xff,
		SCnvConversionData::SOneDirectionData::SRange::EKeyedTable16OfIndexedTables16,
		0,
		0,
			{
			UData_SKeyedTable16OfIndexedTables16(keyedTables16OfIndexedTables16_keyedEntries_foreignToUnicode_1)
			}
		}
	};

LOCAL_D const SCnvConversionData::SOneDirectionData::SRange unicodeToForeignDataRanges[]=
	{
		{
		0x0000,
		0x007f,
		SCnvConversionData::SOneDirectionData::SRange::EDirect,
		1,
		0,
			{
			0
			}
		},
		{
		0x00b0,
		0x25a0,
		SCnvConversionData::SOneDirectionData::SRange::EKeyedTable1616,
		1,
		0,
			{
			UData_SKeyedTable1616(keyedTable1616_unicodeToForeign_1)
			}
		}
	};

GLDEF_D const SCnvConversionData conversionData=
	{
	SCnvConversionData::EFixedBigEndian,
		{
		ARRAY_LENGTH(foreignVariableByteDataRanges),
		foreignVariableByteDataRanges
		},
		{
		ARRAY_LENGTH(foreignToUnicodeDataRanges),
		foreignToUnicodeDataRanges
		},
		{
		ARRAY_LENGTH(unicodeToForeignDataRanges),
		unicodeToForeignDataRanges
		},
	NULL,
	NULL
	};