-rw-r--r-- | bin/kdepim/WhatsNew.txt | 7 | ||||
-rw-r--r-- | kmicromail/libetpan/imap/mailimap_parser.c | 20 | ||||
-rw-r--r-- | kmicromail/libmailwrapper/imapwrapper.cpp | 11 | ||||
-rw-r--r-- | kmicromail/viewmailbase.cpp | 2 |
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); |