summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--bin/kdepim/WhatsNew.txt7
-rw-r--r--kmicromail/libetpan/imap/mailimap_parser.c20
-rw-r--r--kmicromail/libmailwrapper/imapwrapper.cpp11
-rw-r--r--kmicromail/viewmailbase.cpp2
4 files changed, 35 insertions, 5 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt
index 5bfe1c8..cbed872 100644
--- a/bin/kdepim/WhatsNew.txt
+++ b/bin/kdepim/WhatsNew.txt
@@ -17,2 +17,9 @@ dates of the prev./next month with the mouse.
+OM/Pi:
+"Delete mail" icon in main window now deletes all selected mails.
+Fixed the problem, that the state flag of imap mails was ignored.
+Now mails with "FLAG_SEEN" on the imap server get no icon in the list view
+to idecate that they are already seen.
+Fixed the problem that the body of some mails was not displayed in the
+mail viewer when fetching them from the imap server directly to read them.
diff --git a/kmicromail/libetpan/imap/mailimap_parser.c b/kmicromail/libetpan/imap/mailimap_parser.c
index 1c2ecde..560e58a 100644
--- a/kmicromail/libetpan/imap/mailimap_parser.c
+++ b/kmicromail/libetpan/imap/mailimap_parser.c
@@ -2401,5 +2401,23 @@ mailimap_body_fld_enc_parse(mailstream * fd, MMAPString * buffer,
if (r != MAILIMAP_NO_ERROR) {
- res = r;
+ // LR start
+ // accept NIL and set type to utf8
+ int ret = r;
+ r = mailimap_char_parse(fd, buffer, &cur_token, 'N');
+ if (r == MAILIMAP_NO_ERROR) {
+ r = mailimap_char_parse(fd, buffer, &cur_token, 'I');
+ if (r == MAILIMAP_NO_ERROR) {
+ r = mailimap_char_parse(fd, buffer, &cur_token, 'L');
+ if (r == MAILIMAP_NO_ERROR) {
+ type = 4;
+ ret = MAILIMAP_NO_ERROR;
+ value = NULL;
+ }
+ }
+ }
+ if ( ret != MAILIMAP_NO_ERROR ) {
+ res = ret;
goto err;
}
+ // LR end
+ }
}
diff --git a/kmicromail/libmailwrapper/imapwrapper.cpp b/kmicromail/libmailwrapper/imapwrapper.cpp
index d9496af..93fb7de 100644
--- a/kmicromail/libmailwrapper/imapwrapper.cpp
+++ b/kmicromail/libmailwrapper/imapwrapper.cpp
@@ -438,3 +438,3 @@ RecMail*IMAPwrapper::parse_list_result(mailimap_msg_att* m_att)
cf = flist->att_list->first;
- if( ! cf )
+ if( cf ) {
for (cf = clist_begin(flist->att_list); cf!=NULL; cf = clist_next(cf)) {
@@ -442,3 +442,4 @@ RecMail*IMAPwrapper::parse_list_result(mailimap_msg_att* m_att)
if( ! cflag )
- qDebug("imap:not cflag ");
+ qDebug("imap:NO cflag ");
+ else {
if (cflag->fl_type==MAILIMAP_FLAG_FETCH_OTHER && cflag->fl_flag!=0) {
@@ -471,2 +472,5 @@ RecMail*IMAPwrapper::parse_list_result(mailimap_msg_att* m_att)
}
+ }
+ }
+ //qDebug(" continue");
continue;
@@ -487,2 +491,3 @@ RecMail*IMAPwrapper::parse_list_result(mailimap_msg_att* m_att)
if ( mailimf_date_time_parse(head->env_date, length,&index, re ) == MAILIMF_NO_ERROR ) {
+ //qDebug("parseDateTime ");
QDateTime dt = Genericwrapper::parseDateTime( date );
@@ -609,3 +614,3 @@ RecBodyP IMAPwrapper::fetchBody(const RecMailP&mail)
} else {
- //odebug << "error fetching body: " << m_imap->imap_response << "" << oendl;
+ qDebug("error fetching body %d (%d): %s", err, MAILIMAP_NO_ERROR, m_imap->imap_response );
}
diff --git a/kmicromail/viewmailbase.cpp b/kmicromail/viewmailbase.cpp
index c4731a7..d21696a 100644
--- a/kmicromail/viewmailbase.cpp
+++ b/kmicromail/viewmailbase.cpp
@@ -54,3 +54,3 @@ ViewMailBase::ViewMailBase(QWidget *parent, const char *name, WFlags fl)
- nextMail = new QAction(i18n("Show next mail"),SmallIcon("add"), 0, 0, this);
+ nextMail = new QAction(i18n("Show next mail"),SmallIcon("enter"), 0, 0, this);
QLabel *spacer = new QLabel(toolbar);