mutt stable branch with some hacks
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Adds <mark-message> binding to create "hotkeys" for messages.

<mark-message>foo<enter> will create a new macro "'foo" which will
return to the current message by searching for that message's
message id. The initial character of the macro is defined by
$mark_macro_prefix, and defaults to "'" for verisimilitude vs. vi.

Pushed by Kevin McCarthy with a minor fix.

+59
+1
OPS
··· 131 131 OP_MAIN_TAG_PATTERN "tag messages matching a pattern" 132 132 OP_MAIN_UNDELETE_PATTERN "undelete messages matching a pattern" 133 133 OP_MAIN_UNTAG_PATTERN "untag messages matching a pattern" 134 + OP_MARK_MSG "create a hot-key macro for the current message" 134 135 OP_MIDDLE_PAGE "move to the middle of the page" 135 136 OP_NEXT_ENTRY "move to the next entry" 136 137 OP_NEXT_LINE "scroll down one line"
+28
curs_main.c
··· 2204 2204 } 2205 2205 break; 2206 2206 2207 + 2208 + case OP_MARK_MSG: 2209 + 2210 + CHECK_MSGCOUNT; 2211 + CHECK_VISIBLE; 2212 + if (CURHDR->env->message_id) 2213 + { 2214 + char str[STRING], macro[STRING]; 2215 + char buf[128]; 2216 + 2217 + buf[0] = '\0'; 2218 + if (!mutt_get_field ("Enter macro stroke: ", buf, sizeof(buf), 2219 + MUTT_CLEAR) && buf[0]) 2220 + { 2221 + snprintf(str, sizeof(str), "%s%s", MarkMacroPrefix, buf); 2222 + snprintf(macro, sizeof(macro), 2223 + "<search>~i \"%s\"\n", CURHDR->env->message_id); 2224 + km_bind(str, MENU_GENERIC, OP_MACRO, macro, "Message hotkey"); 2225 + 2226 + snprintf(buf, sizeof(buf), _("Message bound to %s."), str); 2227 + mutt_message(buf); 2228 + dprint (1, (debugfile, "Mark: %s => %s\n", str, macro)); 2229 + } 2230 + } 2231 + else 2232 + mutt_error _("No message ID to macro."); 2233 + break; 2234 + 2207 2235 case OP_RECALL_MESSAGE: 2208 2236 2209 2237 CHECK_ATTACH;
+21
doc/manual.xml.head
··· 5492 5492 5493 5493 </sect1> 5494 5494 5495 + <sect1 id="markmsg"> 5496 + <title>Marking Messages</title> 5497 + 5498 + <para> 5499 + There are times that it's useful to ask Mutt to "remember" which message 5500 + you're currently looking at, while you move elsewhere in your mailbox. 5501 + You can do this with the <quote>mark-message</quote> operator, which 5502 + is bound to the <quote>~</quote> key by default. Press this key to 5503 + enter an identifier for the marked message. When you want to return to 5504 + this message, press <quote>'</quote> and the name that you previously 5505 + entered. 5506 + </para> 5507 + 5508 + <para> 5509 + (Message marking is really just a shortcut for defining a macro 5510 + that returns you to the current message by searching for its 5511 + Message-ID. You can choose a different prefix by setting the <link 5512 + linkend="mark-macro-prefix">$mark_macro_prefix</link> variable.) 5513 + </para> 5514 + </sect1> 5515 + 5495 5516 <sect1 id="tags"> 5496 5517 <title>Using Tags</title> 5497 5518
+1
functions.h
··· 65 65 { "previous-line", OP_PREV_LINE, "<" }, 66 66 { "half-up", OP_HALF_UP, "[" }, 67 67 { "half-down", OP_HALF_DOWN, "]" }, 68 + { "mark-message", OP_MARK_MSG, "~" }, 68 69 { "help", OP_HELP, "?" }, 69 70 { "tag-prefix", OP_TAG_PREFIX, ";" }, 70 71 { "tag-prefix-cond", OP_TAG_PREFIX_COND, NULL },
+1
globals.h
··· 78 78 WHERE char *HeaderCachePageSize; 79 79 #endif /* HAVE_GDBM || HAVE_DB4 */ 80 80 #endif /* USE_HCACHE */ 81 + WHERE char *MarkMacroPrefix; 81 82 WHERE char *MhFlagged; 82 83 WHERE char *MhReplied; 83 84 WHERE char *MhUnseen;
+7
init.h
··· 1490 1490 ** slow down polling for new messages in large folders, since mutt has 1491 1491 ** to scan all cur messages. 1492 1492 */ 1493 + { "mark_macro_prefix",DT_STR, R_NONE, UL &MarkMacroPrefix, UL "'" }, 1494 + /* 1495 + ** .pp 1496 + ** Prefix for macros created using mark-message. A new macro 1497 + ** automatically generated with \fI<mark-message>a\fP will be composed 1498 + ** from this prefix and the letter \fIa\fP. 1499 + */ 1493 1500 { "mark_old", DT_BOOL, R_BOTH, OPTMARKOLD, 1 }, 1494 1501 /* 1495 1502 ** .pp