summaryrefslogtreecommitdiff
path: root/noncore/net/mail/libmailwrapper/genericwrapper.cpp
Unidiff
Diffstat (limited to 'noncore/net/mail/libmailwrapper/genericwrapper.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/libmailwrapper/genericwrapper.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/noncore/net/mail/libmailwrapper/genericwrapper.cpp b/noncore/net/mail/libmailwrapper/genericwrapper.cpp
index 703235d..0ac842d 100644
--- a/noncore/net/mail/libmailwrapper/genericwrapper.cpp
+++ b/noncore/net/mail/libmailwrapper/genericwrapper.cpp
@@ -363,49 +363,49 @@ void Genericwrapper::cleanMimeCache()
363} 363}
364 364
365QStringList Genericwrapper::parseInreplies(mailimf_in_reply_to * in_replies) 365QStringList Genericwrapper::parseInreplies(mailimf_in_reply_to * in_replies)
366{ 366{
367 QStringList res; 367 QStringList res;
368 if (!in_replies || !in_replies->mid_list) return res; 368 if (!in_replies || !in_replies->mid_list) return res;
369 clistiter * current = 0; 369 clistiter * current = 0;
370 for ( current = clist_begin( in_replies->mid_list ); current != NULL; current = current->next ) { 370 for ( current = clist_begin( in_replies->mid_list ); current != NULL; current = current->next ) {
371 QString h((char*)current->data); 371 QString h((char*)current->data);
372 while (h.length()>0 && h[0]=='<') { 372 while (h.length()>0 && h[0]=='<') {
373 h.remove(0,1); 373 h.remove(0,1);
374 } 374 }
375 while (h.length()>0 && h[h.length()-1]=='>') { 375 while (h.length()>0 && h[h.length()-1]=='>') {
376 h.remove(h.length()-1,1); 376 h.remove(h.length()-1,1);
377 } 377 }
378 if (h.length()>0) { 378 if (h.length()>0) {
379 res.append(h); 379 res.append(h);
380 } 380 }
381 } 381 }
382 return res; 382 return res;
383} 383}
384 384
385void Genericwrapper::parseList(QValueList<Opie::Core::OSmartPointer<RecMail> > &target,mailsession*session,const QString&mailbox,bool mbox_as_to) 385void Genericwrapper::parseList(QValueList<Opie::Core::OSmartPointer<RecMail> > &target,mailsession*session,const QString&mailbox,bool mbox_as_to)
386{ 386{
387 int r; 387 int r,toffset;
388 mailmessage_list * env_list = 0; 388 mailmessage_list * env_list = 0;
389 r = mailsession_get_messages_list(session,&env_list); 389 r = mailsession_get_messages_list(session,&env_list);
390 if (r != MAIL_NO_ERROR) { 390 if (r != MAIL_NO_ERROR) {
391 odebug << "Error message list" << oendl; 391 odebug << "Error message list" << oendl;
392 return; 392 return;
393 } 393 }
394 r = mailsession_get_envelopes_list(session, env_list); 394 r = mailsession_get_envelopes_list(session, env_list);
395 if (r != MAIL_NO_ERROR) { 395 if (r != MAIL_NO_ERROR) {
396 odebug << "Error filling message list" << oendl; 396 odebug << "Error filling message list" << oendl;
397 if (env_list) { 397 if (env_list) {
398 mailmessage_list_free(env_list); 398 mailmessage_list_free(env_list);
399 } 399 }
400 return; 400 return;
401 } 401 }
402 mailimf_references * refs = 0; 402 mailimf_references * refs = 0;
403 mailimf_in_reply_to * in_replies = 0; 403 mailimf_in_reply_to * in_replies = 0;
404 uint32_t i = 0; 404 uint32_t i = 0;
405 for(; i < carray_count(env_list->msg_tab) ; ++i) { 405 for(; i < carray_count(env_list->msg_tab) ; ++i) {
406 mailmessage * msg; 406 mailmessage * msg;
407 QBitArray mFlags(7); 407 QBitArray mFlags(7);
408 msg = (mailmessage*)carray_get(env_list->msg_tab, i); 408 msg = (mailmessage*)carray_get(env_list->msg_tab, i);
409 if (msg->msg_fields == NULL) { 409 if (msg->msg_fields == NULL) {
410 //odebug << "could not fetch envelope of message " << i << "" << oendl; 410 //odebug << "could not fetch envelope of message " << i << "" << oendl;
411 continue; 411 continue;
@@ -416,54 +416,54 @@ void Genericwrapper::parseList(QValueList<Opie::Core::OSmartPointer<RecMail> > &
416 r = mailmessage_get_flags(msg,&flag_result); 416 r = mailmessage_get_flags(msg,&flag_result);
417 if (r == MAIL_ERROR_NOT_IMPLEMENTED) { 417 if (r == MAIL_ERROR_NOT_IMPLEMENTED) {
418 mFlags.setBit(FLAG_SEEN); 418 mFlags.setBit(FLAG_SEEN);
419 } 419 }
420 mailimf_single_fields single_fields; 420 mailimf_single_fields single_fields;
421 mailimf_single_fields_init(&single_fields, msg->msg_fields); 421 mailimf_single_fields_init(&single_fields, msg->msg_fields);
422 mail->setMsgsize(msg->msg_size); 422 mail->setMsgsize(msg->msg_size);
423 mail->setFlags(mFlags); 423 mail->setFlags(mFlags);
424 mail->setMbox(mailbox); 424 mail->setMbox(mailbox);
425 mail->setNumber(msg->msg_index); 425 mail->setNumber(msg->msg_index);
426 if (single_fields.fld_subject) 426 if (single_fields.fld_subject)
427 mail->setSubject( convert_String(single_fields.fld_subject->sbj_value)); 427 mail->setSubject( convert_String(single_fields.fld_subject->sbj_value));
428 if (single_fields.fld_from) 428 if (single_fields.fld_from)
429 mail->setFrom(parseMailboxList(single_fields.fld_from->frm_mb_list)); 429 mail->setFrom(parseMailboxList(single_fields.fld_from->frm_mb_list));
430 if (!mbox_as_to) { 430 if (!mbox_as_to) {
431 if (single_fields.fld_to) 431 if (single_fields.fld_to)
432 mail->setTo( parseAddressList( single_fields.fld_to->to_addr_list ) ); 432 mail->setTo( parseAddressList( single_fields.fld_to->to_addr_list ) );
433 } else { 433 } else {
434 mail->setTo(mailbox); 434 mail->setTo(mailbox);
435 } 435 }
436 if (single_fields.fld_cc) 436 if (single_fields.fld_cc)
437 mail->setCC( parseAddressList( single_fields.fld_cc->cc_addr_list ) ); 437 mail->setCC( parseAddressList( single_fields.fld_cc->cc_addr_list ) );
438 if (single_fields.fld_bcc) 438 if (single_fields.fld_bcc)
439 mail->setBcc( parseAddressList( single_fields.fld_bcc->bcc_addr_list ) ); 439 mail->setBcc( parseAddressList( single_fields.fld_bcc->bcc_addr_list ) );
440 if (single_fields.fld_orig_date) 440 if (single_fields.fld_orig_date) {
441 mail->setDate( parseDateTime( single_fields.fld_orig_date->dt_date_time ) ); 441 QDateTime d = parseDateTime( single_fields.fld_orig_date->dt_date_time,toffset);
442 // crashes when accessing pop3 account? 442 mail->setDate( d,toffset );
443 }
443 if (single_fields.fld_message_id && single_fields.fld_message_id->mid_value) { 444 if (single_fields.fld_message_id && single_fields.fld_message_id->mid_value) {
444 mail->setMsgid(QString(single_fields.fld_message_id->mid_value)); 445 mail->setMsgid(QString(single_fields.fld_message_id->mid_value));
445 } 446 }
446
447 if (single_fields.fld_reply_to) { 447 if (single_fields.fld_reply_to) {
448 QStringList t = parseAddressList(single_fields.fld_reply_to->rt_addr_list); 448 QStringList t = parseAddressList(single_fields.fld_reply_to->rt_addr_list);
449 if (t.count()>0) { 449 if (t.count()>0) {
450 mail->setReplyto(t[0]); 450 mail->setReplyto(t[0]);
451 } 451 }
452 } 452 }
453#if 0 453#if 0
454 refs = single_fields.fld_references; 454 refs = single_fields.fld_references;
455 if (refs && refs->mid_list && clist_count(refs->mid_list)) { 455 if (refs && refs->mid_list && clist_count(refs->mid_list)) {
456 char * text = (char*)refs->mid_list->first->data; 456 char * text = (char*)refs->mid_list->first->data;
457 mail->setReplyto(QString(text)); 457 mail->setReplyto(QString(text));
458 } 458 }
459#endif 459#endif
460 if (single_fields.fld_in_reply_to && single_fields.fld_in_reply_to->mid_list && 460 if (single_fields.fld_in_reply_to && single_fields.fld_in_reply_to->mid_list &&
461 clist_count(single_fields.fld_in_reply_to->mid_list)) { 461 clist_count(single_fields.fld_in_reply_to->mid_list)) {
462 mail->setInreply(parseInreplies(single_fields.fld_in_reply_to)); 462 mail->setInreply(parseInreplies(single_fields.fld_in_reply_to));
463 } 463 }
464 target.append(mail); 464 target.append(mail);
465 } 465 }
466 if (env_list) { 466 if (env_list) {
467 mailmessage_list_free(env_list); 467 mailmessage_list_free(env_list);
468 } 468 }
469} 469}