return 0;
}
+static void resort_index (MUTTMENU *menu)
+{
+ int i;
+ const HEADER *current = CURHDR;
+
+ mutt_sort_headers (Context, 0);
+ /* Restore the current message */
+ for (i = 0; i < Context->vcount; i++)
+ {
+ if (Context->hdrs[Context->v2r[i]] == current)
+ {
+ menu->current = i;
+ break;
+ }
+ }
+ menu->redraw = REDRAW_INDEX | REDRAW_STATUS;
+}
+
struct mapping_t IndexHelp[] = {
{ N_("Quit"), OP_QUIT },
{ N_("Del"), OP_DELETE },
{
if (Context && Context->msgcount)
{
- menu->oldcurrent = CURHDR->index;
- mutt_sort_headers (Context, 0);
-
- /* try to restore the current message */
- for (i = 0; i < Context->vcount; i++)
- {
- if (Context->hdrs[Context->v2r[i]]->index == menu->oldcurrent)
- menu->current = i;
- }
- menu->redraw = REDRAW_INDEX | REDRAW_STATUS;
+ resort_index (menu);
set_option (OPTSEARCHINVALID);
}
}
if (option (OPTNEEDRESORT) && Context && Context->msgcount)
{
- menu->oldcurrent = CURHDR->index;
- mutt_sort_headers (Context, 0);
-
- /* try to restore the current message */
- for (i = 0; i < Context->vcount; i++)
- {
- if (Context->hdrs[Context->v2r[i]]->index == menu->oldcurrent)
- menu->current = i;
- }
- menu->redraw = REDRAW_INDEX | REDRAW_STATUS;
+ resort_index (menu);
}
menu->menu = MENU_PAGER;
mutt_check_rescore (Context);
if (option (OPTNEEDRESORT) && Context && Context->msgcount)
{
- menu->oldcurrent = CURHDR->index;
- mutt_sort_headers (Context, 0);
-
- /* try to restore the current message */
- for (i = 0; i < Context->vcount; i++)
- {
- if (Context->hdrs[Context->v2r[i]]->index == menu->oldcurrent)
- menu->current = i;
- }
- menu->redraw = REDRAW_INDEX | REDRAW_STATUS;
+ resort_index (menu);
}
if (option (OPTFORCEREDRAWINDEX))
menu->redraw = REDRAW_FULL;