X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=curs_main.c;h=09f28a146305b780e1db920dca36e73f0bfccb64;hp=54ac43094a86bbcae89f3fd669166506b723286c;hb=a0aa3d4bba449529dfed997214b34e309ce451dd;hpb=dba814e28104a395ffb52e16beccaecf09be8cde diff --git a/curs_main.c b/curs_main.c index 54ac430..09f28a1 100644 --- a/curs_main.c +++ b/curs_main.c @@ -41,6 +41,10 @@ #include "nntp.h" #endif +#ifdef USE_SASL +#include "mutt_sasl.h" +#endif + #include "lib/mem.h" #include "lib/intl.h" #include "lib/str.h" @@ -61,9 +65,16 @@ static const char *Function_not_permitted_in_attach_message_mode = N_("Function not permitted in attach-message mode."); static const char *No_visible = N_("No visible messages."); +#define CHECK_IN_MAILBOX if (!Context) \ + { \ + mutt_flushinp (); \ + mutt_error (_(No_mailbox_is_open)); \ + break; \ + } + #define CHECK_MSGCOUNT if (!Context) \ { \ - mutt_flushinp (); \ + mutt_flushinp (); \ mutt_error(_(No_mailbox_is_open)); \ break; \ } \ @@ -269,19 +280,16 @@ static void update_index (MUTTMENU * menu, CONTEXT * ctx, int check, * they will be visible in the limited view */ if (Context->pattern) { #define THIS_BODY Context->hdrs[j]->content - if (oldcount || check == M_REOPENED) { - for (j = (check == M_REOPENED) ? 0 : oldcount; j < Context->msgcount; - j++) { - if (mutt_pattern_exec - (Context->limit_pattern, M_MATCH_FULL_ADDRESS, Context, - Context->hdrs[j])) { - Context->hdrs[j]->virtual = Context->vcount; - Context->v2r[Context->vcount] = j; - Context->hdrs[j]->limited = 1; - Context->vcount++; - Context->vsize += - THIS_BODY->length + THIS_BODY->offset - THIS_BODY->hdr_offset; - } + for (j = (check == M_REOPENED) ? 0 : oldcount; j < Context->msgcount; j++) { + if (mutt_pattern_exec + (Context->limit_pattern, M_MATCH_FULL_ADDRESS, Context, + Context->hdrs[j])) { + Context->hdrs[j]->virtual = Context->vcount; + Context->v2r[Context->vcount] = j; + Context->hdrs[j]->limited = 1; + Context->vcount++; + Context->vsize += + THIS_BODY->length + THIS_BODY->offset - THIS_BODY->hdr_offset; } } #undef THIS_BODY @@ -922,7 +930,7 @@ int mutt_index_menu (void) break; case OP_MAIN_SHOW_LIMIT: - CHECK_MSGCOUNT; + CHECK_IN_MAILBOX; if (!Context->pattern) mutt_message (_("No limit pattern is in effect.")); @@ -938,7 +946,7 @@ int mutt_index_menu (void) case OP_MAIN_LIMIT: case OP_TOGGLE_READ: - CHECK_MSGCOUNT; + CHECK_IN_MAILBOX; menu->oldcurrent = (Context->vcount && menu->current >= 0 && menu->current < Context->vcount) ? CURHDR->index : -1; @@ -977,7 +985,7 @@ int mutt_index_menu (void) else menu->current = 0; menu->redraw = REDRAW_INDEX | REDRAW_STATUS; - if ((Sort & SORT_MASK) == SORT_THREADS) + if (Context->msgcount && (Sort & SORT_MASK) == SORT_THREADS) mutt_draw_tree (Context); menu->redraw = REDRAW_FULL; } @@ -1699,7 +1707,7 @@ int mutt_index_menu (void) case OP_TOGGLE_WRITE: - CHECK_MSGCOUNT; + CHECK_IN_MAILBOX; if (mx_toggle_write (Context) == 0) menu->redraw |= REDRAW_STATUS; break; @@ -2291,6 +2299,8 @@ int mutt_index_menu (void) break; case OP_BUFFY_LIST: + if (option (OPTFORCEBUFFYCHECK)) + buffy_check (1); buffy_list (); menu->redraw = REDRAW_FULL; break; @@ -2336,16 +2346,19 @@ int mutt_index_menu (void) break; } + if (!attach_msg) { #ifdef USE_IMAP /* Close all open IMAP connections */ - if (!attach_msg) imap_logout_all (); #endif #ifdef USE_NNTP /* Close all open NNTP connections */ - if (!attach_msg) nntp_logout_all (); #endif +#ifdef USE_SASL + mutt_sasl_done (); +#endif + } mutt_menuDestroy (&menu); return (close);