+++ /dev/null
-written by Nicolas Rachinsky <nr@rachinsky.de>
-http://www.rachinsky.de
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published
-by the Free Software Foundation; version 2 of the License.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
---- curs_lib.c.orig Thu Nov 15 23:56:51 2001
-+++ curs_lib.c Thu Nov 15 23:57:02 2001
-@@ -39,7 +39,7 @@
- * is impossible to unget function keys in SLang, so roll our own input
- * buffering routines.
- */
--static size_t UngetCount = 0;
-+size_t UngetCount = 0;
- static size_t UngetBufLen = 0;
- static event_t *KeyEvent;
-
---- PATCHES~ Tue Nov 6 19:59:33 2001
-+++ PATCHES Tue Nov 6 19:59:42 2001
-@@ -1,0 +1 @@
-+1.3.23.2.nr.tag_prefix_cond
---- OPS.orig Tue Sep 11 12:50:50 2001
-+++ OPS Sun Dec 2 01:52:49 2001
-@@ -1,4 +1,5 @@
- OP_NULL "null operation"
-+OP_SPECIAL "special operation (does nothing)"
- OP_ATTACH_VIEW_MAILCAP "force viewing of attachment using mailcap"
- OP_ATTACH_VIEW_TEXT "view attachment as text"
- OP_ATTACH_COLLAPSE "Toggle display of subparts"
-@@ -153,6 +154,7 @@
- OP_SORT_REVERSE "sort messages in reverse order"
- OP_TAG "tag the current entry"
- 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"
- OP_TAG_THREAD "tag the current thread"
- OP_TOGGLE_NEW "toggle a message's 'new' flag"
---- curs_main.c.orig Sun Dec 2 01:50:43 2001
-+++ curs_main.c Sun Dec 2 01:59:14 2001
-@@ -43,7 +43,7 @@
-
-
-
--
-+extern size_t UngetCount;
-
-
-
-@@ -621,6 +621,40 @@
- else if (option (OPTAUTOTAG) && Context && Context->tagged)
- tag = 1;
-
-+ if (op == OP_TAG_PREFIX_COND)
-+ {
-+ if (!Context)
-+ {
-+ mutt_error _("No mailbox is open.");
-+ continue;
-+ }
-+
-+ if (!Context->tagged)
-+ {
-+ event_t tmp;
-+ while(UngetCount>0)
-+ {
-+ tmp=mutt_getch();
-+ if(tmp.op==OP_SPECIAL)break;
-+ }
-+ mutt_message _("Nothing todo.");
-+ continue;
-+ }
-+ tag = 1;
-+
-+ /* give visual indication that the next command is a tag- command */
-+ mvaddstr (LINES - 1, 0, "tag-");
-+ clrtoeol ();
-+
-+ /* get the real command */
-+ if ((op = km_dokey (MENU_MAIN)) == OP_TAG_PREFIX)
-+ {
-+ /* abort tag sequence */
-+ CLEARLINE (LINES-1);
-+ continue;
-+ }
-+ }
-+
- mutt_clear_error ();
- }
- else
-@@ -1964,6 +1998,9 @@
- if (CURHDR->attach_del)
- Context->changed = 1;
- menu->redraw = REDRAW_FULL;
-+ break;
-+
-+ case OP_SPECIAL:
- break;
-
- default:
---- functions.h.orig Tue Sep 11 12:51:39 2001
-+++ functions.h Sun Dec 2 01:53:51 2001
-@@ -51,6 +51,8 @@
- { "half-down", OP_HALF_DOWN, "]" },
- { "help", OP_HELP, "?" },
- { "tag-prefix", OP_TAG_PREFIX, ";" },
-+ { "tag-prefix-cond", OP_TAG_PREFIX_COND, NULL },
-+ { "special", OP_SPECIAL, NULL },
- { "shell-escape", OP_SHELL_ESCAPE, "!" },
- { "select-entry", OP_GENERIC_SELECT_ENTRY,M_ENTER_S },
- { "search", OP_SEARCH, "/" },
---- menu.c.orig Tue Nov 6 21:36:57 2001
-+++ menu.c Sun Dec 2 02:02:30 2001
-@@ -30,6 +30,8 @@
-
- extern int Charset_is_utf8; /* FIXME: bad modularisation */
-
-+extern size_t UngetCount;
-+
- static void print_enriched_string (int attr, unsigned char *s, int do_color)
- {
- wchar_t wc;
-@@ -866,6 +868,28 @@
- i = -1;
- }
- }
-+ if (i == OP_TAG_PREFIX_COND)
-+ {
-+ if (menu->tagged)
-+ {
-+ mvaddstr (LINES - 1, 0, "Tag-");
-+ clrtoeol ();
-+ i = km_dokey (menu->menu);
-+ menu->tagprefix = 1;
-+ CLEARLINE (LINES - 1);
-+ }
-+ else
-+ {
-+ event_t tmp;
-+ while(UngetCount>0)
-+ {
-+ tmp=mutt_getch();
-+ if(tmp.op==OP_SPECIAL)break;
-+ }
-+ mutt_message _("Nothing todo.");
-+ i = -1;
-+ }
-+ }
- else if (menu->tagged && option (OPTAUTOTAG))
- menu->tagprefix = 1;
- else
-@@ -1021,6 +1045,9 @@
-
- case OP_NULL:
- km_error_key (menu->menu);
-+ break;
-+
-+ case OP_SPECIAL:
- break;
-
- default: