--- OPS.orig Mon Mar 1 18:56:19 2010 +++ OPS Thu Mar 15 15:02:09 2012 @@ -112,10 +112,12 @@ OP_MAIN_NEXT_NEW "jump to the next new message" OP_MAIN_NEXT_NEW_THEN_UNREAD "jump to the next new or unread message" OP_MAIN_NEXT_SUBTHREAD "jump to the next subthread" +OP_MAIN_NEXT_TAGGED "jump to the next tagged message" OP_MAIN_NEXT_THREAD "jump to the next thread" OP_MAIN_NEXT_UNDELETED "move to the next undeleted message" OP_MAIN_NEXT_UNREAD "jump to the next unread message" OP_MAIN_PARENT_MESSAGE "jump to parent message in thread" +OP_MAIN_PREV_TAGGED "jump to previous tagged message" OP_MAIN_PREV_THREAD "jump to previous thread" OP_MAIN_PREV_SUBTHREAD "jump to previous subthread" OP_MAIN_PREV_UNDELETED "move to the previous undeleted message" --- PATCHES.orig Wed Mar 19 21:07:06 2008 +++ PATCHES Thu Mar 15 15:14:48 2012 @@ -0,0 +1 @@ +patch-1.5.21.aw.jumptagged.1 --- curs_main.c.orig Mon Sep 13 19:19:55 2010 +++ curs_main.c Thu Mar 15 15:06:21 2012 @@ -1452,10 +1452,13 @@ case OP_MAIN_PREV_UNREAD: case OP_MAIN_NEXT_NEW_THEN_UNREAD: case OP_MAIN_PREV_NEW_THEN_UNREAD: + case OP_MAIN_NEXT_TAGGED: + case OP_MAIN_PREV_TAGGED: { int first_unread = -1; int first_new = -1; + int first_tagged = -1; CHECK_MSGCOUNT; CHECK_VISIBLE; @@ -1465,7 +1468,7 @@ for (j = 0; j != Context->vcount; j++) { #define CURHDRi Context->hdrs[Context->v2r[i]] - if (op == OP_MAIN_NEXT_NEW || op == OP_MAIN_NEXT_UNREAD || op == OP_MAIN_NEXT_NEW_THEN_UNREAD) + if (op == OP_MAIN_NEXT_NEW || op == OP_MAIN_NEXT_UNREAD || op == OP_MAIN_NEXT_NEW_THEN_UNREAD || op == OP_MAIN_NEXT_TAGGED) { i++; if (i > Context->vcount - 1) @@ -1499,6 +1502,11 @@ first_new = i; } + if (CURHDRi->tagged && first_tagged == -1) { + first_tagged = i; + break; + } + if ((op == OP_MAIN_NEXT_UNREAD || op == OP_MAIN_PREV_UNREAD) && first_unread != -1) break; @@ -1516,11 +1524,14 @@ op == OP_MAIN_NEXT_NEW_THEN_UNREAD || op == OP_MAIN_PREV_NEW_THEN_UNREAD) && first_unread != -1) menu->current = first_unread; + else if ((op == OP_MAIN_NEXT_TAGGED || op == OP_MAIN_PREV_TAGGED) + && first_tagged != -1) + menu->current = first_tagged; if (menu->current == -1) { menu->current = menu->oldcurrent; - mutt_error ("%s%s.", (op == OP_MAIN_NEXT_NEW || op == OP_MAIN_PREV_NEW) ? _("No new messages") : _("No unread messages"), + mutt_error ("%s%s.", (op == OP_MAIN_NEXT_NEW || op == OP_MAIN_PREV_NEW) ? _("No new messages") : (op == OP_MAIN_NEXT_TAGGED || op == OP_MAIN_PREV_TAGGED) ? _("No tagged messages") : _("No unread messages"), Context->pattern ? _(" in this limited view") : ""); } else if (menu->menu == MENU_PAGER) --- functions.h.orig Tue Aug 24 18:34:21 2010 +++ functions.h Thu Mar 15 15:02:09 2012 @@ -159,6 +159,8 @@ { "next-unread", OP_MAIN_NEXT_UNREAD, NULL }, { "previous-unread", OP_MAIN_PREV_UNREAD, NULL }, { "parent-message", OP_MAIN_PARENT_MESSAGE, "P" }, + { "next-tagged", OP_MAIN_NEXT_TAGGED, NULL }, + { "previous-tagged", OP_MAIN_PREV_TAGGED, NULL }, { "extract-keys", OP_EXTRACT_KEYS, "\013" }, @@ -259,6 +261,8 @@ { "previous-line", OP_PREV_LINE, NULL }, { "bottom", OP_PAGER_BOTTOM, NULL }, { "parent-message", OP_MAIN_PARENT_MESSAGE, "P" }, + { "next-tagged", OP_MAIN_NEXT_TAGGED, NULL }, + { "previous-tagged", OP_MAIN_PREV_TAGGED, NULL },