forward port SVN commit 614058 by kainhofe
Make RFC 2231-encoded attachment names work. Patch approved by Ingo (the issues he had were corrected).
RFC 2231 defines an enhanced encoding for attachment filenames, and thunderbird
apparently implemented this encoding. RFC 2231 allows one field to be split
across multiple numbered entries of the form fieldname*0=....;
fieldname*1=...; fieldname*2=...; or fieldname*0=....; fieldname*1=...; fieldname*2=...;
All these entries first need to be concatenated to form the full value of the field.
Here's a real-life example:
--------------060807060608070200030605
Content-Type: application/vnd.ms-excel;
name*0*=ISO-8859-15''%41%46%42%D6%20%42%65%73%65%74%7A%75%6E%67%73%6C%69;
name*1*=%73%74%65%20%53%74%61%6E%64%20%32%30%30%36%2D%31%32%2D%31%39%2E;
name*2*=%78%6C%73
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename*0*=ISO-8859-15''%41%46%42%D6%20%42%65%73%65%74%7A%75%6E%67%73%6C;
filename*1*=%69%73%74%65%20%53%74%61%6E%64%20%32%30%30%36%2D%31%32%2D%31;
filename*2*=%39%2E%78%6C%73
As a result, KMail shows %39%2E%78%6C%73 as the file name in both the message
preview panel as well as in the mime tree.
With this patch, KMail correctly shows the proper filename.
The patch adds one static method to collect all parts of rfc 2231-encoded
params into one single string. That method is then used in two different
places for the name and the filename props.
One minor problem remains, though: As the mime library does not have support
for rfc2231 encoded attachments, the message is not shown with the attachment
icon in the message list.
svn path=/trunk/KDE/kdepim/; revision=641088
TRUE and FALSE are C-isms, use C++ keywords instead
merge SVN commit 632360 by adridg:
Indentation style is spaces; there's crashes in here occasionally after removing index files, rather peculiar.
svn path=/branches/KDE/3.5/kdepim/; revision=633069
RFC 2231 defines an enhanced encoding for attachment filenames, and thunderbird
apparently implemented this encoding. RFC 2231 allows one field to be split
across multiple numbered entries of the form fieldname*0=....;
fieldname*1=...; fieldname*2=...; or fieldname*0=....; fieldname*1=...; fieldname*2=...;
All these entries first need to be concatenated to form the full value of the field.
Here's a real-life example:
--------------060807060608070200030605
Content-Type: application/vnd.ms-excel;
name*0*=ISO-8859-15''%41%46%42%D6%20%42%65%73%65%74%7A%75%6E%67%73%6C%69;
name*1*=%73%74%65%20%53%74%61%6E%64%20%32%30%30%36%2D%31%32%2D%31%39%2E;
name*2*=%78%6C%73
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename*0*=ISO-8859-15''%41%46%42%D6%20%42%65%73%65%74%7A%75%6E%67%73%6C;
filename*1*=%69%73%74%65%20%53%74%61%6E%64%20%32%30%30%36%2D%31%32%2D%31;
filename*2*=%39%2E%78%6C%73
As a result, KMail shows %39%2E%78%6C%73 as the file name in both the message
preview panel as well as in the mime tree.
With this patch, KMail correctly shows the proper filename.
The patch adds one static method to collect all parts of rfc 2231-encoded
params into one single string. That method is then used in two different
places for the name and the filename props.
One minor problem remains, though: As the mime library does not have support
for rfc2231 encoded attachments, the message is not shown with the attachment
icon in the message list.
BUG:108091
BUG:113100
svn path=/branches/KDE/3.5/kdepim/; revision=622052
Suppose headers charset from content-type header if headers not
properly encoded. If content-type charset is "us-ascii", use "utf-8"
instead. Write maildir and mbox indexes in right encoding.
BUGS:98079
svn path=/branches/KDE/3.5/kdepim/; revision=614058
Backporting lots of stuff from 3.5
Better KPaintInfo struct.
New helper methods from 3.5
Changes to context menu in mainwidget.
TODO: test painting of the leftmost column on a different
machine.
#1 Check if ToDo Icon is present or not.
#2 Check if the painting is borked or not.
svn path=/branches/kdepim/proko2/kdepim/; revision=556100
530060:
--------------
Fix the following problems as indicated by Christoph Bartoschek in kde-pim:
- kmail/imapjob.cpp:240
- kmail/imapjob.cpp:262 (similar)
If account is NULL as indicated by line 226, then line 240 crashes.
- kmail/imapjob.cpp:104
If msg_parent is NULL as indicated by line 90, then line 104 crashes.
530074:
--------------
Second batch of fixes related to Christoph Bartoschek's report in kde-pim:
- kmail/kmfoldercachedimap.cpp:1749
If the if conditions in line 1741 and 1745 are both false, then line 1749 crashes.
- kmail/kmfoldertree.cpp:1480
If fti is NULL as indicated by line 1475, then line 1480 crashes.
- kmail/kmfoldertree.cpp:164
If mFolder is NULL as indicated by line 154, then line 154, 160 crash.
- kmail/kmfoldertree.cpp:143
If mFolder is NULL as indicated by line 136, then line 143 crashes.
- kmail/kmfoldertree.cpp:1549
If folder is NULL as indicated by line 1537, then line 1549 crashes.
The last bug is only partially fixed, the whole KMFolderTree::slotUpdateCounts(KMFolder * folder)
function could use a rewrite.
530119:
------------
Third batch of fixes related to Christoph Bartoschek's email in kde-pim:
- kmail/imapaccountbase.cpp:1102
If line 1092 gets executed and also 1102, then the second crashes.
- kmail/kmmsgdict.cpp:248
If folder is NULL as indicated by line 244, then line 248 crashes.
- kmail/kmmsgdict.cpp:214
If folder is NULL as indicated by line 208, then line 214,225, crashes.
- kmail/renamejob.cpp:64
If storage is NULL as indicated by line 57, then line 62 crashes.
Lines where the operator preference between & and == leads to an error.
- kmail/kmmsgbase.cpp:873
- kmail/kmfolderimap.cpp:876
If f is NULL as indicated by line 869, then line 876 crashes.
- kmail/kmsender.cpp:362
If sentFolder is NULL as indicated by line 340, then line 362, 367
crashes.
Thanks to Christoph for working on this.
svn path=/trunk/KDE/kdepim/; revision=532932
- kmail/imapaccountbase.cpp:1102
If line 1092 gets executed and also 1102, then the second crashes.
- kmail/kmmsgdict.cpp:248
If folder is NULL as indicated by line 244, then line 248 crashes.
- kmail/kmmsgdict.cpp:214
If folder is NULL as indicated by line 208, then line 214,225, crashes.
- kmail/renamejob.cpp:64
If storage is NULL as indicated by line 57, then line 62 crashes.
Lines where the operator preference between & and == leads to an error.
- kmail/kmmsgbase.cpp:873
- kmail/kmfolderimap.cpp:876
If f is NULL as indicated by line 869, then line 876 crashes.
- kmail/kmsender.cpp:362
If sentFolder is NULL as indicated by line 340, then line 362, 367
crashes.
Thanks to Christoph for working on this.
svn path=/branches/KDE/3.5/kdepim/; revision=530119
- extend the interface of the class to simplify it's handling
- partial port of existing kmail code to use the new class
svn path=/trunk/KDE/kdepim/; revision=474940
The simple status variable has been replaced by a class
which encapsulates the internal representation of the status
flags as well as the logic to keep the integrity.
svn path=/trunk/KDE/kdepim/; revision=474533
QMAX/QMIN -> qMax/qMin
I don't know what to do about Q_LONG and Q_ULONG because of the following code in qglobal.h:
#if defined(Q_OS_WIN64)
typedef __int64 Q_LONG; /* word up to 64 bit signed */
typedef unsigned __int64 Q_ULONG; /* word up to 64 bit unsigned */
#else
typedef long Q_LONG; /* word up to 64 bit signed */
typedef unsigned long Q_ULONG; /* word up to 64 bit unsigned */
#endif
Should I simply convert to (unsigned) long?
svn path=/trunk/KDE/kdepim/; revision=468393
SVN commit 463672 by gungl:
Replace the existent mix in the handling of the Ignored state
by a clear directive, that Ignored overrides New and Unread.
This is implemented in the isRead() and related methods.
svn path=/trunk/KDE/kdepim/; revision=464991
by a clear directive, that Ignored overrides New and Unread.
This is implemented in the isRead() and related methods.
BUG:97314
svn path=/branches/KDE/3.5/kdepim/; revision=463672