Skip to content

Commit

Permalink
Fixed MailCore#202: Fixed decoding of modified UTF7
Browse files Browse the repository at this point in the history
  • Loading branch information
dinhvh committed Jul 18, 2013
1 parent c2f75bf commit 9fec655
Showing 1 changed file with 9 additions and 3 deletions.
12 changes: 9 additions & 3 deletions src/core/basetypes/MCString.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1127,8 +1127,15 @@ String * String::uppercaseString()
void String::appendBytes(const char * bytes, unsigned int length, const char * charset)
{
#if __APPLE__
CFStringRef encodingName = CFStringCreateWithCString(NULL, charset, kCFStringEncodingUTF8);
CFStringEncoding encoding = CFStringConvertIANACharSetNameToEncoding(encodingName);
CFStringEncoding encoding;
if (strcasecmp(charset, "mutf-7") == 0) {
encoding = kCFStringEncodingUTF7_IMAP;
}
else {
CFStringRef encodingName = CFStringCreateWithCString(NULL, charset, kCFStringEncodingUTF8);
encoding = CFStringConvertIANACharSetNameToEncoding(encodingName);
CFRelease(encodingName);
}
CFStringRef cfStr = CFStringCreateWithBytes(NULL, (const UInt8 *) bytes, (CFIndex) length, encoding, false);
if (cfStr != NULL) {
CFDataRef data = CFStringCreateExternalRepresentation(NULL, cfStr, kCFStringEncodingUTF16LE, '_');
Expand All @@ -1138,7 +1145,6 @@ void String::appendBytes(const char * bytes, unsigned int length, const char * c
}
CFRelease(cfStr);
}
CFRelease(encodingName);
#else
UErrorCode err;

Expand Down

0 comments on commit 9fec655

Please sign in to comment.