charconvfw/Charconv/ongoing/Source/foreign/builtin/SMS7BIT.CPP
changeset 0 1fb32624e06b
child 16 56cd22a7a1cb
equal deleted inserted replaced
-1:000000000000 0:1fb32624e06b
       
     1 /*
       
     2 * Copyright (c) 1997-2004 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:      
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 
       
    21 
       
    22 
       
    23 
       
    24 
       
    25 #include <e32std.h>
       
    26 #include <convdata.h>
       
    27 
       
    28 #define ARRAY_LENGTH(aArray) (sizeof(aArray)/sizeof((aArray)[0]))
       
    29 
       
    30 LOCAL_D const TUint16 keyedTables16OfIndexedTables16_indexedEntries_sms7BitToUnicode_1[]=
       
    31 	{
       
    32 	0x0040,
       
    33 	0x00a3,
       
    34 	0x0024,
       
    35 	0x00a5,
       
    36 	0x00e8,
       
    37 	0x00e9,
       
    38 	0x00f9,
       
    39 	0x00ec,
       
    40 	0x00f2,
       
    41 	0x00e7,
       
    42 	0x000a,
       
    43 	0x00d8,
       
    44 	0x00f8,
       
    45 	0x000d,
       
    46 	0x00c5,
       
    47 	0x00e5,
       
    48 	0x0394,
       
    49 	0x005f,
       
    50 	0x03a6,
       
    51 	0x0393,
       
    52 	0x039b,
       
    53 	0x03a9,
       
    54 	0x03a0,
       
    55 	0x03a8,
       
    56 	0x03a3,
       
    57 	0x0398,
       
    58 	0x039e
       
    59 	};
       
    60 
       
    61 LOCAL_D const TUint16 keyedTables16OfIndexedTables16_indexedEntries_sms7BitToUnicode_2[]=
       
    62 	{
       
    63 	0x00c6,
       
    64 	0x00e6,
       
    65 	0x00df,
       
    66 	0x00c9,
       
    67 	0x0020,
       
    68 	0x0021,
       
    69 	0x0022,
       
    70 	0x0023,
       
    71 	0x00a4
       
    72 	};
       
    73 
       
    74 LOCAL_D const TUint16 keyedTables16OfIndexedTables16_indexedEntries_sms7BitToUnicode_3[]=
       
    75 	{
       
    76 	0x00c4,
       
    77 	0x00d6,
       
    78 	0x00d1,
       
    79 	0x00dc,
       
    80 	0x00a7,
       
    81 	0x00bf
       
    82 	};
       
    83 
       
    84 LOCAL_D const TUint16 keyedTables16OfIndexedTables16_indexedEntries_sms7BitToUnicode_4[]=
       
    85 	{
       
    86 	0x00e4,
       
    87 	0x00f6,
       
    88 	0x00f1,
       
    89 	0x00fc,
       
    90 	0x00e0
       
    91 	};
       
    92 
       
    93 LOCAL_D const TUint16 keyedTables16OfIndexedTables16_indexedEntries_sms7BitToUnicode_5[]=
       
    94 	{
       
    95 	0x0040,
       
    96 	0x00a3,
       
    97 	0x0024,
       
    98 	0x00a5,
       
    99 	0x00e8,
       
   100 	0x00e9,
       
   101 	0x00f9,
       
   102 	0x00ec,
       
   103 	0x00f2,
       
   104 	0x00c7,
       
   105 	0x000c, // meant to be a "Page Break" - a FORM FEED character is the nearest thing in Unicode to this
       
   106 	0x00d8,
       
   107 	0x00f8,
       
   108 	0x000d,
       
   109 	0x00c5,
       
   110 	0x00e5,
       
   111 	0x0394,
       
   112 	0x005f,
       
   113 	0x03a6,
       
   114 	0x0393,
       
   115 	0x005e, // '^'
       
   116 	0x03a9,
       
   117 	0x03a0,
       
   118 	0x03a8,
       
   119 	0x03a3,
       
   120 	0x0398,
       
   121 	0x039e
       
   122 	};
       
   123 
       
   124 LOCAL_D const TUint16 keyedTables16OfIndexedTables16_indexedEntries_sms7BitToUnicode_6[]=
       
   125 	{
       
   126 	0x00c6,
       
   127 	0x00e6,
       
   128 	0x00df,
       
   129 	0x00c9,
       
   130 	0x0020,
       
   131 	0x0021,
       
   132 	0x0022,
       
   133 	0x0023,
       
   134 	0x00a4,
       
   135 	0x0025,
       
   136 	0x0026,
       
   137 	0x0027,
       
   138 	0x007b, // '{'
       
   139 	0x007d, // '}'
       
   140 	0x002a,
       
   141 	0x002b,
       
   142 	0x002c,
       
   143 	0x002d,
       
   144 	0x002e,
       
   145 	0x005c, // '\'
       
   146 	0x0030,
       
   147 	0x0031,
       
   148 	0x0032,
       
   149 	0x0033,
       
   150 	0x0034,
       
   151 	0x0035,
       
   152 	0x0036,
       
   153 	0x0037,
       
   154 	0x0038,
       
   155 	0x0039,
       
   156 	0x003a,
       
   157 	0x003b,
       
   158 	0x005b, // '['
       
   159 	0x007e, // '~'
       
   160 	0x005d, // ']'
       
   161 	0x003f,
       
   162 	0x007c  // '|'
       
   163 	};
       
   164 
       
   165 LOCAL_D const TUint16 keyedTables16OfIndexedTables16_indexedEntries_sms7BitToUnicode_7[]=
       
   166 	{
       
   167 	0x00c4,
       
   168 	0x00d6,
       
   169 	0x00d1,
       
   170 	0x00dc,
       
   171 	0x00a7,
       
   172 	0x00bf,
       
   173 	0x0061,
       
   174 	0x0062,
       
   175 	0x0063,
       
   176 	0x0064,
       
   177 	0x20ac  // Euro symbol
       
   178 	};
       
   179 
       
   180 LOCAL_D const SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable16OfIndexedTables16::SKeyedEntry keyedTables16OfIndexedTables16_keyedEntries_sms7BitToUnicode_1[]=
       
   181 	{
       
   182 		{
       
   183 		0x00,
       
   184 		0x1a,
       
   185 		keyedTables16OfIndexedTables16_indexedEntries_sms7BitToUnicode_1
       
   186 		},
       
   187 		{
       
   188 		0x1c,
       
   189 		0x24,
       
   190 		keyedTables16OfIndexedTables16_indexedEntries_sms7BitToUnicode_2
       
   191 		},
       
   192 		{
       
   193 		0x5b,
       
   194 		0x60,
       
   195 		keyedTables16OfIndexedTables16_indexedEntries_sms7BitToUnicode_3
       
   196 		},
       
   197 		{
       
   198 		0x7b,
       
   199 		0x7f,
       
   200 		keyedTables16OfIndexedTables16_indexedEntries_sms7BitToUnicode_4
       
   201 		}
       
   202 	};
       
   203 
       
   204 LOCAL_D const SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable16OfIndexedTables16::SKeyedEntry keyedTables16OfIndexedTables16_keyedEntries_sms7BitToUnicode_2[]=
       
   205 	{
       
   206 		{
       
   207 		0x1b00,
       
   208 		0x1b1a,
       
   209 		keyedTables16OfIndexedTables16_indexedEntries_sms7BitToUnicode_5
       
   210 		},
       
   211 		{
       
   212 		0x1b1c,
       
   213 		0x1b40,
       
   214 		keyedTables16OfIndexedTables16_indexedEntries_sms7BitToUnicode_6
       
   215 		},
       
   216 		{
       
   217 		0x1b5b,
       
   218 		0x1b65,
       
   219 		keyedTables16OfIndexedTables16_indexedEntries_sms7BitToUnicode_7
       
   220 		},
       
   221 		{
       
   222 		0x1b7b,
       
   223 		0x1b7f,
       
   224 		keyedTables16OfIndexedTables16_indexedEntries_sms7BitToUnicode_4
       
   225 		}
       
   226 	};
       
   227 
       
   228 #if 0
       
   229 LOCAL_D const SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable1616::SEntry keyedTable1616_sms7BitToUnicode_1[]=
       
   230 	{
       
   231 		{
       
   232 		0x1b0a,
       
   233 		0x000c
       
   234 		},
       
   235 		{
       
   236 		0x1b14,
       
   237 		0x005e
       
   238 		},
       
   239 		{
       
   240 		0x1b28,
       
   241 		0x007b
       
   242 		},
       
   243 		{
       
   244 		0x1b29,
       
   245 		0x007d
       
   246 		},
       
   247 		{
       
   248 		0x1b2f,
       
   249 		0x005c
       
   250 		},
       
   251 		{
       
   252 		0x1b3c,
       
   253 		0x005b
       
   254 		},
       
   255 		{
       
   256 		0x1b3d,
       
   257 		0x007e
       
   258 		},
       
   259 		{
       
   260 		0x1b3e,
       
   261 		0x005d
       
   262 		},
       
   263 		{
       
   264 		0x1b40,
       
   265 		0x007c
       
   266 		},
       
   267 		{
       
   268 		0x1b65,
       
   269 		0x20ac
       
   270 		}
       
   271 	};
       
   272 #endif //0
       
   273 
       
   274 LOCAL_D const TUint16 keyedTables16OfIndexedTables16_indexedEntries_unicodeToSms7Bit_1[]=
       
   275 	{
       
   276 	0x60,
       
   277 	0x41,
       
   278 	0x41,
       
   279 	0x41,
       
   280 	0x41,
       
   281 	0x5b,
       
   282 	0x0e,
       
   283 	0x1c,
       
   284 	0x09,
       
   285 	0x45,
       
   286 	0x1f,
       
   287 	0x45,
       
   288 	0x45,
       
   289 	0x49,
       
   290 	0x49,
       
   291 	0x49,
       
   292 	0x49
       
   293 	};
       
   294 
       
   295 LOCAL_D const TUint16 keyedTables16OfIndexedTables16_indexedEntries_unicodeToSms7Bit_2[]=
       
   296 	{
       
   297 	0x5d,
       
   298 	0x4f,
       
   299 	0x4f,
       
   300 	0x4f,
       
   301 	0x4f,
       
   302 	0x5c
       
   303 	};
       
   304 
       
   305 LOCAL_D const TUint16 keyedTables16OfIndexedTables16_indexedEntries_unicodeToSms7Bit_3[]=
       
   306 	{
       
   307 	0x0b,
       
   308 	0x55,
       
   309 	0x55,
       
   310 	0x55,
       
   311 	0x5e,
       
   312 	0x59
       
   313 	};
       
   314 
       
   315 LOCAL_D const TUint16 keyedTables16OfIndexedTables16_indexedEntries_unicodeToSms7Bit_4[]=
       
   316 	{
       
   317 	0x1e,
       
   318 	0x7f,
       
   319 	0x61,
       
   320 	0x61,
       
   321 	0x61,
       
   322 	0x7b,
       
   323 	0x0f,
       
   324 	0x1d,
       
   325 	0x09,
       
   326 	0x04,
       
   327 	0x05,
       
   328 	0x65,
       
   329 	0x65,
       
   330 	0x07,
       
   331 	0x69,
       
   332 	0x69,
       
   333 	0x69
       
   334 	};
       
   335 
       
   336 LOCAL_D const TUint16 keyedTables16OfIndexedTables16_indexedEntries_unicodeToSms7Bit_5[]=
       
   337 	{
       
   338 	0x7d,
       
   339 	0x08,
       
   340 	0x6f,
       
   341 	0x6f,
       
   342 	0x6f,
       
   343 	0x7c
       
   344 	};
       
   345 
       
   346 LOCAL_D const TUint16 keyedTables16OfIndexedTables16_indexedEntries_unicodeToSms7Bit_6[]=
       
   347 	{
       
   348 	0x0c,
       
   349 	0x06,
       
   350 	0x75,
       
   351 	0x75,
       
   352 	0x7e,
       
   353 	0x79
       
   354 	};
       
   355 
       
   356 LOCAL_D const TUint16 keyedTables16OfIndexedTables16_indexedEntries_unicodeToSms7Bit_7[]=
       
   357 	{
       
   358 	0x49,
       
   359 	0x41,
       
   360 	0x42,
       
   361 	0x13,
       
   362 	0x10,
       
   363 	0x45,
       
   364 	0x5a,
       
   365 	0x48,
       
   366 	0x19,
       
   367 	0x49,
       
   368 	0x4b,
       
   369 	0x14,
       
   370 	0x4d,
       
   371 	0x4e,
       
   372 	0x1a,
       
   373 	0x4f
       
   374 	};
       
   375 
       
   376 LOCAL_D const TUint16 keyedTables16OfIndexedTables16_indexedEntries_unicodeToSms7Bit_8[]=
       
   377 	{
       
   378 	0x18,
       
   379 	0x54,
       
   380 	0x59,
       
   381 	0x12,
       
   382 	0x58,
       
   383 	0x17,
       
   384 	0x15,
       
   385 	0x49,
       
   386 	0x59,
       
   387 	0x41,
       
   388 	0x45,
       
   389 	0x48,
       
   390 	0x49
       
   391 	};
       
   392 
       
   393 LOCAL_D const TUint16 keyedTables16OfIndexedTables16_indexedEntries_unicodeToSms7Bit_9[]=
       
   394 	{
       
   395 	0x59,
       
   396 	0x41,
       
   397 	0x42,
       
   398 	0x13,
       
   399 	0x10,
       
   400 	0x45,
       
   401 	0x5a,
       
   402 	0x48,
       
   403 	0x19,
       
   404 	0x49,
       
   405 	0x4b,
       
   406 	0x14,
       
   407 	0x4d,
       
   408 	0x4e,
       
   409 	0x1a,
       
   410 	0x4f
       
   411 	};
       
   412 
       
   413 LOCAL_D const TUint16 keyedTables16OfIndexedTables16_indexedEntries_unicodeToSms7Bit_10[]=
       
   414 	{
       
   415 	0x16,
       
   416 	0x50,
       
   417 	0x18,
       
   418 	0x18,
       
   419 	0x54,
       
   420 	0x59,
       
   421 	0x12,
       
   422 	0x58,
       
   423 	0x17,
       
   424 	0x15,
       
   425 	0x49,
       
   426 	0x59,
       
   427 	0x4f,
       
   428 	0x59,
       
   429 	0x15
       
   430 	};
       
   431 
       
   432 LOCAL_D const TUint16 keyedTables16OfIndexedTables16_indexedEntries_unicodeToSms7Bit_11[]=
       
   433 	{
       
   434 	0x42,
       
   435 	0x19,
       
   436 	0x59,
       
   437 	0x59,
       
   438 	0x59,
       
   439 	0x12
       
   440 	};
       
   441 
       
   442 LOCAL_D const SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable16OfIndexedTables16::SKeyedEntry keyedTables16OfIndexedTables16_keyedEntries_unicodeToSms7Bit_1[]=
       
   443 	{
       
   444 		{
       
   445 		0x00bf,
       
   446 		0x00cf,
       
   447 		keyedTables16OfIndexedTables16_indexedEntries_unicodeToSms7Bit_1
       
   448 		},
       
   449 		{
       
   450 		0x00d1,
       
   451 		0x00d6,
       
   452 		keyedTables16OfIndexedTables16_indexedEntries_unicodeToSms7Bit_2
       
   453 		},
       
   454 		{
       
   455 		0x00d8,
       
   456 		0x00dd,
       
   457 		keyedTables16OfIndexedTables16_indexedEntries_unicodeToSms7Bit_3
       
   458 		},
       
   459 		{
       
   460 		0x00df,
       
   461 		0x00ef,
       
   462 		keyedTables16OfIndexedTables16_indexedEntries_unicodeToSms7Bit_4
       
   463 		},
       
   464 		{
       
   465 		0x00f1,
       
   466 		0x00f6,
       
   467 		keyedTables16OfIndexedTables16_indexedEntries_unicodeToSms7Bit_5
       
   468 		},
       
   469 		{
       
   470 		0x00f8,
       
   471 		0x00fd,
       
   472 		keyedTables16OfIndexedTables16_indexedEntries_unicodeToSms7Bit_6
       
   473 		},
       
   474 		{
       
   475 		0x0390,
       
   476 		0x039f,
       
   477 		keyedTables16OfIndexedTables16_indexedEntries_unicodeToSms7Bit_7
       
   478 		},
       
   479 		{
       
   480 		0x03a3,
       
   481 		0x03af,
       
   482 		keyedTables16OfIndexedTables16_indexedEntries_unicodeToSms7Bit_8
       
   483 		},
       
   484 		{
       
   485 		0x03b0,
       
   486 		0x03bf,
       
   487 		keyedTables16OfIndexedTables16_indexedEntries_unicodeToSms7Bit_9
       
   488 		},
       
   489 		{
       
   490 		0x03c0,
       
   491 		0x03ce,
       
   492 		keyedTables16OfIndexedTables16_indexedEntries_unicodeToSms7Bit_10
       
   493 		},
       
   494 		{
       
   495 		0x03d0,
       
   496 		0x03d5,
       
   497 		keyedTables16OfIndexedTables16_indexedEntries_unicodeToSms7Bit_11
       
   498 		}
       
   499 	};
       
   500 
       
   501 LOCAL_D const SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable1616::SEntry keyedTable1616_unicodeToSms7Bit_1[]=
       
   502 	{
       
   503 		{
       
   504 		0x000a,
       
   505 		0x0a
       
   506 		},
       
   507 		{
       
   508 		0x000d,
       
   509 		0x0d
       
   510 		},
       
   511 		{
       
   512 		0x001b,
       
   513 		0x1b
       
   514 		},
       
   515 		{
       
   516 		0x0020,
       
   517 		0x20
       
   518 		},
       
   519 		{
       
   520 		0x0021,
       
   521 		0x21
       
   522 		},
       
   523 		{
       
   524 		0x0022,
       
   525 		0x22
       
   526 		},
       
   527 		{
       
   528 		0x0023,
       
   529 		0x23
       
   530 		},
       
   531 		{
       
   532 		0x0024,
       
   533 		0x02
       
   534 		},
       
   535 		{
       
   536 		0x0040,
       
   537 		0x00
       
   538 		},
       
   539 		{
       
   540 		0x005f,
       
   541 		0x11
       
   542 		},
       
   543 		{
       
   544 		0x0072,
       
   545 		0x72
       
   546 		},
       
   547 		{
       
   548 		0x00a1,
       
   549 		0x40
       
   550 		},
       
   551 		{
       
   552 		0x00a3,
       
   553 		0x01
       
   554 		},
       
   555 		{
       
   556 		0x00a4,
       
   557 		0x24
       
   558 		},
       
   559 		{
       
   560 		0x00a5,
       
   561 		0x03
       
   562 		},
       
   563 		{
       
   564 		0x00a7,
       
   565 		0x5f
       
   566 		},
       
   567 		{
       
   568 		0x00a8,
       
   569 		0x22
       
   570 		},
       
   571 		{
       
   572 		0x00b4,
       
   573 		0x27
       
   574 		},
       
   575 		{
       
   576 		0x00C0,
       
   577 		0x41
       
   578 		},
       
   579 		{
       
   580 		0x00C1,
       
   581 		0x41
       
   582 		},
       
   583 		{
       
   584 		0x00C2,	0x41
       
   585 		},
       
   586 		{
       
   587 		0x00C3,	0x41
       
   588 		},
       
   589 		{
       
   590 		0x00C8,
       
   591 		0x45
       
   592 		},
       
   593 		{
       
   594 		0x00CA,
       
   595 		0x45
       
   596 		},
       
   597 		{
       
   598 		0x00CB,
       
   599 		0x45
       
   600 		},
       
   601 		{
       
   602 		0x00CC,
       
   603 		0x49
       
   604 		},
       
   605 		{
       
   606 		0x00CD,
       
   607 		0x49
       
   608 		},
       
   609 		{
       
   610 		0x00CE,
       
   611 		0x49
       
   612 		},
       
   613 		{
       
   614 		0x00CF,
       
   615 		0x49
       
   616 		},
       
   617 		{
       
   618 		0x00D0,
       
   619 		0x44
       
   620 		},
       
   621 		{
       
   622 		0x00D2,
       
   623 		0x4F
       
   624 		},
       
   625 		{
       
   626 		0x00D3,
       
   627 		0x4F
       
   628 		},
       
   629 		{
       
   630 		0x00D4,
       
   631 		0x4F
       
   632 		},
       
   633 		{
       
   634 		0x00D5,
       
   635 		0x4F
       
   636 		},
       
   637 		{
       
   638 		0x00D7,
       
   639 		0x2A
       
   640 		},
       
   641 		{
       
   642 		0x00D9,
       
   643 		0x55
       
   644 		},
       
   645 		{
       
   646 		0x00DA,
       
   647 		0x55
       
   648 		},
       
   649 		{
       
   650 		0x00DB,
       
   651 		0x55
       
   652 		},
       
   653 		{
       
   654 		0x00DD,
       
   655 		0x59
       
   656 		},
       
   657 		{
       
   658 		0x00DE,
       
   659 		0x54
       
   660 		},
       
   661 		{
       
   662 		0x00E1,
       
   663 		0x61
       
   664 		},
       
   665 		{
       
   666 		0x00E2,
       
   667 		0x61
       
   668 		},
       
   669 		{
       
   670 		0x00E3,
       
   671 		0x61
       
   672 		},
       
   673 		{
       
   674 		0x00E7,	
       
   675 		0x09
       
   676 		},
       
   677 		{
       
   678 		0x00EA,
       
   679 		0x65
       
   680 		},
       
   681 		{
       
   682 		0x00EB,	
       
   683 		0x65
       
   684 		},
       
   685 		{
       
   686 		0x00ED,	
       
   687 		0x69
       
   688 		},
       
   689 		{
       
   690 		0x00EE,	
       
   691 		0x69
       
   692 		},
       
   693 		{
       
   694 		0x00EF,
       
   695 		0x69
       
   696 		},
       
   697 		{
       
   698 		0x00F0,
       
   699 		0x64
       
   700 		},
       
   701 		{
       
   702 		0x00F3,	
       
   703 		0x6F
       
   704 		},
       
   705 		{
       
   706 		0x00F4,	
       
   707 		0x6F
       
   708 		},
       
   709 		{
       
   710 		0x00F5,
       
   711 		0x6F
       
   712 		},
       
   713 		{
       
   714 		0x00F7,	
       
   715 		0x6F
       
   716 		},
       
   717 		{
       
   718 		0x00FA,
       
   719 		0x75
       
   720 		},
       
   721 		{
       
   722 		0x00FB,
       
   723 		0x75
       
   724 		},
       
   725 		{
       
   726 		0x00FD,	
       
   727 		0x79
       
   728 		},
       
   729 		{
       
   730 		0x00FE,	
       
   731 		0x74
       
   732 		},
       
   733 		{
       
   734 		0x00ff,
       
   735 		0x79
       
   736 		},
       
   737 		{
       
   738 		0x0100,	
       
   739 		0x41
       
   740 		},
       
   741 		{
       
   742 		0x0101,	
       
   743 		0x61
       
   744 		},
       
   745 		{
       
   746 		0x0102,	
       
   747 		0x41
       
   748 		},
       
   749 		{
       
   750 		0x0103,
       
   751 		0x61
       
   752 		},
       
   753 		///////////////// A with ogonek
       
   754 	    {
       
   755 		0x0104,
       
   756 		0x41  
       
   757 		},
       
   758 		/////////////////
       
   759 	    ///////////////// a with ogonek
       
   760 	    {
       
   761 		0x0105,
       
   762 		0x61  
       
   763 		},
       
   764 		/////////////////
       
   765 		///////////////// C with acute
       
   766 	    {
       
   767 		0x0106,
       
   768 		0x43  
       
   769 		},
       
   770 	    ///////////////// c with acute
       
   771 	    {
       
   772 		0x0107,
       
   773 		0x63  
       
   774 		},
       
   775 		{
       
   776 		0x0108,
       
   777 		0x43
       
   778 		},
       
   779 		{
       
   780 		0x0109,
       
   781 		0x63
       
   782 		},
       
   783 		{
       
   784 		0x010A,
       
   785 		0x43
       
   786 		},
       
   787 		{
       
   788 		0x010B,
       
   789 		0x63
       
   790 		},
       
   791 		{
       
   792 		0x010C,
       
   793 		0x43
       
   794 		},
       
   795 		{
       
   796 		0x010D,
       
   797 		0x63
       
   798 		},
       
   799 		{
       
   800 		0x010E,
       
   801 		0x44
       
   802 		},
       
   803 		{
       
   804 		0x010F,
       
   805 		0x64
       
   806 		},
       
   807 		{
       
   808 		0x0110,
       
   809 		0x44
       
   810 		},
       
   811 		{
       
   812 		0x0111,
       
   813 		0x64
       
   814 		},
       
   815 		{
       
   816 		0x0112,
       
   817 		0x45
       
   818 		},
       
   819 		{
       
   820 		0x0113,
       
   821 		0x65
       
   822 		},
       
   823 		{
       
   824 		0x0114,
       
   825 		0x45
       
   826 		},
       
   827 		{
       
   828 		0x0115,
       
   829 		0x65
       
   830 		},
       
   831 		{
       
   832 		0x0116,
       
   833 		0x45
       
   834 		},
       
   835 		{
       
   836 		0x0117,
       
   837 		0x65
       
   838 		},
       
   839 		/////////////////
       
   840 		///////////////// E with ogonek
       
   841 	    {
       
   842 		0x0118,
       
   843 		0x45  
       
   844 		},
       
   845 		/////////////////
       
   846 		///////////////// e with ogonek
       
   847 	    {
       
   848 		0x0119,
       
   849 		0x65  
       
   850 		},
       
   851 		{
       
   852 		0x011A,
       
   853 		0x45
       
   854 		},
       
   855 		{
       
   856 		0x011B,
       
   857 		0x65
       
   858 		},
       
   859 		{
       
   860 		0x011C,
       
   861 		0x47
       
   862 		},
       
   863 		{
       
   864 		0x011D,
       
   865 		0x67
       
   866 		},
       
   867 		/////////////////
       
   868 		///////////////// Turkish G with breve
       
   869 	    {
       
   870 		0x011E,
       
   871 		0x47  
       
   872 		},
       
   873 		/////////////////
       
   874 		///////////////// Turkish g with breve
       
   875 	    {
       
   876 		0x011F,
       
   877 		0x67  
       
   878 		},
       
   879 		{
       
   880 		0x0120,
       
   881 		0x47
       
   882 		},
       
   883 		{
       
   884 		0x0121,
       
   885 		0x67
       
   886 		},
       
   887 		{
       
   888 		0x0122,
       
   889 		0x47
       
   890 		},
       
   891 		{
       
   892 		0x0123,
       
   893 		0x67
       
   894 		},
       
   895 		{
       
   896 		0x0124,
       
   897 		0x48
       
   898 		},
       
   899 		{
       
   900 		0x0125,	
       
   901 		0x68
       
   902 		},
       
   903 		{
       
   904 		0x0126,	
       
   905 		0x48
       
   906 		},
       
   907 		{
       
   908 		0x0127,	
       
   909 		0x68
       
   910 		},
       
   911 		{
       
   912 		0x0128,	
       
   913 		0x49
       
   914 		},
       
   915 		{
       
   916 		0x0129,	
       
   917 		0x69
       
   918 		},
       
   919 		{
       
   920 		0x012A,	
       
   921 		0x49
       
   922 		},
       
   923 		{
       
   924 		0x012B,	
       
   925 		0x69
       
   926 		},
       
   927 		{
       
   928 		0x012C,	
       
   929 		0x49
       
   930 		},
       
   931 		{
       
   932 		0x012D,	
       
   933 		0x69
       
   934 		},
       
   935 		{
       
   936 		0x012E,
       
   937 		0x49
       
   938 		},
       
   939 		{
       
   940 		0x012F,	
       
   941 		0x69
       
   942 		},
       
   943 		/////////////////
       
   944 		///////////////// Turkish I with dot above
       
   945 	    {
       
   946 		0x0130,
       
   947 		0x49  
       
   948 		},
       
   949 		/////////////////
       
   950 		///////////////// Turkish dotless i
       
   951 	    {
       
   952 		0x0131,
       
   953 		0x69  
       
   954 		},
       
   955 		{
       
   956 		0x0134,
       
   957 		0x4A
       
   958 		},
       
   959 		{
       
   960 		0x0135,
       
   961 		0x6A
       
   962 		},
       
   963 		{
       
   964 		0x0136,
       
   965 		0x4B
       
   966 		},
       
   967 		{
       
   968 		0x0137,
       
   969 		0x6B
       
   970 		},
       
   971 		{
       
   972 		0x0139,
       
   973 		0x4C
       
   974 		},
       
   975 		{
       
   976 		0x013A,
       
   977 		0x6C
       
   978 		},
       
   979 		{
       
   980 		0x013B,
       
   981 		0x4C
       
   982 		},
       
   983 		{
       
   984 		0x013C,
       
   985 		0x6C
       
   986 		},
       
   987 		{
       
   988 		0x013D,
       
   989 		0x4C
       
   990 		},
       
   991 		{
       
   992 		0x013E,
       
   993 		0x6C
       
   994 		},
       
   995 		{
       
   996 		0x013F,
       
   997 		0x4C
       
   998 		},
       
   999 		{
       
  1000 		0x0140,
       
  1001 		0x6C
       
  1002 		},
       
  1003 		/////////////////
       
  1004 		///////////////// L with stroke
       
  1005 	    {
       
  1006 		0x0141,
       
  1007 		0x4c  
       
  1008 		},
       
  1009 		/////////////////
       
  1010 		///////////////// l with stroke
       
  1011 	    {
       
  1012 		0x0142,
       
  1013 		0x6c 
       
  1014 		},
       
  1015 		/////////////////
       
  1016 		/////////////////POL N with acute
       
  1017 	    {
       
  1018 		0x0143,
       
  1019 		0x4E  
       
  1020 		},
       
  1021 		/////////////////
       
  1022 		/////////////////POL n with acute
       
  1023 	    {
       
  1024 		0x0144,
       
  1025 		0x6e  
       
  1026 		},
       
  1027 		{
       
  1028 		0x0145,
       
  1029 		0x4E
       
  1030 		},
       
  1031 		{
       
  1032 		0x0146,
       
  1033 		0x6E
       
  1034 		},
       
  1035 		{
       
  1036 		0x0147,
       
  1037 		0x4E
       
  1038 		},
       
  1039 		{
       
  1040 		0x0148,
       
  1041 		0x6E
       
  1042 		},
       
  1043 		{
       
  1044 		0x014C,
       
  1045 		0x4F
       
  1046 		},
       
  1047 		{
       
  1048 		0x014D,
       
  1049 		0x6F
       
  1050 		},
       
  1051 		{
       
  1052 		0x014E,
       
  1053 		0x4F
       
  1054 		},
       
  1055 		{
       
  1056 		0x014F,
       
  1057 		0x6F
       
  1058 		},
       
  1059 		/////////////////
       
  1060 		///////////////// O with double acute
       
  1061 	    {
       
  1062 		0x0150,
       
  1063 		0x4f  
       
  1064 		},
       
  1065 		/////////////////
       
  1066 		///////////////// o with double acute
       
  1067 	    {
       
  1068 		0x0151,
       
  1069 		0x6f  
       
  1070 		},
       
  1071 		{
       
  1072 		0x0154,
       
  1073 		0x52
       
  1074 		},
       
  1075 		{
       
  1076 		0x0155,
       
  1077 		0x72
       
  1078 		},
       
  1079 		{
       
  1080 		0x0156,
       
  1081 		0x52
       
  1082 		},
       
  1083 		{
       
  1084 		0x0157,
       
  1085 		0x72
       
  1086 		},
       
  1087 		{
       
  1088 		0x0158,
       
  1089 		0x52
       
  1090 		},
       
  1091 		{
       
  1092 		0x0159,
       
  1093 		0x72
       
  1094 		},
       
  1095 		/////////////////
       
  1096 		///////////////// S with acute
       
  1097 	    {
       
  1098 		0x015a,
       
  1099 		0x53  
       
  1100 		},
       
  1101 		/////////////////
       
  1102 		///////////////// s with acute
       
  1103 	    {
       
  1104 		0x015b,
       
  1105 		0x73  
       
  1106 		},
       
  1107 		{
       
  1108 		0x015C,
       
  1109 		0x53
       
  1110 		},
       
  1111 		{
       
  1112 		0x015D,
       
  1113 		0x73  
       
  1114 		},
       
  1115 		/////////////////
       
  1116 		///////////////// Turkish S with cedilla
       
  1117 	    {
       
  1118 		0x015E,
       
  1119 		0x53  
       
  1120 		},
       
  1121 		/////////////////
       
  1122 		///////////////// Turkish s with cedilla
       
  1123 	    {
       
  1124 		0x015F,
       
  1125 		0x73  
       
  1126 		},
       
  1127 		/////////////////	
       
  1128 		///////////////// S with caron
       
  1129 	    {
       
  1130 		0x0160,
       
  1131 		0x53  
       
  1132 		},
       
  1133 		/////////////////
       
  1134 		///////////////// s with caron
       
  1135 	    {
       
  1136 		0x0161,
       
  1137 		0x73  
       
  1138 		},
       
  1139 		{
       
  1140 		0x0162,
       
  1141 		0x54
       
  1142 		},
       
  1143 		{
       
  1144 		0x0163,
       
  1145 		0x74
       
  1146 		},
       
  1147 		{
       
  1148 		0x0164,
       
  1149 		0x54
       
  1150 		},
       
  1151 		{
       
  1152 		0x0165,
       
  1153 		0x74
       
  1154 		},
       
  1155 		{
       
  1156 		0x0166,
       
  1157 		0x54
       
  1158 		},
       
  1159 		{
       
  1160 		0x0167,
       
  1161 		0x74
       
  1162 		},
       
  1163 		{
       
  1164 		0x0168,
       
  1165 		0x55
       
  1166 		},
       
  1167 		{
       
  1168 		0x0169,
       
  1169 		0x75
       
  1170 		},
       
  1171 		{
       
  1172 		0x016A,
       
  1173 		0x55
       
  1174 		},
       
  1175 		{
       
  1176 		0x016B,
       
  1177 		0x75
       
  1178 		},
       
  1179 		{
       
  1180 		0x016C,
       
  1181 		0x55
       
  1182 		},
       
  1183 		{
       
  1184 		0x016D,
       
  1185 		0x75
       
  1186 		},
       
  1187 		{
       
  1188 		0x016E,
       
  1189 		0x55
       
  1190 		},
       
  1191 		{
       
  1192 		0x016F,
       
  1193 		0x75
       
  1194 		},
       
  1195 		/////////////////
       
  1196 		/////////////////Hungarian U with double acute
       
  1197 	    {
       
  1198 		0x0170,
       
  1199 		0x55  
       
  1200 		},
       
  1201 		/////////////////
       
  1202 		/////////////////Hungarian u with double acute
       
  1203 	    {
       
  1204 		0x0171,
       
  1205 		0x75  
       
  1206 		},
       
  1207 		{
       
  1208 		0x0172,
       
  1209 		0x55
       
  1210 		},
       
  1211 		{
       
  1212 		0x0173,
       
  1213 		0x75  
       
  1214 		},
       
  1215 		/////////////////
       
  1216 		/////////////////POL Z with acute
       
  1217 	    {
       
  1218 		0x0179,
       
  1219 		0x5a  
       
  1220 		},
       
  1221 		/////////////////
       
  1222 		/////////////////POL z with acute
       
  1223 	    {
       
  1224 		0x017a,
       
  1225 		0x7a  
       
  1226 		},
       
  1227 		/////////////////
       
  1228 		/////////////////POL Z with dot above
       
  1229 	    {
       
  1230 		0x017b,
       
  1231 		0x5a  
       
  1232 		},
       
  1233 		/////////////////
       
  1234 		/////////////////POL z with dot above
       
  1235 	    {
       
  1236 		0x017c,
       
  1237 		0x7a  
       
  1238 		},
       
  1239 		/////////////////
       
  1240 		///////////////// Z with caron
       
  1241 	    {
       
  1242 		0x017d,
       
  1243 		0x5a  
       
  1244 		},
       
  1245 		/////////////////
       
  1246 		///////////////// z with caron
       
  1247 	    {
       
  1248 		0x017e,
       
  1249 		0x7a  
       
  1250 		},
       
  1251 		/////////////////
       
  1252 		{
       
  1253 		0x0386,
       
  1254 		0x41
       
  1255 		},
       
  1256 		{
       
  1257 		0x0388,
       
  1258 		0x45
       
  1259 		},
       
  1260 		{
       
  1261 		0x0389,
       
  1262 		0x48
       
  1263 		},
       
  1264 		{
       
  1265 		0x038a,
       
  1266 		0x49
       
  1267 		},
       
  1268 		{
       
  1269 		0x038c,
       
  1270 		0x4f
       
  1271 		},
       
  1272 		{
       
  1273 		0x038e,
       
  1274 		0x59
       
  1275 		},
       
  1276 		{
       
  1277 		0x038f,
       
  1278 		0x15
       
  1279 		},
       
  1280 		{
       
  1281 		0x0390,
       
  1282 		0x49
       
  1283 		},
       
  1284 		{
       
  1285 		0x0391,
       
  1286 		0x41
       
  1287 		},
       
  1288 		{
       
  1289 		0x0392,
       
  1290 		0x42
       
  1291 		},
       
  1292 		{
       
  1293 		0x0395,
       
  1294 		0x45
       
  1295 		},
       
  1296 		{
       
  1297 		0x0396,
       
  1298 		0x5A
       
  1299 		},
       
  1300 		{
       
  1301 		0x0397,
       
  1302 		0x48
       
  1303 		},
       
  1304 		{
       
  1305 		0x0399,
       
  1306 		0x49
       
  1307 		},
       
  1308 		{
       
  1309 		0x039A,
       
  1310 		0x4B
       
  1311 		},
       
  1312 		{
       
  1313 		0x039C,
       
  1314 		0x4D
       
  1315 		},
       
  1316 		{
       
  1317 		0x039D,
       
  1318 		0x4E
       
  1319 		},
       
  1320 		{
       
  1321 		0x039F,
       
  1322 		0x4F
       
  1323 		},
       
  1324 		{
       
  1325 		0x03a0,
       
  1326 		0x16
       
  1327 		},
       
  1328 		{
       
  1329 		0x03a1,
       
  1330 		0x50
       
  1331 		},
       
  1332 		{
       
  1333 		0x03A4,
       
  1334 		0x54
       
  1335 		},
       
  1336 		{
       
  1337 		0x03A5,
       
  1338 		0x59
       
  1339 		},
       
  1340 		{
       
  1341 		0x03A7,
       
  1342 		0x58
       
  1343 		},
       
  1344 		{
       
  1345 		0x03AA,
       
  1346 		0x49
       
  1347 		},
       
  1348 		{
       
  1349 		0x03AB,
       
  1350 		0x59
       
  1351 		},
       
  1352 		{
       
  1353 		0x03AC,
       
  1354 		0x41
       
  1355 		},
       
  1356 		{
       
  1357 		0x03AD,
       
  1358 		0x45
       
  1359 		},
       
  1360 		{
       
  1361 		0x03AE,
       
  1362 		0x48
       
  1363 		},
       
  1364 		{
       
  1365 		0x03AF,
       
  1366 		0x49
       
  1367 		},
       
  1368 		{
       
  1369 		0x03B0,
       
  1370 		0x59
       
  1371 		},
       
  1372 		{
       
  1373 		0x03B1,
       
  1374 		0x41
       
  1375 		},
       
  1376 		{
       
  1377 		0x03B2,
       
  1378 		0x42
       
  1379 		},
       
  1380 		{
       
  1381 		0x03B3,
       
  1382 		0x13
       
  1383 		},
       
  1384 		{
       
  1385 		0x03B4,
       
  1386 		0x10
       
  1387 		},
       
  1388 		{
       
  1389 		0x03B5,
       
  1390 		0x45
       
  1391 		},
       
  1392 		{
       
  1393 		0x03B6,
       
  1394 		0x5A
       
  1395 		},
       
  1396 		{
       
  1397 		0x03B7,
       
  1398 		0x48
       
  1399 		},
       
  1400 		{
       
  1401 		0x03B8,
       
  1402 		0x19
       
  1403 		},
       
  1404 		{
       
  1405 		0x03B9,
       
  1406 		0x49
       
  1407 		},
       
  1408 		{
       
  1409 		0x03BA,
       
  1410 		0x4B
       
  1411 		},
       
  1412 		{
       
  1413 		0x03BB,
       
  1414 		0x14
       
  1415 		},
       
  1416 		{
       
  1417 		0x03BC,
       
  1418 		0x4D
       
  1419 		},
       
  1420 		{
       
  1421 		0x03BD,
       
  1422 		0x4E
       
  1423 		},
       
  1424 		{
       
  1425 		0x03BE,
       
  1426 		0x1A
       
  1427 		},
       
  1428 		{
       
  1429 		0x03BF,
       
  1430 		0x4F
       
  1431 		},
       
  1432 		{
       
  1433 		0x03C0,
       
  1434 		0x16
       
  1435 		},
       
  1436 		{
       
  1437 		0x03C1,
       
  1438 		0x50
       
  1439 		},
       
  1440 		{
       
  1441 		0x03C2,
       
  1442 		0x18
       
  1443 		},
       
  1444 		{
       
  1445 		0x03C3,
       
  1446 		0x18
       
  1447 		},
       
  1448 		{
       
  1449 		0x03C4,
       
  1450 		0x54
       
  1451 		},
       
  1452 		{
       
  1453 		0x03C5,
       
  1454 		0x59
       
  1455 		},
       
  1456 		{
       
  1457 		0x03C6,
       
  1458 		0x12
       
  1459 		},
       
  1460 		{
       
  1461 		0x03C7,
       
  1462 		0x58
       
  1463 		},
       
  1464 		{
       
  1465 		0x03C8,
       
  1466 		0x17
       
  1467 		},
       
  1468 		{
       
  1469 		0x03C9,
       
  1470 		0x15
       
  1471 		},
       
  1472 		{
       
  1473 		0x03CA,
       
  1474 		0x49
       
  1475 		},
       
  1476 		{
       
  1477 		0x03CB,
       
  1478 		0x59
       
  1479 		},
       
  1480 		{
       
  1481 		0x03CC,
       
  1482 		0x4F
       
  1483 		},
       
  1484 		{
       
  1485 		0x03CD,
       
  1486 		0x59
       
  1487 		},
       
  1488 		{
       
  1489 		0x03CE,
       
  1490 		0x15
       
  1491 		},
       
  1492 		{
       
  1493 		0x2126,
       
  1494 		0x15
       
  1495 		},
       
  1496 		{
       
  1497 		0x220f,
       
  1498 		0x16
       
  1499 		},
       
  1500 		{
       
  1501 		0x2211,
       
  1502 		0x18
       
  1503 		}
       
  1504 	};
       
  1505 
       
  1506 LOCAL_D const SCnvConversionData::SOneDirectionData::SRange::UData::SKeyedTable1616::SEntry keyedTable1616_unicodeToSms7Bit_2[]=
       
  1507 	{
       
  1508 		{
       
  1509 		0x000c,
       
  1510 		0x1b0a
       
  1511 		},
       
  1512 		{
       
  1513 		0x005b,
       
  1514 		0x1b3c
       
  1515 		},
       
  1516 		{
       
  1517 		0x005c,
       
  1518 		0x1b2f
       
  1519 		},
       
  1520 		{
       
  1521 		0x005d,
       
  1522 		0x1b3e
       
  1523 		},
       
  1524 		{
       
  1525 		0x005e,
       
  1526 		0x1b14
       
  1527 		},
       
  1528 		{
       
  1529 		0x007b,
       
  1530 		0x1b28
       
  1531 		},
       
  1532 		{
       
  1533 		0x007c,
       
  1534 		0x1b40
       
  1535 		},
       
  1536 		{
       
  1537 		0x007d,
       
  1538 		0x1b29
       
  1539 		},
       
  1540 		{
       
  1541 		0x007e,
       
  1542 		0x1b3d
       
  1543 		},
       
  1544 		{
       
  1545 		0x20ac,
       
  1546 		0x1b65
       
  1547 		}
       
  1548 	};
       
  1549 
       
  1550 LOCAL_D const SCnvConversionData::SVariableByteData::SRange sms7BitVariableByteDataRanges[]=
       
  1551 	{
       
  1552 		{
       
  1553 		0x00,
       
  1554 		0x1a,
       
  1555 		0,
       
  1556 		0
       
  1557 		},
       
  1558 		{
       
  1559 		0x1b,
       
  1560 		0x1b,
       
  1561 		1,
       
  1562 		0
       
  1563 		},
       
  1564 		{
       
  1565 		0x1c,
       
  1566 		0xff,
       
  1567 		0,
       
  1568 		0
       
  1569 		}
       
  1570 	};
       
  1571 
       
  1572 LOCAL_D const SCnvConversionData::SOneDirectionData::SRange sms7BitToUnicodeDataRanges[]=
       
  1573 	{
       
  1574 		{
       
  1575 		0x25,
       
  1576 		0x3f,
       
  1577 		SCnvConversionData::SOneDirectionData::SRange::EDirect,
       
  1578 		0,
       
  1579 		0,
       
  1580 			{
       
  1581 			0,
       
  1582 			0
       
  1583 			}
       
  1584 		},
       
  1585 		{
       
  1586 		0x41,
       
  1587 		0x5a,
       
  1588 		SCnvConversionData::SOneDirectionData::SRange::EDirect,
       
  1589 		0,
       
  1590 		0,
       
  1591 			{
       
  1592 			0,
       
  1593 			0
       
  1594 			}
       
  1595 		},
       
  1596 		{
       
  1597 		0x61,
       
  1598 		0x7a,
       
  1599 		SCnvConversionData::SOneDirectionData::SRange::EDirect,
       
  1600 		0,
       
  1601 		0,
       
  1602 			{
       
  1603 			0,
       
  1604 			0
       
  1605 			}
       
  1606 		},
       
  1607 		{
       
  1608 		0x40,
       
  1609 		0x40,
       
  1610 		SCnvConversionData::SOneDirectionData::SRange::EOffset,
       
  1611 		0,
       
  1612 		0,
       
  1613 			{
       
  1614 			STATIC_CAST(TUint, 97),
       
  1615 			0
       
  1616 			}
       
  1617 		},
       
  1618 		{
       
  1619 		0x00,
       
  1620 		0x7f,
       
  1621 		SCnvConversionData::SOneDirectionData::SRange::EKeyedTable16OfIndexedTables16,
       
  1622 		0,
       
  1623 		0,
       
  1624 			{
       
  1625 			UData_SKeyedTable16OfIndexedTables16(keyedTables16OfIndexedTables16_keyedEntries_sms7BitToUnicode_1)
       
  1626 			}
       
  1627 		},
       
  1628 #if 0
       
  1629 		{
       
  1630 		0x1b0a,
       
  1631 		0x1b65,
       
  1632 		SCnvConversionData::SOneDirectionData::SRange::EKeyedTable1616,
       
  1633 		0,
       
  1634 		0,
       
  1635 			{
       
  1636 			UData_KeyedTable(keyedTable1616_sms7BitToUnicode_1)
       
  1637 			}
       
  1638 		}
       
  1639 #else
       
  1640 		{
       
  1641 		0x1b41,
       
  1642 		0x1b5a,
       
  1643 		SCnvConversionData::SOneDirectionData::SRange::EOffset,
       
  1644 		0,
       
  1645 		0,
       
  1646 			{
       
  1647 			(TUint)-0x1b00,
       
  1648 			0
       
  1649 			}
       
  1650 		},
       
  1651 		{
       
  1652 		0x1b66,
       
  1653 		0x1b7a,
       
  1654 		SCnvConversionData::SOneDirectionData::SRange::EOffset,
       
  1655 		0,
       
  1656 		0,
       
  1657 			{
       
  1658 			(TUint)-0x1b00,
       
  1659 			0
       
  1660 			}
       
  1661 		},
       
  1662 		{
       
  1663 		0x1b00,
       
  1664 		0x1b7f,
       
  1665 		SCnvConversionData::SOneDirectionData::SRange::EKeyedTable16OfIndexedTables16,
       
  1666 		0,
       
  1667 		0,
       
  1668 			{
       
  1669 			UData_SKeyedTable16OfIndexedTables16(keyedTables16OfIndexedTables16_keyedEntries_sms7BitToUnicode_2)
       
  1670 			}
       
  1671 		}
       
  1672 #endif
       
  1673 	};
       
  1674 
       
  1675 LOCAL_D const SCnvConversionData::SOneDirectionData::SRange unicodeToSms7BitDataRanges[]=
       
  1676 	{
       
  1677 		{
       
  1678 		0x0025,
       
  1679 		0x003f,
       
  1680 		SCnvConversionData::SOneDirectionData::SRange::EDirect,
       
  1681 		1,
       
  1682 		0,
       
  1683 			{
       
  1684 			0,
       
  1685 			0
       
  1686 			}
       
  1687 		},
       
  1688 		{
       
  1689 		0x0041,
       
  1690 		0x005a,
       
  1691 		SCnvConversionData::SOneDirectionData::SRange::EDirect,
       
  1692 		1,
       
  1693 		0,
       
  1694 			{
       
  1695 			0,
       
  1696 			0
       
  1697 			}
       
  1698 		},
       
  1699 		{
       
  1700 		0x0061,
       
  1701 		0x007a,
       
  1702 		SCnvConversionData::SOneDirectionData::SRange::EDirect,
       
  1703 		1,
       
  1704 		0,
       
  1705 			{
       
  1706 			0,
       
  1707 			0
       
  1708 			}
       
  1709 		},
       
  1710 		{
       
  1711 		0x00bf,
       
  1712 		0x03d5,
       
  1713 		SCnvConversionData::SOneDirectionData::SRange::EKeyedTable16OfIndexedTables16,
       
  1714 		1,
       
  1715 		0,
       
  1716 			{
       
  1717 			UData_SKeyedTable16OfIndexedTables16(keyedTables16OfIndexedTables16_keyedEntries_unicodeToSms7Bit_1)
       
  1718 			}
       
  1719 		},
       
  1720 		{
       
  1721 		0x000a,
       
  1722 		0x2211,
       
  1723 		SCnvConversionData::SOneDirectionData::SRange::EKeyedTable1616,
       
  1724 		1,
       
  1725 		0,
       
  1726 			{
       
  1727 			UData_SKeyedTable1616(keyedTable1616_unicodeToSms7Bit_1)
       
  1728 			}
       
  1729 		},
       
  1730 		{
       
  1731 		0x000c,
       
  1732 		0x20ac,
       
  1733 		SCnvConversionData::SOneDirectionData::SRange::EKeyedTable1616,
       
  1734 		2,
       
  1735 		0,
       
  1736 			{
       
  1737 			UData_SKeyedTable1616(keyedTable1616_unicodeToSms7Bit_2)
       
  1738 			}
       
  1739 		}
       
  1740 	};
       
  1741 
       
  1742 GLREF_D const SCnvConversionData sms7BitConversionData=
       
  1743 	{
       
  1744 	SCnvConversionData::EFixedBigEndian,
       
  1745 		{
       
  1746 		ARRAY_LENGTH(sms7BitVariableByteDataRanges),
       
  1747 		sms7BitVariableByteDataRanges
       
  1748 		},
       
  1749 		{
       
  1750 		ARRAY_LENGTH(sms7BitToUnicodeDataRanges),
       
  1751 		sms7BitToUnicodeDataRanges
       
  1752 		},
       
  1753 		{
       
  1754 		ARRAY_LENGTH(unicodeToSms7BitDataRanges),
       
  1755 		unicodeToSms7BitDataRanges
       
  1756 		},
       
  1757 	NULL,
       
  1758 	NULL
       
  1759 	};
       
  1760 
       
  1761 GLREF_C void IsCharacterSetSMS7Bit(TInt& aConfidenceLevel, const TDesC8& aSample)
       
  1762 	{
       
  1763 	_LIT8(KHz1Esc,"\x7e\x7e");
       
  1764 	_LIT8(KHz2Esc,"\x7e\x7b");
       
  1765 	_LIT8(KHz3Esc,"\x7e\x7d");
       
  1766 	_LIT8(KLit8EscapeSequenceForJisRoman, "\x1b\x28\x4a");
       
  1767 	_LIT8(KLit8EscapeSequenceForAscii, "\x1b\x28\x42");
       
  1768 //	_LIT8(KLit8EscapeSequenceForHalfWidthKatakana, "\x1b\x28\x49");
       
  1769 	_LIT8(KLit8EscapeSequenceForJisC6226_1978, "\x1b\x24\x40");
       
  1770 	_LIT8(KLit8EscapeSequenceForJisX0208_1983, "\x1b\x24\x42");
       
  1771 	_LIT8(KLit8EscapeSequenceForJisX0208_199x, "\x1b\x26\x40\x1b\x24\x42");
       
  1772 	_LIT8(KLit8EscapeSequenceForJisX0212_1990, "\x1b\x24\x28\x44");
       
  1773 
       
  1774 	TInt hz1Result=0;
       
  1775 	TInt hz2Result=0;
       
  1776 	TInt hz3Result=0;
       
  1777 	TInt JisRomanResult = 0;
       
  1778 	TInt AsciiResult = 0;
       
  1779 	TInt JisCResult = 0;
       
  1780 	TInt JisX0208Result = 0;
       
  1781 	TInt JisX0212Result = 0;
       
  1782 	TInt JisX0208XResult = 0;
       
  1783 
       
  1784 	TInt sampleLength = aSample.Length();
       
  1785 	aConfidenceLevel =70;
       
  1786 	if (sampleLength == 0)
       
  1787 		return;
       
  1788 
       
  1789 	TInt HzEscSequences = 0;
       
  1790 	TInt JISEscSequences = 0;
       
  1791 
       
  1792 	for (TInt i = 0; i < sampleLength; ++i)
       
  1793 		{
       
  1794 
       
  1795 		if (i > hz1Result)
       
  1796 			{
       
  1797 			hz1Result=(aSample.Right(sampleLength-i)).Find(KHz1Esc);
       
  1798 			if (hz1Result!=KErrNotFound) //aConfidenceLevel-=2;
       
  1799 				HzEscSequences += 5;
       
  1800 			}
       
  1801 
       
  1802 		if (i > hz2Result)
       
  1803 			{
       
  1804 			hz2Result=(aSample.Right(sampleLength-i)).Find(KHz2Esc);
       
  1805 			if (hz2Result!=KErrNotFound) //aConfidenceLevel-=2;
       
  1806 				HzEscSequences += 5;
       
  1807 			}
       
  1808 
       
  1809 		if (i > hz3Result)
       
  1810 			{
       
  1811 			hz3Result=(aSample.Right(sampleLength-i)).Find(KHz3Esc);
       
  1812 			if (hz3Result!=KErrNotFound) //aConfidenceLevel-=2;
       
  1813 				HzEscSequences += 5;
       
  1814 			}
       
  1815 
       
  1816 		if (i > JisRomanResult)
       
  1817 			{
       
  1818 			JisRomanResult = (aSample.Right(sampleLength-i)).Find(KLit8EscapeSequenceForJisRoman);
       
  1819 			if (JisRomanResult!=KErrNotFound)
       
  1820 				JISEscSequences +=10;
       
  1821 			}
       
  1822 
       
  1823 		if (i > AsciiResult)
       
  1824 			{
       
  1825 			AsciiResult = (aSample.Right(sampleLength-i)).Find(KLit8EscapeSequenceForAscii);
       
  1826 			if (AsciiResult!=KErrNotFound)
       
  1827 				JISEscSequences +=10;
       
  1828 			}
       
  1829 
       
  1830 		if (i > JisCResult)
       
  1831 			{
       
  1832 			JisCResult = (aSample.Right(sampleLength-i)).Find(KLit8EscapeSequenceForJisC6226_1978);
       
  1833 			if (JisCResult!=KErrNotFound)
       
  1834 				JISEscSequences +=5;
       
  1835 			}
       
  1836 
       
  1837 		if (i > JisX0208Result)
       
  1838 			{
       
  1839 			JisX0208Result = (aSample.Right(sampleLength-i)).Find(KLit8EscapeSequenceForJisX0208_1983);
       
  1840 			if (JisX0208Result!=KErrNotFound)
       
  1841 				JISEscSequences +=5;
       
  1842 			}
       
  1843 
       
  1844 		if (i > JisX0212Result)
       
  1845 			{
       
  1846 			JisX0212Result = (aSample.Right(sampleLength-i)).Find(KLit8EscapeSequenceForJisX0212_1990);
       
  1847 			if (JisX0212Result!=KErrNotFound)
       
  1848 				JISEscSequences +=5;
       
  1849 			}
       
  1850 
       
  1851 		if (i > JisX0208XResult)
       
  1852 			{
       
  1853 			JisX0208XResult = (aSample.Right(sampleLength-i)).Find(KLit8EscapeSequenceForJisX0208_199x);
       
  1854 			if (JisX0208XResult!=KErrNotFound)
       
  1855 				JISEscSequences +=5;
       
  1856 			}
       
  1857 
       
  1858 		if ((aSample[i]&0x80)!=0x00)
       
  1859 			{
       
  1860 			aConfidenceLevel = 0;
       
  1861 			break;
       
  1862 			}
       
  1863 		else
       
  1864 			{
       
  1865 			TInt increment1 = i+1;
       
  1866 			if (aSample[i] == 0x1b)
       
  1867 				{
       
  1868 				static const TInt defaultExtensionTable[10] = 
       
  1869 					{0x0a, 0x14, 0x1b, 0x29, 0x2f, 0x3c, 0x3d, 0x3e, 0x40, 0x65};
       
  1870 				if (increment1 >= sampleLength)
       
  1871 					break;
       
  1872 				for (TInt j =0; j < 10; j++)
       
  1873 					{
       
  1874 					if (aSample[increment1] == defaultExtensionTable[j])
       
  1875 						{
       
  1876 						aConfidenceLevel+=5;
       
  1877 						break;
       
  1878 						}
       
  1879 					}
       
  1880 				}
       
  1881 			else if ((aSample[i]==0x01)||(aSample[i]==0x02)||(aSample[i]==0x03))
       
  1882 				{
       
  1883 				if (increment1 >= sampleLength)
       
  1884 					break;
       
  1885 				if ((aSample[increment1] >= 0x30) && (aSample[increment1] <= 0x39))
       
  1886 					{
       
  1887 					aConfidenceLevel+=5; 
       
  1888 					}
       
  1889 				}
       
  1890 			//next test the occurance of values 00-2f (except 0a & 0d) next to another character
       
  1891 			// These are the ASCII control codes and therefore low chances of these values occuring
       
  1892 			// next to the ASCII value
       
  1893 			else if ((aSample[i] < 0x20) && 
       
  1894 			   ((aSample[i] != 0x0a)||(aSample[i] != 0x0d)))
       
  1895 				{
       
  1896 				if (increment1 >= sampleLength)
       
  1897 					break;
       
  1898 				if (((aSample[increment1] >= 0x20) && (aSample[increment1] <= 0x5a)) ||
       
  1899 					((aSample[increment1] >= 0x61) && (aSample[increment1] <= 0x7a)))	
       
  1900 					{
       
  1901 					aConfidenceLevel+=2;
       
  1902 					}
       
  1903 				}
       
  1904 			// other possible tests to include... Greek matching...
       
  1905 			}
       
  1906 		} // for loop
       
  1907 	aConfidenceLevel = aConfidenceLevel - ((HzEscSequences*100)/sampleLength);
       
  1908 	aConfidenceLevel = aConfidenceLevel - ((JISEscSequences*100)/sampleLength);
       
  1909 	aConfidenceLevel =(aConfidenceLevel >0)? ((aConfidenceLevel > 100)? 100: aConfidenceLevel): 0;
       
  1910 	}
       
  1911