X-Git-Url: http://git.madism.org/?a=blobdiff_plain;ds=sidebyside;f=curs_main.c;h=1e50716a25e329ae450787f7b40895977a578a51;hb=16392434eb28ef16069eae972640e1f534477f83;hp=14bb5529ce8a1a7645b1aa015e15b31b09abef27;hpb=e9cbbd6d2f13c05021af4470332317c727acb693;p=apps%2Fmadmutt.git diff --git a/curs_main.c b/curs_main.c index 14bb552..1e50716 100644 --- a/curs_main.c +++ b/curs_main.c @@ -195,7 +195,7 @@ int index_color (int index_no) { HEADER *h = Context->hdrs[Context->v2r[index_no]]; - if (h->pair) + if (h && h->pair) return h->pair; mutt_set_header_color (Context, h); @@ -479,8 +479,12 @@ int mutt_index_menu (void) #endif IndexHelp); - if (!attach_msg) + if (!attach_msg) { mutt_buffy_check(1); /* force the buffy check after we enter the folder */ + /* record folder we open to place sidebar indicator properly */ + if (Context && Context->path) + set_curbuffy(Context->path); + } FOREVER { @@ -1066,7 +1070,7 @@ CHECK_IMAP_ACL(IMAP_ACL_DELETE); break; } - if (query_quadoption (OPT_QUIT, _("Quit Mutt?")) == M_YES) + if (query_quadoption (OPT_QUIT, _("Quit Mutt-ng?")) == M_YES) { int check; @@ -1277,7 +1281,11 @@ CHECK_IMAP_ACL(IMAP_ACL_DELETE); } else #endif - mutt_buffy (buf, sizeof (buf)); + { + if (Context && Context->path) + strncpy (buf, Context->path, sizeof (buf)); + mutt_buffy (buf, sizeof (buf)); + } if ( op == OP_SIDEBAR_OPEN ) { if(!CurBuffy) @@ -1306,6 +1314,7 @@ CHECK_IMAP_ACL(IMAP_ACL_DELETE); mutt_error (_("%s is not a mailbox."), buf); break; } + mutt_str_replace (&CurrentFolder, buf); if (Context) { @@ -1431,6 +1440,75 @@ CHECK_IMAP_ACL(IMAP_ACL_DELETE); menu->redraw = REDRAW_CURRENT; break; + case OP_MAIN_BREAK_THREAD: + + CHECK_MSGCOUNT; + CHECK_VISIBLE; + CHECK_READONLY; + + if ((Sort & SORT_MASK) != SORT_THREADS) + mutt_error _("Threading is not enabled."); + else + { + { + HEADER *oldcur = CURHDR; + + mutt_break_thread (CURHDR); + mutt_sort_headers (Context, 1); + menu->current = oldcur->virtual; + } + + Context->changed = 1; + mutt_message _("Thread broken"); + + if (menu->menu == MENU_PAGER) + { + op = OP_DISPLAY_MESSAGE; + continue; + } + else + menu->redraw |= REDRAW_INDEX; + } + break; + + case OP_MAIN_LINK_THREADS: + + CHECK_MSGCOUNT; + CHECK_VISIBLE; + CHECK_READONLY; + + if ((Sort & SORT_MASK) != SORT_THREADS) + mutt_error _("Threading is not enabled."); + else if (!CURHDR->env->message_id) + mutt_error _("No Message-ID: header available to link thread"); + else if (!tag && (!Context->last_tag || !Context->last_tag->tagged)) + mutt_error _("First, please tag a message to be linked here"); + else + { + HEADER *oldcur = CURHDR; + + if (mutt_link_threads (CURHDR, tag ? NULL : Context->last_tag, + Context)) + { + mutt_sort_headers (Context, 1); + menu->current = oldcur->virtual; + + Context->changed = 1; + mutt_message _("Threads linked"); + } + else + mutt_error _("No thread linked"); + } + + if (menu->menu == MENU_PAGER) + { + op = OP_DISPLAY_MESSAGE; + continue; + } + else + menu->redraw |= REDRAW_STATUS | REDRAW_INDEX; + break; + case OP_MAIN_NEXT_UNDELETED: CHECK_MSGCOUNT; @@ -2246,7 +2324,11 @@ CHECK_IMAP_ACL(IMAP_ACL_SEEN); case OP_FORWARD_TO_GROUP: CHECK_ATTACH; - if (op != OP_FOLLOWUP || !CURHDR->env->followup_to || + if ((op == OP_FOLLOWUP || op == OP_FORWARD_TO_GROUP) && + Context && Context->msgcount == 0) { + mutt_error (_("There are no messages.")); + sleep (2); + } else if (op != OP_FOLLOWUP || !CURHDR->env->followup_to || mutt_strcasecmp (CURHDR->env->followup_to, "poster") || query_quadoption (OPT_FOLLOWUPTOPOSTER,_("Reply by mail as poster prefers?")) != M_YES) {