email/pop3andsmtpmtm/servermtmutils/src/IMCVCODC.CPP
branchRCL_3
changeset 29 7e4e4bcc75b6
parent 0 72b543305e3a
child 76 60a8a215b0ec
equal deleted inserted replaced
28:fbb813aef148 29:7e4e4bcc75b6
  1467 	for(j = i+1; *(ptr+j) != KImcvQuestionMark ; j++)
  1467 	for(j = i+1; *(ptr+j) != KImcvQuestionMark ; j++)
  1468 		;
  1468 		;
  1469 
  1469 
  1470 	// Intermediate buffer for decoding, prior to converting
  1470 	// Intermediate buffer for decoding, prior to converting
  1471 
  1471 
  1472       HBufC8* decodeBuf8 = HBufC8::NewLC(aBufOut.MaxLength());
  1472     HBufC8* decodeBuf8 = HBufC8::NewLC(aBufOut.MaxLength());
  1473 
  1473 
  1474 	decodeBuf8->Des().Copy( aBufIn.Mid(i+1, j -i-1));
  1474 	decodeBuf8->Des().Copy( aBufIn.Mid(i+1, j -i-1));
  1475 
  1475 
  1476    	// Depending on type of encoding Q or B, decode.
  1476    	// Depending on type of encoding Q or B, decode.
  1477 
  1477 
  1478 	TPtr8 dataPtr8(dataBuf8->Des());
  1478 	TPtr8 dataPtr8(dataBuf8->Des());
  1479 
  1479 	TPtr8 decodePtr8(decodeBuf8->Des());
  1480 	switch (iEncodingInfo.EncodingType())
  1480 	switch (iEncodingInfo.EncodingType())
  1481 		{
  1481 		{
  1482 		case TImHeaderEncodingInfo::EBase64 :
  1482 		case TImHeaderEncodingInfo::EBase64 :
  1483 			iB64Codec.Decode( *decodeBuf8, dataPtr8 );
  1483 			iB64Codec.Decode( *decodeBuf8, dataPtr8 );
  1484 			break;
  1484 			break;
  1485 		case TImHeaderEncodingInfo::EQP :
  1485 		case TImHeaderEncodingInfo::EQP :
  1486 			// Replace all underscores in text with SPACE.
  1486 			// Replace all underscores in text with SPACE.
  1487 			iQPCodec.Decode( *decodeBuf8, dataPtr8 );
  1487 			i=decodePtr8.Length();
  1488 
       
  1489 			i=dataPtr8.Length();
       
  1490 			while (i--)
  1488 			while (i--)
  1491 				{
  1489 				{
  1492 				if (dataPtr8[i] == KImcvUnderScore)
  1490 				if (decodePtr8[i] == KImcvUnderScore)
  1493 					dataPtr8[i] = KImcvSpaceChar;	
  1491 				    decodePtr8[i] = KImcvSpaceChar;
  1494 				}
  1492 				}
       
  1493             iQPCodec.Decode( *decodeBuf8, dataPtr8 );
  1495 			break;
  1494 			break;
  1496 		default:
  1495 		default:
  1497 			dataBuf8->Des().Copy(*decodeBuf8); 
  1496 			dataBuf8->Des().Copy(*decodeBuf8); 
  1498 			break;
  1497 			break;
  1499 		}
  1498 		}