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, |