charconvfw/charconvplugins/src/plugins/ISO2022JP_2.CPP
branchRCL_3
changeset 16 748ec5531811
parent 0 1fb32624e06b
child 17 336bee5c2d35
equal deleted inserted replaced
10:f902e87c146f 16:748ec5531811
   282         const TDesC8& aReplacementForUnconvertibleUnicodeCharacters, 
   282         const TDesC8& aReplacementForUnconvertibleUnicodeCharacters, 
   283         TDes8& aForeign, 
   283         TDes8& aForeign, 
   284         const TDesC16& aUnicode, 
   284         const TDesC16& aUnicode, 
   285         CCnvCharacterSetConverter::TArrayOfAscendingIndices& aIndicesOfUnconvertibleCharacters)
   285         CCnvCharacterSetConverter::TArrayOfAscendingIndices& aIndicesOfUnconvertibleCharacters)
   286     {
   286     {
       
   287     TInt ret = KErrNone;
   287     RArray<CnvUtilities::SCharacterSet> characterSets;
   288     RArray<CnvUtilities::SCharacterSet> characterSets;
   288     if ( FeatureManager::FeatureSupported(KFeatureIdJapanesePicto) )
   289     if ( FeatureManager::FeatureSupported(KFeatureIdJapanesePicto) )
   289         {        
   290         {        
   290         CnvUtilities::SCharacterSet characterSet;
   291         CnvUtilities::SCharacterSet characterSet;
   291         characterSet.iConversionData=&CnvJisRoman::ConversionData();
   292         characterSet.iConversionData=&CnvJisRoman::ConversionData();
   292         characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisRomanToJisInPlace;
   293         characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisRomanToJisInPlace;
   293         characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisRoman;
   294         characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisRoman;
   294         characterSets.Append(characterSet);
   295         ret |= characterSets.Append(characterSet);
   295         characterSet.iConversionData=&CCnvCharacterSetConverter::AsciiConversionData();
   296         characterSet.iConversionData=&CCnvCharacterSetConverter::AsciiConversionData();
   296         characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromAsciiToJisInPlace;
   297         characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromAsciiToJisInPlace;
   297         characterSet.iEscapeSequence=&KLit8EscapeSequenceForAscii;
   298         characterSet.iEscapeSequence=&KLit8EscapeSequenceForAscii;
   298         characterSets.Append(characterSet);
   299         ret |= characterSets.Append(characterSet);
   299         characterSet.iConversionData=&CnvJisX0208::ConversionData();
   300         characterSet.iConversionData=&CnvJisX0208::ConversionData();
   300         characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisX0208ToJisInPlace;
   301         characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisX0208ToJisInPlace;
   301         characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisX0208_1983;
   302         characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisX0208_1983;
   302         characterSets.Append(characterSet);
   303         ret |= characterSets.Append(characterSet);
   303         characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisX0208_1983;
   304         characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisX0208_1983;
   304         characterSet.iConversionData=&CnvJisBase::HalfWidthKatakana7ConversionData();
   305         characterSet.iConversionData=&CnvJisBase::HalfWidthKatakana7ConversionData();
   305         characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromHalfKatakanaToFullKatakana;
   306         characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromHalfKatakanaToFullKatakana;
   306         characterSets.Append(characterSet);
   307         ret |= characterSets.Append(characterSet);
   307 
   308 
   308         SetCharacterSetsForPictograph(characterSets);
   309         SetCharacterSetsForPictograph(characterSets);
   309         }
   310         }
   310     else
   311     else
   311         {            
   312         {            
   312         CnvUtilities::SCharacterSet characterSet;
   313         CnvUtilities::SCharacterSet characterSet;
   313         characterSet.iConversionData=&CCnvCharacterSetConverter::AsciiConversionData();
   314         characterSet.iConversionData=&CCnvCharacterSetConverter::AsciiConversionData();
   314         characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromAsciiToJisInPlace;
   315         characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromAsciiToJisInPlace;
   315         characterSet.iEscapeSequence=&KLit8EscapeSequenceForAscii;
   316         characterSet.iEscapeSequence=&KLit8EscapeSequenceForAscii;
   316         characterSets.Append(characterSet);
   317         ret |= characterSets.Append(characterSet);
   317         characterSet.iConversionData=&CnvJisRoman::ConversionData();
   318         characterSet.iConversionData=&CnvJisRoman::ConversionData();
   318         characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisRomanToJisInPlace;
   319         characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisRomanToJisInPlace;
   319         characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisRoman;
   320         characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisRoman;
   320         characterSets.Append(characterSet);
   321         ret |= characterSets.Append(characterSet);
   321         characterSet.iConversionData=&CnvJisX0208::ConversionData();
   322         characterSet.iConversionData=&CnvJisX0208::ConversionData();
   322         characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisX0208ToJisInPlace;
   323         characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromJisX0208ToJisInPlace;
   323         characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisX0208_1983;
   324         characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisX0208_1983;
   324         characterSets.Append(characterSet);
   325         ret |= characterSets.Append(characterSet);
   325         characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisX0208_1983;
   326         characterSet.iEscapeSequence=&KLit8EscapeSequenceForJisX0208_1983;
   326         characterSet.iConversionData=&CnvJisBase::HalfWidthKatakana7ConversionData();
   327         characterSet.iConversionData=&CnvJisBase::HalfWidthKatakana7ConversionData();
   327         characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromHalfKatakanaToFullKatakana;
   328         characterSet.iConvertFromIntermediateBufferInPlace=ConvertFromHalfKatakanaToFullKatakana;
   328         characterSets.Append(characterSet);
   329         ret |= characterSets.Append(characterSet);
   329         }
   330         }
       
   331     __ASSERT_DEBUG(!ret, User::Panic(_L("RArray append failure"), ret));
   330     TUint notUsed;
   332     TUint notUsed;
   331 //S60 30    TUint inputConversionFlags=CCnvCharacterSetConverter::EInputConversionFlagMustEndInDefaultCharacterSet;
   333 //S60 30    TUint inputConversionFlags=CCnvCharacterSetConverter::EInputConversionFlagMustEndInDefaultCharacterSet;
   332     TUint inputConversionFlags=CCnvCharacterSetConverter::EInputConversionFlagMustEndInDefaultCharacterSet |
   334     TUint inputConversionFlags=CCnvCharacterSetConverter::EInputConversionFlagMustEndInDefaultCharacterSet |
   333                                CCnvCharacterSetConverter::EInputConversionFlagAssumeStartInDefaultCharacterSet;
   335                                CCnvCharacterSetConverter::EInputConversionFlagAssumeStartInDefaultCharacterSet;
   334     TInt unconvert = CnvUtilities::ConvertFromUnicode(aDefaultEndiannessOfForeignCharacters,
   336     TInt unconvert = CnvUtilities::ConvertFromUnicode(aDefaultEndiannessOfForeignCharacters,
   390     FeatureManager::InitializeLibL();
   392     FeatureManager::InitializeLibL();
   391     }
   393     }
   392 
   394 
   393 const TImplementationProxy ImplementationTable[] = 
   395 const TImplementationProxy ImplementationTable[] = 
   394     {
   396     {
   395         IMPLEMENTATION_PROXY_ENTRY(0x100066A0,  CISO2022JPConverterImpl::NewL)
   397 #ifdef S60_TEST
       
   398     IMPLEMENTATION_PROXY_ENTRY(0x01000006,  CISO2022JPConverterImpl::NewL)
       
   399 #else
       
   400     IMPLEMENTATION_PROXY_ENTRY(0x100066A0,  CISO2022JPConverterImpl::NewL)
       
   401 #endif        
   396     };
   402     };
   397 
   403 
   398 EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
   404 EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
   399     {
   405     {
   400     aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
   406     aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);