author | llornkcor <llornkcor> | 2003-05-24 02:07:21 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2003-05-24 02:07:21 (UTC) |
commit | 694ff39fe4f0f4164edd7a2a80abe6be3a4fa2f9 (patch) (unidiff) | |
tree | 6c3f2a5837e32adf2755de4f90d3590d585f1a96 | |
parent | 62d2ddfb5cd77e2637cdf7fe16d76aac04975984 (diff) | |
download | opie-694ff39fe4f0f4164edd7a2a80abe6be3a4fa2f9.zip opie-694ff39fe4f0f4164edd7a2a80abe6be3a4fa2f9.tar.gz opie-694ff39fe4f0f4164edd7a2a80abe6be3a4fa2f9.tar.bz2 |
fix for a few crashes. one being stack overwrite. please test before I commit to 0_99
-rw-r--r-- | noncore/net/mailit/emailclient.cpp | 8 | ||||
-rw-r--r-- | noncore/net/mailit/emailhandler.cpp | 8 | ||||
-rw-r--r-- | noncore/net/mailit/mailitwindow.cpp | 22 | ||||
-rw-r--r-- | noncore/unsupported/mailit/emailclient.cpp | 8 | ||||
-rw-r--r-- | noncore/unsupported/mailit/emailhandler.cpp | 8 | ||||
-rw-r--r-- | noncore/unsupported/mailit/mailitwindow.cpp | 22 |
6 files changed, 42 insertions, 34 deletions
diff --git a/noncore/net/mailit/emailclient.cpp b/noncore/net/mailit/emailclient.cpp index 2102ba7..da1226c 100644 --- a/noncore/net/mailit/emailclient.cpp +++ b/noncore/net/mailit/emailclient.cpp | |||
@@ -456,36 +456,36 @@ void EmailClient::mailArrived(const Email &mail, bool fromDisk) | |||
456 | Email *mailPtr; | 456 | Email *mailPtr; |
457 | item = (EmailListItem *) inboxView->firstChild(); | 457 | item = (EmailListItem *) inboxView->firstChild(); |
458 | while ((item != NULL)&&(!found)) | 458 | while ((item != NULL)&&(!found)) |
459 | { | 459 | { |
460 | mailPtr = item->getMail(); | 460 | mailPtr = item->getMail(); |
461 | if (mailPtr->id == newMail.id) { | 461 | if (mailPtr->id == newMail.id) { |
462 | item->setMail(newMail); | 462 | item->setMail(newMail); |
463 | emit mailUpdated(item->getMail()); | 463 | emit mailUpdated(item->getMail()); |
464 | found = true; | 464 | found = true; |
465 | } | 465 | } |
466 | item = (EmailListItem *) item->nextSibling(); | 466 | item = (EmailListItem *) item->nextSibling(); |
467 | } | 467 | } |
468 | } | 468 | } |
469 | if ((!found)||(fromDisk)) { | 469 | if ((!found)||(fromDisk)) { |
470 | item = new EmailListItem(inboxView, newMail, TRUE); | 470 | item = new EmailListItem(inboxView, newMail, TRUE); |
471 | } | 471 | } |
472 | if (item->getMail()->files.count()>0) | 472 | // if (item->getMail()->files.count()>0) |
473 | { | 473 | // { |
474 | item->setPixmap(0, Resource::loadPixmap("mailit/attach")); | 474 | // item->setPixmap(0, Resource::loadPixmap("mailit/attach")); |
475 | } | 475 | // } |
476 | /*if (!newMail.downloaded) | 476 | /*if (!newMail.downloaded) |
477 | mailDownloadList.sizeInsert(newMail.serverId, newMail.size);*/ | 477 | mailDownloadList.sizeInsert(newMail.serverId, newMail.size);*/ |
478 | 478 | ||
479 | mailboxView->setCurrentTab(0); | 479 | mailboxView->setCurrentTab(0); |
480 | 480 | ||
481 | } | 481 | } |
482 | 482 | ||
483 | void EmailClient::allMailArrived(int count) | 483 | void EmailClient::allMailArrived(int count) |
484 | { | 484 | { |
485 | // not previewing means all mailtransfer has been done | 485 | // not previewing means all mailtransfer has been done |
486 | /*if (!previewingMail) {*/ | 486 | /*if (!previewingMail) {*/ |
487 | if ( (allAccounts) && ( (currentAccount = accountList.next()) !=0 ) ) { | 487 | if ( (allAccounts) && ( (currentAccount = accountList.next()) !=0 ) ) { |
488 | emit newCaption("Mailit - " + currentAccount->accountName); | 488 | emit newCaption("Mailit - " + currentAccount->accountName); |
489 | getNewMail(); | 489 | getNewMail(); |
490 | return; | 490 | return; |
491 | } else { | 491 | } else { |
diff --git a/noncore/net/mailit/emailhandler.cpp b/noncore/net/mailit/emailhandler.cpp index 59ccd90..39f693d 100644 --- a/noncore/net/mailit/emailhandler.cpp +++ b/noncore/net/mailit/emailhandler.cpp | |||
@@ -162,34 +162,36 @@ bool EmailHandler::parse(const QString &in, const QString &lineShift, Email *mai | |||
162 | mail->files.setAutoDelete(TRUE); | 162 | mail->files.setAutoDelete(TRUE); |
163 | 163 | ||
164 | temp = lineShift + "." + lineShift; | 164 | temp = lineShift + "." + lineShift; |
165 | 165 | ||
166 | if (in.right(temp.length()) != temp) { | 166 | if (in.right(temp.length()) != temp) { |
167 | mail->rawMail += temp; | 167 | mail->rawMail += temp; |
168 | } | 168 | } |
169 | 169 | ||
170 | 170 | ||
171 | delimiter = lineShift + lineShift; // "\n\n" or "\r\n\r\n" | 171 | delimiter = lineShift + lineShift; // "\n\n" or "\r\n\r\n" |
172 | pos = in.find(delimiter, 0, FALSE); | 172 | pos = in.find(delimiter, 0, FALSE); |
173 | header = in.left(pos); | 173 | header = in.left(pos); |
174 | body = in.right(in.length() - pos - delimiter.length()); | 174 | body = in.right(in.length() - pos - delimiter.length()); |
175 | if ((body.at(body.length()-2) == '.') && (body.at(body.length()-3) == '\n')) | 175 | if ((body.at(body.length()-2) == '.') && (body.at(body.length()-3) == '\n')) |
176 | body.truncate(body.length()-2); | 176 | body.truncate(body.length()-2); |
177 | 177 | ||
178 | TextParser p(header, lineShift); | 178 | // TextParser p(header, lineShift); |
179 | 179 | TextParser * lp = new TextParser(header, lineShift); | |
180 | #define p (*lp) | ||
181 | |||
180 | if ((pos = p.find("FROM",':', 0, TRUE)) != -1) { | 182 | if ((pos = p.find("FROM",':', 0, TRUE)) != -1) { |
181 | pos++; | 183 | pos++; |
182 | if (p.separatorAt(pos) == ' ') { | 184 | if (p.separatorAt(pos) == ' ') { |
183 | mail->from = p.getString(&pos, '<', false); | 185 | mail->from = p.getString(&pos, '<', false); |
184 | mail->from = mail->from.stripWhiteSpace(); | 186 | mail->from = mail->from.stripWhiteSpace(); |
185 | if ( (mail->from.length() > 2) && (mail->from[0] == '"') ) { | 187 | if ( (mail->from.length() > 2) && (mail->from[0] == '"') ) { |
186 | mail->from = mail->from.left(mail->from.length() - 1); | 188 | mail->from = mail->from.left(mail->from.length() - 1); |
187 | mail->from = mail->from.right(mail->from.length() - 1); | 189 | mail->from = mail->from.right(mail->from.length() - 1); |
188 | } | 190 | } |
189 | pos++; | 191 | pos++; |
190 | mail->fromMail = p.getString(&pos, '>', false); | 192 | mail->fromMail = p.getString(&pos, '>', false); |
191 | } else { | 193 | } else { |
192 | if (p.separatorAt(pos) == '<') //No name.. nasty | 194 | if (p.separatorAt(pos) == '<') //No name.. nasty |
193 | pos++; | 195 | pos++; |
194 | //pos++; | 196 | //pos++; |
195 | mail->fromMail = p.getString(&pos, 'z', TRUE); | 197 | mail->fromMail = p.getString(&pos, 'z', TRUE); |
@@ -257,32 +259,33 @@ bool EmailHandler::parse(const QString &in, const QString &lineShift, Email *mai | |||
257 | 259 | ||
258 | if (mail->mimeType == 1) { | 260 | if (mail->mimeType == 1) { |
259 | boundary = ""; | 261 | boundary = ""; |
260 | if ((pos = p.find("BOUNDARY", '=', 0, TRUE)) != -1) { | 262 | if ((pos = p.find("BOUNDARY", '=', 0, TRUE)) != -1) { |
261 | pos++; | 263 | pos++; |
262 | boundary = p.getString(&pos, 'z', true); | 264 | boundary = p.getString(&pos, 'z', true); |
263 | if (boundary[0] == '"') { | 265 | if (boundary[0] == '"') { |
264 | boundary = boundary.left(boundary.length() - 1); //strip " | 266 | boundary = boundary.left(boundary.length() - 1); //strip " |
265 | boundary = boundary.right(boundary.length() - 1); //strip " | 267 | boundary = boundary.right(boundary.length() - 1); //strip " |
266 | } | 268 | } |
267 | boundary = "--" + boundary; //create boundary field | 269 | boundary = "--" + boundary; //create boundary field |
268 | } | 270 | } |
269 | 271 | ||
270 | if (boundary == "") { //fooled by Mime-Version | 272 | if (boundary == "") { //fooled by Mime-Version |
271 | mail->body = body; | 273 | mail->body = body; |
272 | mail->bodyPlain = body; | 274 | mail->bodyPlain = body; |
275 | delete lp; | ||
273 | return mail; | 276 | return mail; |
274 | } | 277 | } |
275 | 278 | ||
276 | while (body.length() > 0) { | 279 | while (body.length() > 0) { |
277 | pos = body.find(boundary, 0, FALSE); | 280 | pos = body.find(boundary, 0, FALSE); |
278 | pos = body.find(delimiter, pos, FALSE); | 281 | pos = body.find(delimiter, pos, FALSE); |
279 | mimeHeader = body.left(pos); | 282 | mimeHeader = body.left(pos); |
280 | mimeBody = body.right(body.length() - pos - delimiter.length()); | 283 | mimeBody = body.right(body.length() - pos - delimiter.length()); |
281 | TextParser bp(mimeHeader, lineShift); | 284 | TextParser bp(mimeHeader, lineShift); |
282 | 285 | ||
283 | contentType = ""; | 286 | contentType = ""; |
284 | contentAttribute = ""; | 287 | contentAttribute = ""; |
285 | fileName = ""; | 288 | fileName = ""; |
286 | if ((pos = bp.find("CONTENT",'-', 0, TRUE)) != -1) { | 289 | if ((pos = bp.find("CONTENT",'-', 0, TRUE)) != -1) { |
287 | pos++; | 290 | pos++; |
288 | if ( (bp.wordAt(pos).upper() == "TYPE") && | 291 | if ( (bp.wordAt(pos).upper() == "TYPE") && |
@@ -325,32 +328,33 @@ bool EmailHandler::parse(const QString &in, const QString &lineShift, Email *mai | |||
325 | enclosureId++; | 328 | enclosureId++; |
326 | 329 | ||
327 | } else if (contentType == "TEXT") { | 330 | } else if (contentType == "TEXT") { |
328 | if (contentAttribute == "PLAIN") { | 331 | if (contentAttribute == "PLAIN") { |
329 | mail->body = mimeBody; | 332 | mail->body = mimeBody; |
330 | mail->bodyPlain = mimeBody; | 333 | mail->bodyPlain = mimeBody; |
331 | } | 334 | } |
332 | if (contentAttribute == "HTML") { | 335 | if (contentAttribute == "HTML") { |
333 | mail->body = mimeBody; | 336 | mail->body = mimeBody; |
334 | } | 337 | } |
335 | } | 338 | } |
336 | } | 339 | } |
337 | } else { | 340 | } else { |
338 | mail->bodyPlain = body; | 341 | mail->bodyPlain = body; |
339 | mail->body = body; | 342 | mail->body = body; |
340 | } | 343 | } |
344 | delete lp; | ||
341 | return TRUE; | 345 | return TRUE; |
342 | } | 346 | } |
343 | 347 | ||
344 | bool EmailHandler::getEnclosure(Enclosure *ePtr) | 348 | bool EmailHandler::getEnclosure(Enclosure *ePtr) |
345 | { | 349 | { |
346 | QFile f(ePtr->path + ePtr->name); | 350 | QFile f(ePtr->path + ePtr->name); |
347 | char src[4]; | 351 | char src[4]; |
348 | char *destPtr; | 352 | char *destPtr; |
349 | QByteArray buffer; | 353 | QByteArray buffer; |
350 | uint bufCount, pos, decodedCount, size, x; | 354 | uint bufCount, pos, decodedCount, size, x; |
351 | 355 | ||
352 | if (! f.open(IO_WriteOnly) ) { | 356 | if (! f.open(IO_WriteOnly) ) { |
353 | qWarning("could not save: " + ePtr->path + ePtr->name); | 357 | qWarning("could not save: " + ePtr->path + ePtr->name); |
354 | return FALSE; | 358 | return FALSE; |
355 | } | 359 | } |
356 | 360 | ||
diff --git a/noncore/net/mailit/mailitwindow.cpp b/noncore/net/mailit/mailitwindow.cpp index a111241..f945a0f 100644 --- a/noncore/net/mailit/mailitwindow.cpp +++ b/noncore/net/mailit/mailitwindow.cpp | |||
@@ -109,51 +109,51 @@ void MailItWindow::showEmailClient() | |||
109 | viewingMail = FALSE; | 109 | viewingMail = FALSE; |
110 | writeMail->hide(); | 110 | writeMail->hide(); |
111 | readMail->hide(); | 111 | readMail->hide(); |
112 | views->raiseWidget(emailClient); | 112 | views->raiseWidget(emailClient); |
113 | setCaption( tr(currentCaption) ); | 113 | setCaption( tr(currentCaption) ); |
114 | } | 114 | } |
115 | 115 | ||
116 | void MailItWindow::viewMail(QListView *view, Email *mail) | 116 | void MailItWindow::viewMail(QListView *view, Email *mail) |
117 | { | 117 | { |
118 | viewingMail = TRUE; | 118 | viewingMail = TRUE; |
119 | emailClient->hide(); | 119 | emailClient->hide(); |
120 | 120 | ||
121 | int result=0; | 121 | int result=0; |
122 | 122 | ||
123 | if ((mail->received)&&(!mail->downloaded)) | 123 | if ((mail->received)&&(!mail->downloaded)) |
124 | { | 124 | { |
125 | QMessageBox mb( tr("Mail not downloaded"), | 125 | QMessageBox mb( tr("Mail not downloaded"), |
126 | tr("The mail you have clicked \n" | 126 | tr("The mail you have clicked \n" |
127 | "has not been downloaded yet.\n " | 127 | "has not been downloaded yet.\n " |
128 | "Would you like to do it now ?"), | 128 | "Would you like to do it now ?"), |
129 | QMessageBox::Information, | 129 | QMessageBox::Information, |
130 | QMessageBox::Yes | QMessageBox::Default, | 130 | QMessageBox::Yes | QMessageBox::Default, |
131 | QMessageBox::No | QMessageBox::Escape,0 ); | 131 | QMessageBox::No | QMessageBox::Escape,0 ); |
132 | 132 | ||
133 | result=mb.exec(); | 133 | result=mb.exec(); |
134 | 134 | ||
135 | if (result==QMessageBox::Yes) | 135 | if (result==QMessageBox::Yes) |
136 | { | 136 | { |
137 | emailClient->download(mail); | 137 | emailClient->download(mail); |
138 | } | 138 | } |
139 | } | 139 | } |
140 | 140 | ||
141 | readMail->update(view, mail); | 141 | readMail->update(view, mail); |
142 | views->raiseWidget(readMail); | 142 | views->raiseWidget(readMail); |
143 | setCaption( tr( "Examine mail" ) ); | 143 | setCaption( tr( "Read Mail" ) ); |
144 | } | 144 | } |
145 | 145 | ||
146 | void MailItWindow::updateMailView(Email *mail) | 146 | void MailItWindow::updateMailView(Email *mail) |
147 | { | 147 | { |
148 | if (viewingMail) { | 148 | if (viewingMail) { |
149 | readMail->mailUpdated(mail); | 149 | readMail->mailUpdated(mail); |
150 | } | 150 | } |
151 | } | 151 | } |
152 | 152 | ||
153 | void MailItWindow::updateCaption(const QString &newCaption) | 153 | void MailItWindow::updateCaption(const QString &newCaption) |
154 | { | 154 | { |
155 | currentCaption = newCaption; | 155 | currentCaption = newCaption; |
156 | setCaption(tr(currentCaption)); | 156 | setCaption(tr(currentCaption)); |
157 | } | 157 | } |
158 | 158 | ||
159 | void MailItWindow::setDocument(const QString &_address) | 159 | void MailItWindow::setDocument(const QString &_address) |
diff --git a/noncore/unsupported/mailit/emailclient.cpp b/noncore/unsupported/mailit/emailclient.cpp index 2102ba7..da1226c 100644 --- a/noncore/unsupported/mailit/emailclient.cpp +++ b/noncore/unsupported/mailit/emailclient.cpp | |||
@@ -456,36 +456,36 @@ void EmailClient::mailArrived(const Email &mail, bool fromDisk) | |||
456 | Email *mailPtr; | 456 | Email *mailPtr; |
457 | item = (EmailListItem *) inboxView->firstChild(); | 457 | item = (EmailListItem *) inboxView->firstChild(); |
458 | while ((item != NULL)&&(!found)) | 458 | while ((item != NULL)&&(!found)) |
459 | { | 459 | { |
460 | mailPtr = item->getMail(); | 460 | mailPtr = item->getMail(); |
461 | if (mailPtr->id == newMail.id) { | 461 | if (mailPtr->id == newMail.id) { |
462 | item->setMail(newMail); | 462 | item->setMail(newMail); |
463 | emit mailUpdated(item->getMail()); | 463 | emit mailUpdated(item->getMail()); |
464 | found = true; | 464 | found = true; |
465 | } | 465 | } |
466 | item = (EmailListItem *) item->nextSibling(); | 466 | item = (EmailListItem *) item->nextSibling(); |
467 | } | 467 | } |
468 | } | 468 | } |
469 | if ((!found)||(fromDisk)) { | 469 | if ((!found)||(fromDisk)) { |
470 | item = new EmailListItem(inboxView, newMail, TRUE); | 470 | item = new EmailListItem(inboxView, newMail, TRUE); |
471 | } | 471 | } |
472 | if (item->getMail()->files.count()>0) | 472 | // if (item->getMail()->files.count()>0) |
473 | { | 473 | // { |
474 | item->setPixmap(0, Resource::loadPixmap("mailit/attach")); | 474 | // item->setPixmap(0, Resource::loadPixmap("mailit/attach")); |
475 | } | 475 | // } |
476 | /*if (!newMail.downloaded) | 476 | /*if (!newMail.downloaded) |
477 | mailDownloadList.sizeInsert(newMail.serverId, newMail.size);*/ | 477 | mailDownloadList.sizeInsert(newMail.serverId, newMail.size);*/ |
478 | 478 | ||
479 | mailboxView->setCurrentTab(0); | 479 | mailboxView->setCurrentTab(0); |
480 | 480 | ||
481 | } | 481 | } |
482 | 482 | ||
483 | void EmailClient::allMailArrived(int count) | 483 | void EmailClient::allMailArrived(int count) |
484 | { | 484 | { |
485 | // not previewing means all mailtransfer has been done | 485 | // not previewing means all mailtransfer has been done |
486 | /*if (!previewingMail) {*/ | 486 | /*if (!previewingMail) {*/ |
487 | if ( (allAccounts) && ( (currentAccount = accountList.next()) !=0 ) ) { | 487 | if ( (allAccounts) && ( (currentAccount = accountList.next()) !=0 ) ) { |
488 | emit newCaption("Mailit - " + currentAccount->accountName); | 488 | emit newCaption("Mailit - " + currentAccount->accountName); |
489 | getNewMail(); | 489 | getNewMail(); |
490 | return; | 490 | return; |
491 | } else { | 491 | } else { |
diff --git a/noncore/unsupported/mailit/emailhandler.cpp b/noncore/unsupported/mailit/emailhandler.cpp index 59ccd90..39f693d 100644 --- a/noncore/unsupported/mailit/emailhandler.cpp +++ b/noncore/unsupported/mailit/emailhandler.cpp | |||
@@ -162,34 +162,36 @@ bool EmailHandler::parse(const QString &in, const QString &lineShift, Email *mai | |||
162 | mail->files.setAutoDelete(TRUE); | 162 | mail->files.setAutoDelete(TRUE); |
163 | 163 | ||
164 | temp = lineShift + "." + lineShift; | 164 | temp = lineShift + "." + lineShift; |
165 | 165 | ||
166 | if (in.right(temp.length()) != temp) { | 166 | if (in.right(temp.length()) != temp) { |
167 | mail->rawMail += temp; | 167 | mail->rawMail += temp; |
168 | } | 168 | } |
169 | 169 | ||
170 | 170 | ||
171 | delimiter = lineShift + lineShift; // "\n\n" or "\r\n\r\n" | 171 | delimiter = lineShift + lineShift; // "\n\n" or "\r\n\r\n" |
172 | pos = in.find(delimiter, 0, FALSE); | 172 | pos = in.find(delimiter, 0, FALSE); |
173 | header = in.left(pos); | 173 | header = in.left(pos); |
174 | body = in.right(in.length() - pos - delimiter.length()); | 174 | body = in.right(in.length() - pos - delimiter.length()); |
175 | if ((body.at(body.length()-2) == '.') && (body.at(body.length()-3) == '\n')) | 175 | if ((body.at(body.length()-2) == '.') && (body.at(body.length()-3) == '\n')) |
176 | body.truncate(body.length()-2); | 176 | body.truncate(body.length()-2); |
177 | 177 | ||
178 | TextParser p(header, lineShift); | 178 | // TextParser p(header, lineShift); |
179 | 179 | TextParser * lp = new TextParser(header, lineShift); | |
180 | #define p (*lp) | ||
181 | |||
180 | if ((pos = p.find("FROM",':', 0, TRUE)) != -1) { | 182 | if ((pos = p.find("FROM",':', 0, TRUE)) != -1) { |
181 | pos++; | 183 | pos++; |
182 | if (p.separatorAt(pos) == ' ') { | 184 | if (p.separatorAt(pos) == ' ') { |
183 | mail->from = p.getString(&pos, '<', false); | 185 | mail->from = p.getString(&pos, '<', false); |
184 | mail->from = mail->from.stripWhiteSpace(); | 186 | mail->from = mail->from.stripWhiteSpace(); |
185 | if ( (mail->from.length() > 2) && (mail->from[0] == '"') ) { | 187 | if ( (mail->from.length() > 2) && (mail->from[0] == '"') ) { |
186 | mail->from = mail->from.left(mail->from.length() - 1); | 188 | mail->from = mail->from.left(mail->from.length() - 1); |
187 | mail->from = mail->from.right(mail->from.length() - 1); | 189 | mail->from = mail->from.right(mail->from.length() - 1); |
188 | } | 190 | } |
189 | pos++; | 191 | pos++; |
190 | mail->fromMail = p.getString(&pos, '>', false); | 192 | mail->fromMail = p.getString(&pos, '>', false); |
191 | } else { | 193 | } else { |
192 | if (p.separatorAt(pos) == '<') //No name.. nasty | 194 | if (p.separatorAt(pos) == '<') //No name.. nasty |
193 | pos++; | 195 | pos++; |
194 | //pos++; | 196 | //pos++; |
195 | mail->fromMail = p.getString(&pos, 'z', TRUE); | 197 | mail->fromMail = p.getString(&pos, 'z', TRUE); |
@@ -257,32 +259,33 @@ bool EmailHandler::parse(const QString &in, const QString &lineShift, Email *mai | |||
257 | 259 | ||
258 | if (mail->mimeType == 1) { | 260 | if (mail->mimeType == 1) { |
259 | boundary = ""; | 261 | boundary = ""; |
260 | if ((pos = p.find("BOUNDARY", '=', 0, TRUE)) != -1) { | 262 | if ((pos = p.find("BOUNDARY", '=', 0, TRUE)) != -1) { |
261 | pos++; | 263 | pos++; |
262 | boundary = p.getString(&pos, 'z', true); | 264 | boundary = p.getString(&pos, 'z', true); |
263 | if (boundary[0] == '"') { | 265 | if (boundary[0] == '"') { |
264 | boundary = boundary.left(boundary.length() - 1); //strip " | 266 | boundary = boundary.left(boundary.length() - 1); //strip " |
265 | boundary = boundary.right(boundary.length() - 1); //strip " | 267 | boundary = boundary.right(boundary.length() - 1); //strip " |
266 | } | 268 | } |
267 | boundary = "--" + boundary; //create boundary field | 269 | boundary = "--" + boundary; //create boundary field |
268 | } | 270 | } |
269 | 271 | ||
270 | if (boundary == "") { //fooled by Mime-Version | 272 | if (boundary == "") { //fooled by Mime-Version |
271 | mail->body = body; | 273 | mail->body = body; |
272 | mail->bodyPlain = body; | 274 | mail->bodyPlain = body; |
275 | delete lp; | ||
273 | return mail; | 276 | return mail; |
274 | } | 277 | } |
275 | 278 | ||
276 | while (body.length() > 0) { | 279 | while (body.length() > 0) { |
277 | pos = body.find(boundary, 0, FALSE); | 280 | pos = body.find(boundary, 0, FALSE); |
278 | pos = body.find(delimiter, pos, FALSE); | 281 | pos = body.find(delimiter, pos, FALSE); |
279 | mimeHeader = body.left(pos); | 282 | mimeHeader = body.left(pos); |
280 | mimeBody = body.right(body.length() - pos - delimiter.length()); | 283 | mimeBody = body.right(body.length() - pos - delimiter.length()); |
281 | TextParser bp(mimeHeader, lineShift); | 284 | TextParser bp(mimeHeader, lineShift); |
282 | 285 | ||
283 | contentType = ""; | 286 | contentType = ""; |
284 | contentAttribute = ""; | 287 | contentAttribute = ""; |
285 | fileName = ""; | 288 | fileName = ""; |
286 | if ((pos = bp.find("CONTENT",'-', 0, TRUE)) != -1) { | 289 | if ((pos = bp.find("CONTENT",'-', 0, TRUE)) != -1) { |
287 | pos++; | 290 | pos++; |
288 | if ( (bp.wordAt(pos).upper() == "TYPE") && | 291 | if ( (bp.wordAt(pos).upper() == "TYPE") && |
@@ -325,32 +328,33 @@ bool EmailHandler::parse(const QString &in, const QString &lineShift, Email *mai | |||
325 | enclosureId++; | 328 | enclosureId++; |
326 | 329 | ||
327 | } else if (contentType == "TEXT") { | 330 | } else if (contentType == "TEXT") { |
328 | if (contentAttribute == "PLAIN") { | 331 | if (contentAttribute == "PLAIN") { |
329 | mail->body = mimeBody; | 332 | mail->body = mimeBody; |
330 | mail->bodyPlain = mimeBody; | 333 | mail->bodyPlain = mimeBody; |
331 | } | 334 | } |
332 | if (contentAttribute == "HTML") { | 335 | if (contentAttribute == "HTML") { |
333 | mail->body = mimeBody; | 336 | mail->body = mimeBody; |
334 | } | 337 | } |
335 | } | 338 | } |
336 | } | 339 | } |
337 | } else { | 340 | } else { |
338 | mail->bodyPlain = body; | 341 | mail->bodyPlain = body; |
339 | mail->body = body; | 342 | mail->body = body; |
340 | } | 343 | } |
344 | delete lp; | ||
341 | return TRUE; | 345 | return TRUE; |
342 | } | 346 | } |
343 | 347 | ||
344 | bool EmailHandler::getEnclosure(Enclosure *ePtr) | 348 | bool EmailHandler::getEnclosure(Enclosure *ePtr) |
345 | { | 349 | { |
346 | QFile f(ePtr->path + ePtr->name); | 350 | QFile f(ePtr->path + ePtr->name); |
347 | char src[4]; | 351 | char src[4]; |
348 | char *destPtr; | 352 | char *destPtr; |
349 | QByteArray buffer; | 353 | QByteArray buffer; |
350 | uint bufCount, pos, decodedCount, size, x; | 354 | uint bufCount, pos, decodedCount, size, x; |
351 | 355 | ||
352 | if (! f.open(IO_WriteOnly) ) { | 356 | if (! f.open(IO_WriteOnly) ) { |
353 | qWarning("could not save: " + ePtr->path + ePtr->name); | 357 | qWarning("could not save: " + ePtr->path + ePtr->name); |
354 | return FALSE; | 358 | return FALSE; |
355 | } | 359 | } |
356 | 360 | ||
diff --git a/noncore/unsupported/mailit/mailitwindow.cpp b/noncore/unsupported/mailit/mailitwindow.cpp index a111241..f945a0f 100644 --- a/noncore/unsupported/mailit/mailitwindow.cpp +++ b/noncore/unsupported/mailit/mailitwindow.cpp | |||
@@ -109,51 +109,51 @@ void MailItWindow::showEmailClient() | |||
109 | viewingMail = FALSE; | 109 | viewingMail = FALSE; |
110 | writeMail->hide(); | 110 | writeMail->hide(); |
111 | readMail->hide(); | 111 | readMail->hide(); |
112 | views->raiseWidget(emailClient); | 112 | views->raiseWidget(emailClient); |
113 | setCaption( tr(currentCaption) ); | 113 | setCaption( tr(currentCaption) ); |
114 | } | 114 | } |
115 | 115 | ||
116 | void MailItWindow::viewMail(QListView *view, Email *mail) | 116 | void MailItWindow::viewMail(QListView *view, Email *mail) |
117 | { | 117 | { |
118 | viewingMail = TRUE; | 118 | viewingMail = TRUE; |
119 | emailClient->hide(); | 119 | emailClient->hide(); |
120 | 120 | ||
121 | int result=0; | 121 | int result=0; |
122 | 122 | ||
123 | if ((mail->received)&&(!mail->downloaded)) | 123 | if ((mail->received)&&(!mail->downloaded)) |
124 | { | 124 | { |
125 | QMessageBox mb( tr("Mail not downloaded"), | 125 | QMessageBox mb( tr("Mail not downloaded"), |
126 | tr("The mail you have clicked \n" | 126 | tr("The mail you have clicked \n" |
127 | "has not been downloaded yet.\n " | 127 | "has not been downloaded yet.\n " |
128 | "Would you like to do it now ?"), | 128 | "Would you like to do it now ?"), |
129 | QMessageBox::Information, | 129 | QMessageBox::Information, |
130 | QMessageBox::Yes | QMessageBox::Default, | 130 | QMessageBox::Yes | QMessageBox::Default, |
131 | QMessageBox::No | QMessageBox::Escape,0 ); | 131 | QMessageBox::No | QMessageBox::Escape,0 ); |
132 | 132 | ||
133 | result=mb.exec(); | 133 | result=mb.exec(); |
134 | 134 | ||
135 | if (result==QMessageBox::Yes) | 135 | if (result==QMessageBox::Yes) |
136 | { | 136 | { |
137 | emailClient->download(mail); | 137 | emailClient->download(mail); |
138 | } | 138 | } |
139 | } | 139 | } |
140 | 140 | ||
141 | readMail->update(view, mail); | 141 | readMail->update(view, mail); |
142 | views->raiseWidget(readMail); | 142 | views->raiseWidget(readMail); |
143 | setCaption( tr( "Examine mail" ) ); | 143 | setCaption( tr( "Read Mail" ) ); |
144 | } | 144 | } |
145 | 145 | ||
146 | void MailItWindow::updateMailView(Email *mail) | 146 | void MailItWindow::updateMailView(Email *mail) |
147 | { | 147 | { |
148 | if (viewingMail) { | 148 | if (viewingMail) { |
149 | readMail->mailUpdated(mail); | 149 | readMail->mailUpdated(mail); |
150 | } | 150 | } |
151 | } | 151 | } |
152 | 152 | ||
153 | void MailItWindow::updateCaption(const QString &newCaption) | 153 | void MailItWindow::updateCaption(const QString &newCaption) |
154 | { | 154 | { |
155 | currentCaption = newCaption; | 155 | currentCaption = newCaption; |
156 | setCaption(tr(currentCaption)); | 156 | setCaption(tr(currentCaption)); |
157 | } | 157 | } |
158 | 158 | ||
159 | void MailItWindow::setDocument(const QString &_address) | 159 | void MailItWindow::setDocument(const QString &_address) |