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