summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/libmailwrapper/genericwrapper.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/noncore/net/mail/libmailwrapper/genericwrapper.cpp b/noncore/net/mail/libmailwrapper/genericwrapper.cpp
index 714396b..2d1596d 100644
--- a/noncore/net/mail/libmailwrapper/genericwrapper.cpp
+++ b/noncore/net/mail/libmailwrapper/genericwrapper.cpp
@@ -443,61 +443,62 @@ void Genericwrapper::parseList(QList<RecMail> &target,mailsession*session,const
443 r = mailsession_get_messages_list(session,&env_list); 443 r = mailsession_get_messages_list(session,&env_list);
444 if (r != MAIL_NO_ERROR) { 444 if (r != MAIL_NO_ERROR) {
445 qDebug("Error message list"); 445 qDebug("Error message list");
446 return; 446 return;
447 } 447 }
448 r = mailsession_get_envelopes_list(session, env_list); 448 r = mailsession_get_envelopes_list(session, env_list);
449 if (r != MAIL_NO_ERROR) { 449 if (r != MAIL_NO_ERROR) {
450 qDebug("Error filling message list"); 450 qDebug("Error filling message list");
451 if (env_list) { 451 if (env_list) {
452 mailmessage_list_free(env_list); 452 mailmessage_list_free(env_list);
453 } 453 }
454 return; 454 return;
455 } 455 }
456 mailimf_references * refs; 456 mailimf_references * refs;
457 uint32_t i = 0; 457 uint32_t i = 0;
458 for(; i < carray_count(env_list->msg_tab) ; ++i) { 458 for(; i < carray_count(env_list->msg_tab) ; ++i) {
459 mailmessage * msg; 459 mailmessage * msg;
460 QBitArray mFlags(7); 460 QBitArray mFlags(7);
461 msg = (mailmessage*)carray_get(env_list->msg_tab, i); 461 msg = (mailmessage*)carray_get(env_list->msg_tab, i);
462 if (msg->msg_fields == NULL) { 462 if (msg->msg_fields == NULL) {
463 qDebug("could not fetch envelope of message %i", i); 463 qDebug("could not fetch envelope of message %i", i);
464 continue; 464 continue;
465 } 465 }
466 RecMail * mail = new RecMail(); 466 RecMail * mail = new RecMail();
467 mail->setWrapper(this); 467 mail->setWrapper(this);
468 mail_flags * flag_result = 0; 468 mail_flags * flag_result = 0;
469 r = mailmessage_get_flags(msg,&flag_result); 469 r = mailmessage_get_flags(msg,&flag_result);
470 if (r == MAIL_ERROR_NOT_IMPLEMENTED) { 470 if (r == MAIL_ERROR_NOT_IMPLEMENTED) {
471 mFlags.setBit(FLAG_SEEN); 471 mFlags.setBit(FLAG_SEEN);
472 } 472 }
473 mailimf_single_fields single_fields; 473 mailimf_single_fields single_fields;
474 mailimf_single_fields_init(&single_fields, msg->msg_fields); 474 mailimf_single_fields_init(&single_fields, msg->msg_fields);
475 mail->setMsgsize(msg->msg_size); 475 mail->setMsgsize(msg->msg_size);
476 mail->setFlags(mFlags); 476 mail->setFlags(mFlags);
477 mail->setMbox(mailbox); 477 mail->setMbox(mailbox);
478 mail->setNumber(msg->msg_index); 478 mail->setNumber(msg->msg_index);
479 if (single_fields.fld_subject) 479 if (single_fields.fld_subject)
480 mail->setSubject( convert_String(single_fields.fld_subject->sbj_value)); 480 mail->setSubject( convert_String(single_fields.fld_subject->sbj_value));
481 if (single_fields.fld_from) 481 if (single_fields.fld_from)
482 mail->setFrom(parseMailboxList(single_fields.fld_from->frm_mb_list)); 482 mail->setFrom(parseMailboxList(single_fields.fld_from->frm_mb_list));
483 if (single_fields.fld_to) 483 if (single_fields.fld_to)
484 mail->setTo( parseAddressList( single_fields.fld_to->to_addr_list ) ); 484 mail->setTo( parseAddressList( single_fields.fld_to->to_addr_list ) );
485 if (single_fields.fld_cc) 485 if (single_fields.fld_cc)
486 mail->setCC( parseAddressList( single_fields.fld_cc->cc_addr_list ) ); 486 mail->setCC( parseAddressList( single_fields.fld_cc->cc_addr_list ) );
487 if (single_fields.fld_bcc) 487 if (single_fields.fld_bcc)
488 mail->setBcc( parseAddressList( single_fields.fld_bcc->bcc_addr_list ) ); 488 mail->setBcc( parseAddressList( single_fields.fld_bcc->bcc_addr_list ) );
489 if (single_fields.fld_orig_date) 489 if (single_fields.fld_orig_date)
490 mail->setDate( parseDateTime( single_fields.fld_orig_date->dt_date_time ) ); 490 mail->setDate( parseDateTime( single_fields.fld_orig_date->dt_date_time ) );
491 if (single_fields.fld_message_id->mid_value) 491 // crashes when accessing pop3 account
492 mail->setMsgid(QString(single_fields.fld_message_id->mid_value)); 492 // if (single_fields.fld_message_id->mid_value)
493 // mail->setMsgid(QString(single_fields.fld_message_id->mid_value));
493 refs = single_fields.fld_references; 494 refs = single_fields.fld_references;
494 if (refs && refs->mid_list && clist_count(refs->mid_list)) { 495 if (refs && refs->mid_list && clist_count(refs->mid_list)) {
495 char * text = (char*)refs->mid_list->first->data; 496 char * text = (char*)refs->mid_list->first->data;
496 mail->setReplyto(QString(text)); 497 mail->setReplyto(QString(text));
497 } 498 }
498 target.append(mail); 499 target.append(mail);
499 } 500 }
500 if (env_list) { 501 if (env_list) {
501 mailmessage_list_free(env_list); 502 mailmessage_list_free(env_list);
502 } 503 }
503} 504}