X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=curs_main.c;h=4d58326f89519470652bc00bed13daac3f9b243c;hp=39973fa74c5175166766c6a57e1687d2de0c4561;hb=ce31869e540c4f27d4a398482a44856f314883da;hpb=b0811fbd6a0e218c9c310a6ef4170e81540e6c22 diff --git a/curs_main.c b/curs_main.c index 39973fa..4d58326 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" @@ -590,10 +594,6 @@ int mutt_index_menu (void) move (menu->current - menu->top + menu->offset, COLS - 1); mutt_refresh (); - op = km_dokey (MENU_MAIN); - - debug_print (4, ("Got op %d\n", op)); - #if defined (USE_SLANG_CURSES) || defined (HAVE_RESIZETERM) if (SigWinch) { mutt_flushinp (); @@ -611,6 +611,10 @@ int mutt_index_menu (void) } #endif + op = km_dokey (MENU_MAIN); + + debug_print (4, ("Got op %d\n", op)); + if (op == -1) continue; /* either user abort or timeout */ @@ -751,7 +755,7 @@ int mutt_index_menu (void) if (op == OP_GET_MESSAGE) { buf[0] = 0; - if (mutt_get_field (_("Enter Message-Id: "), buf, sizeof (buf), 0) + if (mutt_get_field (_("Enter Message-ID: "), buf, sizeof (buf), 0) != 0 || !buf[0]) break; } @@ -802,7 +806,7 @@ int mutt_index_menu (void) int old = CURHDR->index, i; if (!CURHDR->env->message_id) { - mutt_error (_("No Message-Id. Unable to perform operation")); + mutt_error (_("No Message-ID. Unable to perform operation")); break; } @@ -985,6 +989,8 @@ int mutt_index_menu (void) mutt_draw_tree (Context); menu->redraw = REDRAW_FULL; } + if (Context->pattern) + mutt_message _("To view all messages, limit to \"all\"."); break; case OP_QUIT: @@ -1204,9 +1210,13 @@ int mutt_index_menu (void) if (op == OP_SIDEBAR_OPEN) { strncpy (buf, NONULL(sidebar_get_current ()), sizeof (buf)); } - else if (mutt_enter_fname (cp, buf, sizeof (buf), &menu->redraw, 1) == - -1) - break; + else if (mutt_enter_fname (cp, buf, sizeof (buf), &menu->redraw, 1) == -1) { + if (menu->menu == MENU_PAGER) { + op = OP_DISPLAY_MESSAGE; + continue; + } else + break; + } if (!buf[0]) { CLEARLINE (LINES - 1); break; @@ -2099,6 +2109,14 @@ int mutt_index_menu (void) CHECK_MSGCOUNT; CHECK_VISIBLE; mutt_pipe_message (tag ? NULL : CURHDR); +#ifdef USE_IMAP + /* in an IMAP folder index with imap_peek=no, piping could change + * * new or old messages status to read. Redraw what's needed. + */ + if (Context->magic == M_IMAP && !option (OPTIMAPPEEK)) { + menu->redraw = (tag ? REDRAW_INDEX : REDRAW_CURRENT) | REDRAW_STATUS; + } +#endif MAYBE_REDRAW (menu->redraw); break; @@ -2107,6 +2125,14 @@ int mutt_index_menu (void) CHECK_MSGCOUNT; CHECK_VISIBLE; mutt_print_message (tag ? NULL : CURHDR); +#ifdef USE_IMAP + /* in an IMAP folder index with imap_peek=no, piping could change + * * new or old messages status to read. Redraw what's needed. + */ + if (Context->magic == M_IMAP && !option (OPTIMAPPEEK)) { + menu->redraw = (tag ? REDRAW_INDEX : REDRAW_CURRENT) | REDRAW_STATUS; + } +#endif break; case OP_MAIN_READ_THREAD: @@ -2317,6 +2343,10 @@ int mutt_index_menu (void) mutt_what_key (); break; + case OP_REBUILD_CACHE: + mx_rebuild_cache (); + break; + case OP_SIDEBAR_SCROLL_UP: case OP_SIDEBAR_SCROLL_DOWN: case OP_SIDEBAR_NEXT: @@ -2342,16 +2372,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);