diff options
Diffstat (limited to 'deskutils/kdepim4/files/patch-mimeheader.cc')
-rw-r--r-- | deskutils/kdepim4/files/patch-mimeheader.cc | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/deskutils/kdepim4/files/patch-mimeheader.cc b/deskutils/kdepim4/files/patch-mimeheader.cc deleted file mode 100644 index 832648a5cce5..000000000000 --- a/deskutils/kdepim4/files/patch-mimeheader.cc +++ /dev/null @@ -1,77 +0,0 @@ ---- kioslaves/imap4/mimeheader.cc 2005/07/26 18:54:59 438982 -+++ kioslaves/imap4/mimeheader.cc 2007/03/28 21:58:46 647617 -@@ -339,35 +339,47 @@ - { - val = rfcDecoder::encodeRFC2231String (aValue); - } -+ //kdDebug(7116) << "mimeHeader::setParameter() - val = '" << val << "'" << endl; - //see if it needs to be truncated - vlen = val.length(); - llen = aLabel.length(); -- if (vlen + llen + 4 > 80 && llen < 80 - 8 ) -+ if (vlen + llen + 4 > 80 && llen < 80 - 8 - 2 ) - { -- int limit = 80 - 8 - (int)llen; -+ const int limit = 80 - 8 - 2 - (int)llen; -+ // the -2 is there to allow extending the length of a part of val -+ // by 1 or 2 in order to prevent an encoded character from being -+ // split in half - int i = 0; - QString shortValue; - QCString shortLabel; - - while (!val.isEmpty ()) - { -- //don't truncate the encoded chars -- int offset = 0; -- if (limit > int(vlen)) -- limit = vlen; -- offset = val.findRev ('%', limit); -- if (offset == limit - 1 || offset == limit - 2) -- { --// cout << "offset " << offset << "-" << limit << "=" << limit-offset << endl; -- offset = limit - offset; -+ int partLen; // the length of the next part of the value -+ if ( limit >= int(vlen) ) { -+ // the rest of the value fits completely into one continued header -+ partLen = vlen; -+ } -+ else { -+ partLen = limit; -+ // make sure that we don't split an encoded char in half -+ if ( val[partLen-1] == '%' ) { -+ partLen += 2; -+ } -+ else if ( partLen > 1 && val[partLen-2] == '%' ) { -+ partLen += 1; -+ } -+ // make sure partLen does not exceed vlen (could happen in case of -+ // an incomplete encoded char) -+ if ( partLen > int(vlen) ) { -+ partLen = vlen; -+ } - } -- else -- offset = 0; -- shortValue = val.left (limit - offset); -+ shortValue = val.left( partLen ); - shortLabel.setNum (i); - shortLabel = aLabel + "*" + shortLabel; -- val = val.right (vlen - limit + offset); -- vlen = vlen - limit + offset; -+ val = val.right( vlen - partLen ); -+ vlen = vlen - partLen; - if (encoded) - { - if (i == 0) -@@ -376,7 +388,9 @@ - } - shortLabel += "*"; - } --// cout << shortLabel << "-" << shortValue << endl; -+ //kdDebug(7116) << "mimeHeader::setParameter() - shortLabel = '" << shortLabel << "'" << endl; -+ //kdDebug(7116) << "mimeHeader::setParameter() - shortValue = '" << shortValue << "'" << endl; -+ //kdDebug(7116) << "mimeHeader::setParameter() - val = '" << val << "'" << endl; - aDict->insert (shortLabel, new QString (shortValue)); - i++; - } |