SVN commit 437400 by sngeorgaras:
fixxing an infinite loop bug
M +19 -13 kmhtmlarchive.cpp
--- trunk/kdenonbeta/kio_mhtml/kmhtmlarchive.cpp #437399:437400
@@ -1650,7 +1650,8 @@
// Subject foreground color
ins.append(hTxt);
ins.append("\">");
- ins.append(archive->mSubject.local8Bit());
+ if(archive->mSubject.isNull()) ins.append("No subject");
+ else ins.append(archive->mSubject.local8Bit());
ins.append("");
if(archive->isDOS) ins.append(archive->controlChars[0]);
ins.append(archive->controlChars[1]);
@@ -1680,7 +1681,7 @@
ins.append("
");
if(archive->isDOS) ins.append(archive->controlChars[0]);
ins.append(archive->controlChars[1]);
- ins.append("From: | ");
+ ins.append("From:");
if(archive->isDOS) ins.append(archive->controlChars[0]);
ins.append(archive->controlChars[1]);
ins.append("");
@@ -1695,7 +1696,7 @@
ins.append(" | ");
if(archive->isDOS) ins.append(archive->controlChars[0]);
ins.append(archive->controlChars[1]);
- ins.append("To: | ");
+ ins.append("To:");
if(archive->isDOS) ins.append(archive->controlChars[0]);
ins.append(archive->controlChars[1]);
ins.append("");
@@ -1711,7 +1712,7 @@
ins.append(" | ");
if(archive->isDOS) ins.append(archive->controlChars[0]);
ins.append(archive->controlChars[1]);
- ins.append("CC: | ");
+ ins.append("CC:");
if(archive->isDOS) ins.append(archive->controlChars[0]);
ins.append(archive->controlChars[1]);
ins.append("");
@@ -1728,7 +1729,7 @@
ins.append(" | ");
if(archive->isDOS) ins.append(archive->controlChars[0]);
ins.append(archive->controlChars[1]);
- ins.append("BCC: | ");
+ ins.append("BCC:");
if(archive->isDOS) ins.append(archive->controlChars[0]);
ins.append(archive->controlChars[1]);
ins.append("");
@@ -1744,12 +1745,12 @@
ins.append(" | ");
if(archive->isDOS) ins.append(archive->controlChars[0]);
ins.append(archive->controlChars[1]);
- ins.append("Date: | ");
+ ins.append("Date:");
if(archive->isDOS) ins.append(archive->controlChars[0]);
ins.append(archive->controlChars[1]);
- ins.append("");
+ ins.append(" | ");
ins.append(archive->mDate);
- ins.append(" | ");
+ ins.append("");
if(archive->isDOS) ins.append(archive->controlChars[0]);
ins.append(archive->controlChars[1]);
ins.append("");
@@ -1768,7 +1769,7 @@
================================*/
QString KmhtmlEntry::createEmlAttachments(){
int att=0;
-
+ int curAtt=0;
for(int i=0;iitems;i++) if(archive->item[i].contentDisposition.lower()=="attachment") att++;
if(att==0) return "";
QCString ins;
@@ -1796,6 +1797,7 @@
ins.append(archive->controlChars[1]);
for(int i=0;iitems;i++){
if(archive->item[i].contentDisposition.lower()=="attachment"){
+ curAtt+=1;
ins.append(" item[i].alias.local8Bit());
//Εντολές RHP.doc
@@ -1812,11 +1814,13 @@
//180KB
ins.append(" Bytes, type: ");
ins.append(archive->item[i].mimeType);
- //image/gif
+ if(att==curAtt) ins.append("
");
ins.append(" |
");
}
}
- ins.append("
");
+ ins.append("");
+ if(archive->isDOS) ins.append(archive->controlChars[0]);
+ ins.append(archive->controlChars[1]);
ins.append("");
if(archive->isDOS) ins.append(archive->controlChars[0]);
ins.append(archive->controlChars[1]);
@@ -1873,13 +1877,15 @@
st=encodedText.find("=?");
while(st!=-1){
en=encodedText.find("?=");
- while(encodedText.mid(en+2,1)!=" " && en+2<(int)encodedText.length()) en=encodedText.find("?=",en+1);
+ while(encodedText.mid(en+2,2)!="\" " && encodedText.mid(en+2,1)!=" " && en+2<(int)encodedText.length()) en=encodedText.find("?=",en+1);
+ //while(encodedText.mid(en+2,1)!=" " && en+2<(int)encodedText.length()) en=encodedText.find("?=",en+1);
if(en==-1) break;
decodedText+=encodedText.left(st);
QString tmp=encodedText.mid(st,en-st+2);
encodedText=encodedText.mid(en+2);
decodedText+=decodeRFC2047String(tmp);
- st=encodedText.find("=?",st+1);
+ st=encodedText.find("=?");
+ //st=encodedText.find("=?",st+1);
}
decodedText += encodedText;
// //kdDebug()<<"[KmhtmlArchive::decodeRFC2047Phrase]: decodedText="<< decodedText << endl;