Hi. 22:31 <nyetzsche> is there a way to invert which files are tagged in a folder? 22:33 <init0> no afaik 22:37 <Myon> but you are right, that feature is missing 22:46 * Myon tries to implement that now 23:46 <Myon> nyetzsche: http://www.df7cb.de/projects/mutt/tag-invert/ 23:50 <nyetzsche> Myon: thx So, here it is. The new <tag-invert> function toggles the tags in the index and other menus. It is unbound per default. Christoph -- cb@xxxxxxxx | http://www.df7cb.de/
diff -urp MUTT/mutt/OPS tag-invert/mutt/OPS --- MUTT/mutt/OPS 2003-07-04 19:07:22.000000000 +0200 +++ tag-invert/mutt/OPS 2005-01-20 23:43:11.000000000 +0100 @@ -156,6 +156,7 @@ OP_SHELL_ESCAPE "invoke a command in a s OP_SORT "sort messages" OP_SORT_REVERSE "sort messages in reverse order" OP_TAG "tag the current entry" +OP_TAG_INVERT "toggle the tag on all entries" OP_TAG_PREFIX "apply next function to tagged messages" OP_TAG_PREFIX_COND "apply next function ONLY to tagged messages" OP_TAG_SUBTHREAD "tag the current subthread" diff -urp MUTT/mutt/PATCHES tag-invert/mutt/PATCHES --- MUTT/mutt/PATCHES 2002-12-09 18:44:54.000000000 +0100 +++ tag-invert/mutt/PATCHES 2005-01-20 23:44:22.000000000 +0100 @@ -0,0 +1 @@ +patch-1.5.6+CVS.cb.tag-invert.1 diff -urp MUTT/mutt/curs_main.c tag-invert/mutt/curs_main.c --- MUTT/mutt/curs_main.c 2004-04-12 23:51:07.000000000 +0200 +++ tag-invert/mutt/curs_main.c 2005-01-20 23:34:06.000000000 +0100 @@ -941,6 +941,17 @@ CHECK_IMAP_ACL(IMAP_ACL_DELETE); } break; + case OP_TAG_INVERT: + + CHECK_MSGCOUNT; + CHECK_VISIBLE; + for (j = 0; j < Context->msgcount; j++) { + mutt_set_flag (Context, Context->hdrs[j], M_TAG, !Context->hdrs[j]->tagged); + mutt_error _("tag-invert."); + } + menu->redraw = REDRAW_STATUS | REDRAW_INDEX; + break; + case OP_MAIN_TAG_PATTERN: CHECK_MSGCOUNT; diff -urp MUTT/mutt/doc/manual.sgml.tail tag-invert/mutt/doc/manual.sgml.tail --- MUTT/mutt/doc/manual.sgml.tail 2005-01-15 20:27:12.000000000 +0100 +++ tag-invert/mutt/doc/manual.sgml.tail 2005-01-20 23:40:15.000000000 +0100 @@ -42,6 +42,7 @@ search-reverse ESC / search ba select-entry RET select the current entry shell-escape ! run a program in a subshell tag-entry t toggle the tag on the current entry +tag-invert not bound toggle the tag on all entries tag-prefix ; apply next command to tagged entries tag-prefix-cond not bound apply next function ONLY to tagged messages top-page H move to the top of the page diff -urp MUTT/mutt/functions.h tag-invert/mutt/functions.h --- MUTT/mutt/functions.h 2003-07-04 19:07:22.000000000 +0200 +++ tag-invert/mutt/functions.h 2005-01-20 22:50:54.000000000 +0100 @@ -40,6 +40,7 @@ struct binding_t OpGeneric[] = { { "search-next", OP_SEARCH_NEXT, "n" }, { "exit", OP_EXIT, "q" }, { "tag-entry", OP_TAG, "t" }, + { "tag-invert", OP_TAG_INVERT, NULL }, { "next-page", OP_NEXT_PAGE, "z" }, { "previous-page", OP_PREV_PAGE, "Z" }, { "last-entry", OP_LAST_ENTRY, "*" }, diff -urp MUTT/mutt/menu.c tag-invert/mutt/menu.c --- MUTT/mutt/menu.c 2004-09-04 13:31:21.000000000 +0200 +++ tag-invert/mutt/menu.c 2005-01-20 23:11:55.000000000 +0100 @@ -1030,6 +1030,22 @@ int mutt_menuLoop (MUTTMENU *menu) mutt_error _("Tagging is not supported."); break; + case OP_TAG_INVERT: + if (menu->tag && !menu->dialog) + { + if (menu->max) + { + for (i = 0; i < menu->max; i++) + menu->tagged += menu->tag (menu, i, -1); + menu->redraw = REDRAW_INDEX; + } + else + mutt_error _("No entries."); + } + else + mutt_error _("Tagging is not supported."); + break; + case OP_SHELL_ESCAPE: mutt_shell_escape (); MAYBE_REDRAW (menu->redraw);
Attachment:
signature.asc
Description: Digital signature