-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 |
3 files changed, 28 insertions, 5 deletions
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 @@ -2399,9 +2399,27 @@ mailimap_body_fld_enc_parse(mailstream * fd, MMAPString * buffer, r = mailimap_string_parse(fd, buffer, &cur_token, &value, NULL, progr_rate, progr_fun); 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 + } } else { res = r; 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 @@ -436,11 +436,12 @@ RecMail*IMAPwrapper::parse_list_result(mailimap_msg_att* m_att) continue; } cf = flist->att_list->first; - if( ! cf ) + if( cf ) { for (cf = clist_begin(flist->att_list); cf!=NULL; cf = clist_next(cf)) { cflag = (mailimap_flag_fetch*)cf->data; if( ! cflag ) - qDebug("imap:not cflag "); + qDebug("imap:NO cflag "); + else { if (cflag->fl_type==MAILIMAP_FLAG_FETCH_OTHER && cflag->fl_flag!=0) { switch (cflag->fl_flag->fl_type) { case MAILIMAP_FLAG_ANSWERED: /* \Answered flag */ @@ -469,6 +470,9 @@ RecMail*IMAPwrapper::parse_list_result(mailimap_msg_att* m_att) mFlags.setBit(FLAG_RECENT); } } + } + } + //qDebug(" continue"); continue; } if ( item->att_data.att_static == NULL ) @@ -485,6 +489,7 @@ RecMail*IMAPwrapper::parse_list_result(mailimap_msg_att* m_att) size_t length = m->getDate().length(); size_t index = 0; if ( mailimf_date_time_parse(head->env_date, length,&index, re ) == MAILIMF_NO_ERROR ) { + //qDebug("parseDateTime "); QDateTime dt = Genericwrapper::parseDateTime( date ); QString ret; if ( dt.date() == QDate::currentDate () ) @@ -607,7 +612,7 @@ RecBodyP IMAPwrapper::fetchBody(const RecMailP&mail) body_desc = item->att_data.att_static->att_data.att_body; traverseBody(mail,body_desc,body,0,path); } 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 ); } if (result) mailimap_fetch_list_free(result); return body; diff --git a/kmicromail/viewmailbase.cpp b/kmicromail/viewmailbase.cpp index c4731a7..d21696a 100644 --- a/kmicromail/viewmailbase.cpp +++ b/kmicromail/viewmailbase.cpp @@ -52,7 +52,7 @@ 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); nextMail->addTo(toolbar); nextMail->addTo(mailmenu); |