summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDon Sanders <don.sanders@nokia.com>2011-03-21 15:21:16 +1000
committerDon Sanders <don.sanders@nokia.com>2011-03-21 15:21:16 +1000
commit185d565d756abd706faa75e5229cb2480019256e (patch)
tree20a885e8ba0e57bdd84da20e2d8e046f7a3c31f0
parent338cf165f6442a8a74004a128a8479b47db93159 (diff)
parent894d0deef39f6c78028833386af2950c8367f30b (diff)
Merge commit 'refs/merge-requests/11' of git://gitorious.org/qt-labs/messagingframework into merge-requests/11
-rw-r--r--src/libraries/qmfclient/qmailmessage.cpp18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/libraries/qmfclient/qmailmessage.cpp b/src/libraries/qmfclient/qmailmessage.cpp
index 5bf56f1e..83ea8c5a 100644
--- a/src/libraries/qmfclient/qmailmessage.cpp
+++ b/src/libraries/qmfclient/qmailmessage.cpp
@@ -1595,8 +1595,14 @@ void QMailMessageHeaderFieldPrivate::setParameter(const QByteArray& name, const
QByteArray input(value);
do
{
- pieces.append(input.left(maxInputLength));
- input = input.mid(maxInputLength);
+ int splitPoint = maxInputLength;
+ if (encoded && input.length() > maxInputLength) {
+ int percentPosition = input.indexOf("%", maxInputLength - 2);
+ if (percentPosition != -1 && percentPosition < maxInputLength)
+ splitPoint = percentPosition;
+ }
+ pieces.append(input.left(splitPoint));
+ input = input.mid(splitPoint);
} while (input.length());
if (it == end) {
@@ -1605,7 +1611,7 @@ void QMailMessageHeaderFieldPrivate::setParameter(const QByteArray& name, const
while (pieces.count() > 0) {
QByteArray id(param);
id.append('*').append(QByteArray::number(n));
- if (encoded && (n == 0))
+ if (encoded)
id.append('*');
_parameters.append(qMakePair(id, pieces.takeFirst()));
@@ -5486,7 +5492,7 @@ QMailMessageContentDisposition QMailMessagePart::contentDisposition() const
*/
void QMailMessagePart::setContentDisposition(const QMailMessageContentDisposition &disposition)
{
- setHeaderField("Content-Disposition", disposition.toString());
+ setHeaderField("Content-Disposition", disposition.toString(false, false));
}
/*!
@@ -5534,10 +5540,10 @@ QMailMessagePart::Location QMailMessagePart::location() const
*/
QString QMailMessagePart::displayName() const
{
- QString id(decodeWordSequence(contentType().name()));
+ QString id(contentType().isParameterEncoded("name")?decodeParameter(contentType().name()):decodeWordSequence(contentType().name()));
if (id.isEmpty())
- id = decodeWordSequence(contentDisposition().filename());
+ id = contentDisposition().isParameterEncoded("filename")?decodeParameter(contentDisposition().filename()):decodeWordSequence(contentDisposition().filename());
if (id.isEmpty())
id = contentID();