diff options
author | Valerio Valerio <valerio.valerio@nokia.com> | 2012-02-16 14:07:00 +0200 |
---|---|---|
committer | Valerio Valerio <valerio.valerio@nokia.com> | 2012-02-16 14:07:00 +0200 |
commit | 965cd6e8b4a0c7fc8756664233d48cf0e84c7784 (patch) | |
tree | 2f898458f86529a3325cfdb9d3faaf888a5e0ca3 /src/libraries/qmfclient/qmailmessage.cpp | |
parent | 99821f8893570d12f6da53010ea41b3569f44a5a (diff) |
Fixes: NB#278651 - Messageserver crashes upon attempt to fetch Russian news letter mails in particular account.
Diffstat (limited to 'src/libraries/qmfclient/qmailmessage.cpp')
-rw-r--r-- | src/libraries/qmfclient/qmailmessage.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/libraries/qmfclient/qmailmessage.cpp b/src/libraries/qmfclient/qmailmessage.cpp index a8ad6165..b0645f57 100644 --- a/src/libraries/qmfclient/qmailmessage.cpp +++ b/src/libraries/qmfclient/qmailmessage.cpp @@ -8380,8 +8380,20 @@ void QMailMessage::setUnmodified() void QMailMessage::setHeader(const QMailMessageHeader& partHeader, const QMailMessagePartContainerPrivate* parent) { QMailMessagePartContainer::setHeader(partHeader, parent); -} - + // See if any of the header fields need to be propagated to the meta data object + foreach (const QMailMessageHeaderField& field, headerFields()) { + QByteArray duplicatedId(duplicatedData(field.id())); + if (!duplicatedId.isNull()) { + QMailMessageContentType ct(headerField("Content-Type")); + if (!is7BitAscii(field.content()) && unicodeConvertingCharset(ct.charset())) { + updateMetaData(duplicatedId, toUnicode(field.content(), ct.charset())); + } else { + updateMetaData(duplicatedId, field.decodedContent()); + } + } + } +} + /*! \internal */ QByteArray QMailMessage::duplicatedData(const QString& id) const { |