summaryrefslogtreecommitdiff
path: root/noncore/net/mail/libmailwrapper/genericwrapper.cpp
Side-by-side diff
Diffstat (limited to 'noncore/net/mail/libmailwrapper/genericwrapper.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/libmailwrapper/genericwrapper.cpp52
1 files changed, 39 insertions, 13 deletions
diff --git a/noncore/net/mail/libmailwrapper/genericwrapper.cpp b/noncore/net/mail/libmailwrapper/genericwrapper.cpp
index eb2c031..137a6ef 100644
--- a/noncore/net/mail/libmailwrapper/genericwrapper.cpp
+++ b/noncore/net/mail/libmailwrapper/genericwrapper.cpp
@@ -35,3 +35,3 @@ void Genericwrapper::fillSingleBody(RecPart&target,mailmessage*,mailmime*mime)
}
-
+
mailmime_content*type = fields.fld_content;
@@ -147,3 +147,3 @@ void Genericwrapper::traverseBody(RecBody&target,mailmessage*message,mailmime*mi
RecPart part;
-
+
switch (mime->mm_type) {
@@ -243,6 +243,6 @@ QString Genericwrapper::parseDateTime( mailimf_date_time *date )
char tmp[23];
-
- snprintf( tmp, 23, "%02i.%02i.%04i %02i:%02i:%02i %+05i",
+
+ snprintf( tmp, 23, "%02i.%02i.%04i %02i:%02i:%02i %+05i",
date->dt_day, date->dt_month, date->dt_year, date->dt_hour, date->dt_min, date->dt_sec, date->dt_zone );
-
+
return QString( tmp );
@@ -258,3 +258,3 @@ QString Genericwrapper::parseAddressList( mailimf_address_list *list )
mailimf_address *addr = (mailimf_address *) current->data;
-
+
if ( !first ) {
@@ -277,3 +277,3 @@ QString Genericwrapper::parseAddressList( mailimf_address_list *list )
}
-
+
return result;
@@ -293,3 +293,3 @@ QString Genericwrapper::parseGroup( mailimf_group *group )
result.append( ";" );
-
+
return result;
@@ -309,3 +309,3 @@ QString Genericwrapper::parseMailbox( mailimf_mailbox *box )
}
-
+
return result;
@@ -326,6 +326,6 @@ QString Genericwrapper::parseMailboxList( mailimf_mailbox_list *list )
}
-
+
result.append( parseMailbox( box ) );
}
-
+
return result;
@@ -369,2 +369,22 @@ void Genericwrapper::cleanMimeCache()
+QStringList Genericwrapper::parseInreplies(mailimf_in_reply_to * in_replies)
+{
+ QStringList res;
+ if (!in_replies || !in_replies->mid_list) return res;
+ clistiter * current = 0;
+ for ( current = clist_begin( in_replies->mid_list ); current != NULL; current = current->next ) {
+ QString h((char*)current->data);
+ while (h.length()>0 && h[0]=='<') {
+ h.remove(0,1);
+ }
+ while (h.length()>0 && h[h.length()-1]=='>') {
+ h.remove(h.length()-1,1);
+ }
+ if (h.length()>0) {
+ res.append(h);
+ }
+ }
+ return res;
+}
+
void Genericwrapper::parseList(QList<RecMail> &target,mailsession*session,const QString&mailbox,bool mbox_as_to)
@@ -386,3 +406,4 @@ void Genericwrapper::parseList(QList<RecMail> &target,mailsession*session,const
}
- mailimf_references * refs;
+ mailimf_references * refs = 0;
+ mailimf_in_reply_to * in_replies = 0;
uint32_t i = 0;
@@ -428,4 +449,5 @@ void Genericwrapper::parseList(QList<RecMail> &target,mailsession*session,const
mail->setMsgid(QString(single_fields.fld_message_id->mid_value));
- qDebug("Msqgid == %s",mail->Msgid().latin1());
+ qDebug("Msgid == %s",mail->Msgid().latin1());
}
+
refs = single_fields.fld_references;
@@ -435,2 +457,6 @@ void Genericwrapper::parseList(QList<RecMail> &target,mailsession*session,const
}
+ if (single_fields.fld_in_reply_to && single_fields.fld_in_reply_to->mid_list &&
+ clist_count(single_fields.fld_in_reply_to->mid_list)) {
+ mail->setInreply(parseInreplies(single_fields.fld_in_reply_to));
+ }
target.append(mail);