mutt stable branch with some hacks
1/*
2 * Copyright (C) 1996-2000,2002 Michael R. Elkins <me@mutt.org>
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 */
18
19/*
20 * This file contains the structures needed to parse ``bind'' commands, as
21 * well as the default bindings for each menu.
22 *
23 * Notes:
24 *
25 * - If you want to bind \n or \r, use MUTT_ENTER_S so that it will work
26 * correctly under both ncurses and S-Lang
27 *
28 * - If you need to bind a control char, use the octal value because the \cX
29 * construct does not work at this level.
30 *
31 * - The magic "map:" comments define how the map will be called in the
32 * manual. Lines starting with "**" will be included in the manual.
33 *
34 */
35
36#ifdef _MAKEDOC
37# include "config.h"
38# include "doc/makedoc-defs.h"
39#endif
40
41const struct binding_t OpGeneric[] = { /* map: generic */
42 /*
43 ** <para>
44 ** The <emphasis>generic</emphasis> menu is not a real menu, but specifies common functions
45 ** (such as movement) available in all menus except for <emphasis>pager</emphasis> and
46 ** <emphasis>editor</emphasis>. Changing settings for this menu will affect the default
47 ** bindings for all menus (except as noted).
48 ** </para>
49 */
50 { "top-page", OP_TOP_PAGE, "H" },
51 { "next-entry", OP_NEXT_ENTRY, "j" },
52 { "previous-entry", OP_PREV_ENTRY, "k" },
53 { "bottom-page", OP_BOTTOM_PAGE, "L" },
54 { "refresh", OP_REDRAW, "\014" },
55 { "middle-page", OP_MIDDLE_PAGE, "M" },
56 { "search-next", OP_SEARCH_NEXT, "n" },
57 { "exit", OP_EXIT, "q" },
58 { "tag-entry", OP_TAG, "t" },
59 { "next-page", OP_NEXT_PAGE, "z" },
60 { "previous-page", OP_PREV_PAGE, "Z" },
61 { "last-entry", OP_LAST_ENTRY, "*" },
62 { "first-entry", OP_FIRST_ENTRY, "=" },
63 { "enter-command", OP_ENTER_COMMAND, ":" },
64 { "next-line", OP_NEXT_LINE, ">" },
65 { "previous-line", OP_PREV_LINE, "<" },
66 { "half-up", OP_HALF_UP, "[" },
67 { "half-down", OP_HALF_DOWN, "]" },
68 { "help", OP_HELP, "?" },
69 { "tag-prefix", OP_TAG_PREFIX, ";" },
70 { "tag-prefix-cond", OP_TAG_PREFIX_COND, NULL },
71 { "end-cond", OP_END_COND, NULL },
72 { "shell-escape", OP_SHELL_ESCAPE, "!" },
73 { "select-entry", OP_GENERIC_SELECT_ENTRY,MUTT_ENTER_S },
74 { "search", OP_SEARCH, "/" },
75 { "search-reverse", OP_SEARCH_REVERSE, "\033/" },
76 { "search-opposite", OP_SEARCH_OPPOSITE, NULL },
77 { "jump", OP_JUMP, NULL },
78 { "current-top", OP_CURRENT_TOP, NULL },
79 { "current-middle", OP_CURRENT_MIDDLE, NULL },
80 { "current-bottom", OP_CURRENT_BOTTOM, NULL },
81 { "error-history", OP_ERROR_HISTORY, NULL },
82 { "what-key", OP_WHAT_KEY, NULL },
83 { "check-stats", OP_CHECK_STATS, NULL },
84 { NULL, 0, NULL }
85};
86
87const struct binding_t OpMain[] = { /* map: index */
88 { "create-alias", OP_CREATE_ALIAS, "a" },
89#ifdef USE_AUTOCRYPT
90 { "autocrypt-acct-menu", OP_AUTOCRYPT_ACCT_MENU, "A" },
91#endif
92 { "bounce-message", OP_BOUNCE_MESSAGE, "b" },
93 { "break-thread", OP_MAIN_BREAK_THREAD, "#" },
94 { "browse-mailboxes", OP_MAIN_BROWSE_MAILBOXES, "y" },
95 { "browse-mailboxes-readonly", OP_MAIN_BROWSE_MAILBOXES_READONLY, NULL },
96 { "change-folder", OP_MAIN_CHANGE_FOLDER, "c" },
97 { "change-folder-readonly", OP_MAIN_CHANGE_FOLDER_READONLY, "\033c" },
98 { "next-unread-mailbox", OP_MAIN_NEXT_UNREAD_MAILBOX, NULL },
99 { "collapse-thread", OP_MAIN_COLLAPSE_THREAD, "\033v" },
100 { "collapse-all", OP_MAIN_COLLAPSE_ALL, "\033V" },
101 { "compose-to-sender", OP_COMPOSE_TO_SENDER, NULL},
102 { "copy-message", OP_COPY_MESSAGE, "C" },
103 { "decode-copy", OP_DECODE_COPY, "\033C" },
104 { "decode-save", OP_DECODE_SAVE, "\033s" },
105 { "delete-message", OP_DELETE, "d" },
106 { "delete-pattern", OP_MAIN_DELETE_PATTERN, "D" },
107 { "delete-thread", OP_DELETE_THREAD, "\004" },
108 { "delete-subthread", OP_DELETE_SUBTHREAD, "\033d" },
109 { "edit", OP_EDIT_MESSAGE, "e" },
110 { "edit-label", OP_EDIT_LABEL, "Y" },
111 { "edit-type", OP_EDIT_TYPE, "\005" },
112 { "forward-message", OP_FORWARD_MESSAGE, "f" },
113 { "flag-message", OP_FLAG_MESSAGE, "F" },
114 { "group-chat-reply", OP_GROUP_CHAT_REPLY, NULL },
115 { "group-reply", OP_GROUP_REPLY, "g" },
116#ifdef USE_POP
117 { "fetch-mail", OP_MAIN_FETCH_MAIL, "G" },
118#endif
119#ifdef USE_IMAP
120 { "imap-fetch-mail", OP_MAIN_IMAP_FETCH, NULL },
121 { "imap-logout-all", OP_MAIN_IMAP_LOGOUT_ALL, NULL },
122#endif
123 { "display-toggle-weed", OP_DISPLAY_HEADERS, "h" },
124 { "next-undeleted", OP_MAIN_NEXT_UNDELETED, "j" },
125 { "previous-undeleted", OP_MAIN_PREV_UNDELETED, "k" },
126 { "limit", OP_MAIN_LIMIT, "l" },
127 { "link-threads", OP_MAIN_LINK_THREADS, "&" },
128 { "list-reply", OP_LIST_REPLY, "L" },
129 { "mail", OP_MAIL, "m" },
130 { "toggle-new", OP_TOGGLE_NEW, "N" },
131 { "toggle-write", OP_TOGGLE_WRITE, "%" },
132 { "next-thread", OP_MAIN_NEXT_THREAD, "\016" },
133 { "next-subthread", OP_MAIN_NEXT_SUBTHREAD, "\033n" },
134 { "purge-message", OP_PURGE_MESSAGE, NULL },
135 { "query", OP_QUERY, "Q" },
136 { "quit", OP_QUIT, "q" },
137 { "reply", OP_REPLY, "r" },
138 { "show-limit", OP_MAIN_SHOW_LIMIT, "\033l" },
139 { "sort-mailbox", OP_SORT, "o" },
140 { "sort-reverse", OP_SORT_REVERSE, "O" },
141 { "print-message", OP_PRINT, "p" },
142 { "previous-thread", OP_MAIN_PREV_THREAD, "\020" },
143 { "previous-subthread", OP_MAIN_PREV_SUBTHREAD, "\033p" },
144 { "recall-message", OP_RECALL_MESSAGE, "R" },
145 { "read-thread", OP_MAIN_READ_THREAD, "\022" },
146 { "read-subthread", OP_MAIN_READ_SUBTHREAD, "\033r" },
147 { "resend-message", OP_RESEND, "\033e" },
148 { "save-message", OP_SAVE, "s" },
149 { "tag-pattern", OP_MAIN_TAG_PATTERN, "T" },
150 { "tag-subthread", OP_TAG_SUBTHREAD, NULL },
151 { "tag-thread", OP_TAG_THREAD, "\033t" },
152 { "untag-pattern", OP_MAIN_UNTAG_PATTERN, "\024" },
153 { "undelete-message", OP_UNDELETE, "u" },
154 { "undelete-pattern", OP_MAIN_UNDELETE_PATTERN, "U"},
155 { "undelete-subthread", OP_UNDELETE_SUBTHREAD, "\033u" },
156 { "undelete-thread", OP_UNDELETE_THREAD, "\025" },
157 { "view-attachments", OP_VIEW_ATTACHMENTS, "v" },
158 { "show-version", OP_VERSION, "V" },
159 { "set-flag", OP_MAIN_SET_FLAG, "w" },
160 { "clear-flag", OP_MAIN_CLEAR_FLAG, "W" },
161 { "display-message", OP_DISPLAY_MESSAGE, MUTT_ENTER_S },
162 { "mark-message", OP_MARK_MSG, "~" },
163 { "buffy-list", OP_BUFFY_LIST, "." },
164 { "sync-mailbox", OP_MAIN_SYNC_FOLDER, "$" },
165 { "display-address", OP_DISPLAY_ADDRESS, "@" },
166 { "pipe-message", OP_PIPE, "|" },
167 { "next-new", OP_MAIN_NEXT_NEW, NULL },
168 { "next-new-then-unread", OP_MAIN_NEXT_NEW_THEN_UNREAD, "\t" },
169 { "previous-new", OP_MAIN_PREV_NEW, NULL },
170 { "previous-new-then-unread", OP_MAIN_PREV_NEW_THEN_UNREAD, "\033\t" },
171 { "next-unread", OP_MAIN_NEXT_UNREAD, NULL },
172 { "previous-unread", OP_MAIN_PREV_UNREAD, NULL },
173 { "parent-message", OP_MAIN_PARENT_MESSAGE, "P" },
174 { "root-message", OP_MAIN_ROOT_MESSAGE, NULL },
175
176
177 { "extract-keys", OP_EXTRACT_KEYS, "\013" },
178 { "forget-passphrase", OP_FORGET_PASSPHRASE, "\006" },
179 { "check-traditional-pgp", OP_CHECK_TRADITIONAL, "\033P" },
180 { "mail-key", OP_MAIL_KEY, "\033k" },
181 { "decrypt-copy", OP_DECRYPT_COPY, NULL },
182 { "decrypt-save", OP_DECRYPT_SAVE, NULL },
183
184#ifdef USE_SIDEBAR
185 { "sidebar-next", OP_SIDEBAR_NEXT, NULL },
186 { "sidebar-next-new", OP_SIDEBAR_NEXT_NEW, NULL },
187 { "sidebar-open", OP_SIDEBAR_OPEN, NULL },
188 { "sidebar-page-down", OP_SIDEBAR_PAGE_DOWN, NULL },
189 { "sidebar-page-up", OP_SIDEBAR_PAGE_UP, NULL },
190 { "sidebar-prev", OP_SIDEBAR_PREV, NULL },
191 { "sidebar-prev-new", OP_SIDEBAR_PREV_NEW, NULL },
192 { "sidebar-toggle-visible", OP_SIDEBAR_TOGGLE_VISIBLE, NULL },
193#endif
194
195 { NULL, 0, NULL }
196};
197
198const struct binding_t OpPager[] = { /* map: pager */
199 { "break-thread", OP_MAIN_BREAK_THREAD, "#" },
200 { "browse-mailboxes", OP_MAIN_BROWSE_MAILBOXES, "y" },
201 { "browse-mailboxes-readonly", OP_MAIN_BROWSE_MAILBOXES_READONLY, NULL },
202 { "create-alias", OP_CREATE_ALIAS, "a" },
203 { "bounce-message", OP_BOUNCE_MESSAGE, "b" },
204 { "change-folder", OP_MAIN_CHANGE_FOLDER, "c" },
205 { "change-folder-readonly", OP_MAIN_CHANGE_FOLDER_READONLY, "\033c" },
206 { "next-unread-mailbox", OP_MAIN_NEXT_UNREAD_MAILBOX, NULL },
207 { "compose-to-sender", OP_COMPOSE_TO_SENDER, NULL},
208 { "copy-message", OP_COPY_MESSAGE, "C" },
209 { "decode-copy", OP_DECODE_COPY, "\033C" },
210 { "delete-message", OP_DELETE, "d" },
211 { "delete-thread", OP_DELETE_THREAD, "\004" },
212 { "delete-subthread", OP_DELETE_SUBTHREAD, "\033d" },
213 { "set-flag", OP_MAIN_SET_FLAG, "w" },
214 { "clear-flag", OP_MAIN_CLEAR_FLAG, "W" },
215 { "edit", OP_EDIT_MESSAGE, "e" },
216 { "edit-label", OP_EDIT_LABEL, "Y" },
217 { "edit-type", OP_EDIT_TYPE, "\005" },
218 { "forward-message", OP_FORWARD_MESSAGE, "f" },
219 { "flag-message", OP_FLAG_MESSAGE, "F" },
220 { "group-chat-reply", OP_GROUP_CHAT_REPLY, NULL },
221 { "group-reply", OP_GROUP_REPLY, "g" },
222#ifdef USE_IMAP
223 { "imap-fetch-mail", OP_MAIN_IMAP_FETCH, NULL },
224 { "imap-logout-all", OP_MAIN_IMAP_LOGOUT_ALL, NULL },
225#endif
226 { "display-toggle-weed", OP_DISPLAY_HEADERS, "h" },
227 { "next-undeleted", OP_MAIN_NEXT_UNDELETED, "j" },
228 { "next-entry", OP_NEXT_ENTRY, "J" },
229 { "previous-undeleted",OP_MAIN_PREV_UNDELETED, "k" },
230 { "previous-entry", OP_PREV_ENTRY, "K" },
231 { "link-threads", OP_MAIN_LINK_THREADS, "&" },
232 { "list-reply", OP_LIST_REPLY, "L" },
233 { "redraw-screen", OP_REDRAW, "\014" },
234 { "mail", OP_MAIL, "m" },
235 { "mark-as-new", OP_TOGGLE_NEW, "N" },
236 { "toggle-write", OP_TOGGLE_WRITE, "%" },
237 { "search-next", OP_SEARCH_NEXT, "n" },
238 { "next-thread", OP_MAIN_NEXT_THREAD, "\016" },
239 { "next-subthread", OP_MAIN_NEXT_SUBTHREAD, "\033n" },
240 { "sort-mailbox", OP_SORT, "o" },
241 { "sort-reverse", OP_SORT_REVERSE, "O" },
242 { "print-message", OP_PRINT, "p" },
243 { "previous-thread", OP_MAIN_PREV_THREAD, "\020" },
244 { "previous-subthread",OP_MAIN_PREV_SUBTHREAD, "\033p" },
245 { "purge-message", OP_PURGE_MESSAGE, NULL },
246 { "quit", OP_QUIT, "Q" },
247 { "exit", OP_EXIT, "q" },
248 { "reply", OP_REPLY, "r" },
249 { "recall-message", OP_RECALL_MESSAGE, "R" },
250 { "read-thread", OP_MAIN_READ_THREAD, "\022" },
251 { "read-subthread", OP_MAIN_READ_SUBTHREAD, "\033r" },
252 { "resend-message", OP_RESEND, "\033e" },
253 { "save-message", OP_SAVE, "s" },
254 { "skip-quoted", OP_PAGER_SKIP_QUOTED, "S" },
255 { "decode-save", OP_DECODE_SAVE, "\033s" },
256 { "tag-message", OP_TAG, "t" },
257 { "toggle-quoted", OP_PAGER_HIDE_QUOTED, "T" },
258 { "undelete-message", OP_UNDELETE, "u" },
259 { "undelete-subthread",OP_UNDELETE_SUBTHREAD, "\033u" },
260 { "undelete-thread", OP_UNDELETE_THREAD, "\025" },
261 { "view-attachments", OP_VIEW_ATTACHMENTS, "v" },
262 { "show-version", OP_VERSION, "V" },
263 { "search-toggle", OP_SEARCH_TOGGLE, "\\" },
264 { "display-address", OP_DISPLAY_ADDRESS, "@" },
265 { "next-new", OP_MAIN_NEXT_NEW, NULL },
266 { "next-new-then-unread",
267 OP_MAIN_NEXT_NEW_THEN_UNREAD, "\t" },
268 { "pipe-message", OP_PIPE, "|" },
269 { "help", OP_HELP, "?" },
270 { "next-page", OP_NEXT_PAGE, " " },
271 { "previous-page", OP_PREV_PAGE, "-" },
272 { "top", OP_PAGER_TOP, "^" },
273 { "sync-mailbox", OP_MAIN_SYNC_FOLDER, "$" },
274 { "shell-escape", OP_SHELL_ESCAPE, "!" },
275 { "enter-command", OP_ENTER_COMMAND, ":" },
276 { "buffy-list", OP_BUFFY_LIST, "." },
277 { "search", OP_SEARCH, "/" },
278 { "search-reverse", OP_SEARCH_REVERSE, "\033/" },
279 { "search-opposite", OP_SEARCH_OPPOSITE, NULL },
280 { "next-line", OP_NEXT_LINE, MUTT_ENTER_S },
281 { "error-history", OP_ERROR_HISTORY, NULL },
282 { "jump", OP_JUMP, NULL },
283 { "next-unread", OP_MAIN_NEXT_UNREAD, NULL },
284 { "previous-new", OP_MAIN_PREV_NEW, NULL },
285 { "previous-new-then-unread",
286 OP_MAIN_PREV_NEW_THEN_UNREAD, NULL },
287 { "previous-unread", OP_MAIN_PREV_UNREAD, NULL },
288 { "half-up", OP_HALF_UP, NULL },
289 { "half-down", OP_HALF_DOWN, NULL },
290 { "previous-line", OP_PREV_LINE, NULL },
291 { "bottom", OP_PAGER_BOTTOM, NULL },
292 { "parent-message", OP_MAIN_PARENT_MESSAGE, "P" },
293 { "root-message", OP_MAIN_ROOT_MESSAGE, NULL },
294
295
296
297
298 { "check-traditional-pgp", OP_CHECK_TRADITIONAL, "\033P" },
299 { "mail-key", OP_MAIL_KEY, "\033k" },
300 { "extract-keys", OP_EXTRACT_KEYS, "\013" },
301 { "forget-passphrase",OP_FORGET_PASSPHRASE, "\006" },
302 { "decrypt-copy", OP_DECRYPT_COPY, NULL },
303 { "decrypt-save", OP_DECRYPT_SAVE, NULL },
304
305 { "what-key", OP_WHAT_KEY, NULL },
306 { "check-stats", OP_CHECK_STATS, NULL },
307
308#ifdef USE_SIDEBAR
309 { "sidebar-next", OP_SIDEBAR_NEXT, NULL },
310 { "sidebar-next-new", OP_SIDEBAR_NEXT_NEW, NULL },
311 { "sidebar-open", OP_SIDEBAR_OPEN, NULL },
312 { "sidebar-page-down", OP_SIDEBAR_PAGE_DOWN, NULL },
313 { "sidebar-page-up", OP_SIDEBAR_PAGE_UP, NULL },
314 { "sidebar-prev", OP_SIDEBAR_PREV, NULL },
315 { "sidebar-prev-new", OP_SIDEBAR_PREV_NEW, NULL },
316 { "sidebar-toggle-visible", OP_SIDEBAR_TOGGLE_VISIBLE, NULL },
317#endif
318
319 { NULL, 0, NULL }
320};
321
322const struct binding_t OpAttach[] = { /* map: attachment */
323 { "bounce-message", OP_BOUNCE_MESSAGE, "b" },
324 { "display-toggle-weed", OP_DISPLAY_HEADERS, "h" },
325 { "compose-to-sender", OP_COMPOSE_TO_SENDER, NULL},
326 { "edit-type", OP_EDIT_TYPE, "\005" },
327 { "print-entry", OP_PRINT, "p" },
328 { "save-entry", OP_SAVE, "s" },
329 { "pipe-entry", OP_PIPE, "|" },
330 { "view-mailcap", OP_ATTACH_VIEW_MAILCAP, "m" },
331 { "reply", OP_REPLY, "r" },
332 { "resend-message", OP_RESEND, "\033e" },
333 { "group-chat-reply", OP_GROUP_CHAT_REPLY, NULL },
334 { "group-reply", OP_GROUP_REPLY, "g" },
335 { "list-reply", OP_LIST_REPLY, "L" },
336 { "forward-message", OP_FORWARD_MESSAGE, "f" },
337 { "view-text", OP_ATTACH_VIEW_TEXT, "T" },
338 { "view-attach", OP_VIEW_ATTACH, MUTT_ENTER_S },
339 { "delete-entry", OP_DELETE, "d" },
340 { "undelete-entry", OP_UNDELETE, "u" },
341 { "collapse-parts", OP_ATTACH_COLLAPSE, "v" },
342
343 { "check-traditional-pgp", OP_CHECK_TRADITIONAL, "\033P" },
344 { "extract-keys", OP_EXTRACT_KEYS, "\013" },
345 { "forget-passphrase", OP_FORGET_PASSPHRASE, "\006" },
346
347 { NULL, 0, NULL }
348};
349
350const struct binding_t OpCompose[] = { /* map: compose */
351 { "attach-file", OP_COMPOSE_ATTACH_FILE, "a" },
352 { "attach-message", OP_COMPOSE_ATTACH_MESSAGE, "A" },
353 { "edit-bcc", OP_COMPOSE_EDIT_BCC, "b" },
354 { "edit-cc", OP_COMPOSE_EDIT_CC, "c" },
355 { "copy-file", OP_SAVE, "C" },
356 { "detach-file", OP_DELETE, "D" },
357 { "toggle-disposition",OP_COMPOSE_TOGGLE_DISPOSITION, "\004" },
358 { "edit-description", OP_COMPOSE_EDIT_DESCRIPTION, "d" },
359 { "edit-message", OP_COMPOSE_EDIT_MESSAGE, "e" },
360 { "edit-headers", OP_COMPOSE_EDIT_HEADERS, "E" },
361 { "edit-file", OP_COMPOSE_EDIT_FILE, "\030e" },
362 { "edit-encoding", OP_COMPOSE_EDIT_ENCODING, "\005" },
363 { "edit-from", OP_COMPOSE_EDIT_FROM, "\033f" },
364 { "edit-fcc", OP_COMPOSE_EDIT_FCC, "f" },
365 { "filter-entry", OP_FILTER, "F" },
366 { "get-attachment", OP_COMPOSE_GET_ATTACHMENT, "G" },
367 { "display-toggle-weed", OP_DISPLAY_HEADERS, "h" },
368 { "ispell", OP_COMPOSE_ISPELL, "i" },
369 { "print-entry", OP_PRINT, "l" },
370 { "edit-mime", OP_COMPOSE_EDIT_MIME, "m" },
371 { "new-mime", OP_COMPOSE_NEW_MIME, "n" },
372#ifdef USE_AUTOCRYPT
373 { "autocrypt-menu", OP_COMPOSE_AUTOCRYPT_MENU, "o" },
374#endif
375 { "postpone-message", OP_COMPOSE_POSTPONE_MESSAGE, "P" },
376 { "edit-reply-to", OP_COMPOSE_EDIT_REPLY_TO, "r" },
377 { "rename-attachment",OP_COMPOSE_RENAME_ATTACHMENT, "\017" },
378 { "rename-file", OP_COMPOSE_RENAME_FILE, "R" },
379 { "edit-subject", OP_COMPOSE_EDIT_SUBJECT, "s" },
380 { "edit-to", OP_COMPOSE_EDIT_TO, "t" },
381 { "edit-type", OP_EDIT_TYPE, "\024" },
382 { "write-fcc", OP_COMPOSE_WRITE_MESSAGE, "w" },
383 { "toggle-unlink", OP_COMPOSE_TOGGLE_UNLINK, "u" },
384 { "toggle-recode", OP_COMPOSE_TOGGLE_RECODE, NULL },
385 { "update-encoding", OP_COMPOSE_UPDATE_ENCODING, "U" },
386 { "view-attach", OP_VIEW_ATTACH, MUTT_ENTER_S },
387 { "view-alt", OP_COMPOSE_VIEW_ALT, "v" },
388 { "view-alt-text", OP_COMPOSE_VIEW_ALT_TEXT, "\033v" },
389 { "view-alt-mailcap", OP_COMPOSE_VIEW_ALT_MAILCAP, "V" },
390 { "send-message", OP_COMPOSE_SEND_MESSAGE, "y" },
391 { "pipe-entry", OP_PIPE, "|" },
392
393 { "attach-key", OP_COMPOSE_ATTACH_KEY, "\033k" },
394 { "pgp-menu", OP_COMPOSE_PGP_MENU, "p" },
395
396 { "forget-passphrase",OP_FORGET_PASSPHRASE, "\006" },
397
398 { "smime-menu", OP_COMPOSE_SMIME_MENU, "S" },
399
400#ifdef MIXMASTER
401 { "mix", OP_COMPOSE_MIX, "M" },
402#endif
403
404 { NULL, 0, NULL }
405};
406
407const struct binding_t OpPost[] = { /* map: postpone */
408 { "delete-entry", OP_DELETE, "d" },
409 { "undelete-entry", OP_UNDELETE, "u" },
410 { NULL, 0, NULL }
411};
412
413const struct binding_t OpAlias[] = { /* map: alias */
414 { "delete-entry", OP_DELETE, "d" },
415 { "undelete-entry", OP_UNDELETE, "u" },
416 { NULL, 0, NULL }
417};
418
419
420/* The file browser */
421const struct binding_t OpBrowser[] = { /* map: browser */
422 { "change-dir", OP_CHANGE_DIRECTORY, "c" },
423 { "descend-directory", OP_DESCEND_DIRECTORY, NULL },
424 { "display-filename", OP_BROWSER_TELL, "@" },
425 { "enter-mask", OP_ENTER_MASK, "m" },
426 { "sort", OP_SORT, "o" },
427 { "sort-reverse", OP_SORT_REVERSE, "O" },
428 { "select-new", OP_BROWSER_NEW_FILE, "N" },
429 { "check-new", OP_CHECK_NEW, NULL },
430 { "toggle-mailboxes", OP_TOGGLE_MAILBOXES, "\t" },
431 { "view-file", OP_BROWSER_VIEW_FILE, " " },
432 { "buffy-list", OP_BUFFY_LIST, "." },
433#ifdef USE_IMAP
434 { "create-mailbox", OP_CREATE_MAILBOX, "C" },
435 { "delete-mailbox", OP_DELETE_MAILBOX, "d" },
436 { "rename-mailbox", OP_RENAME_MAILBOX, "r" },
437 { "subscribe", OP_BROWSER_SUBSCRIBE, "s" },
438 { "unsubscribe", OP_BROWSER_UNSUBSCRIBE, "u" },
439 { "toggle-subscribed", OP_BROWSER_TOGGLE_LSUB, "T" },
440#endif
441 { NULL, 0, NULL }
442};
443
444/* External Query Menu */
445const struct binding_t OpQuery[] = { /* map: query */
446 { "create-alias", OP_CREATE_ALIAS, "a" },
447 { "mail", OP_MAIL, "m" },
448 { "query", OP_QUERY, "Q" },
449 { "query-append", OP_QUERY_APPEND, "A" },
450 { NULL, 0, NULL }
451};
452
453const struct binding_t OpEditor[] = { /* map: editor */
454 { "bol", OP_EDITOR_BOL, "\001" },
455 { "backward-char", OP_EDITOR_BACKWARD_CHAR, "\002" },
456 { "backward-word", OP_EDITOR_BACKWARD_WORD, "\033b"},
457 { "capitalize-word", OP_EDITOR_CAPITALIZE_WORD, "\033c"},
458 { "downcase-word", OP_EDITOR_DOWNCASE_WORD, "\033l"},
459 { "upcase-word", OP_EDITOR_UPCASE_WORD, "\033u"},
460 { "delete-char", OP_EDITOR_DELETE_CHAR, "\004" },
461 { "eol", OP_EDITOR_EOL, "\005" },
462 { "forward-char", OP_EDITOR_FORWARD_CHAR, "\006" },
463 { "forward-word", OP_EDITOR_FORWARD_WORD, "\033f"},
464 { "backspace", OP_EDITOR_BACKSPACE, "\010" },
465 { "kill-eol", OP_EDITOR_KILL_EOL, "\013" },
466 { "kill-eow", OP_EDITOR_KILL_EOW, "\033d"},
467 { "kill-line", OP_EDITOR_KILL_LINE, "\025" },
468 { "quote-char", OP_EDITOR_QUOTE_CHAR, "\026" },
469 { "kill-word", OP_EDITOR_KILL_WORD, "\027" },
470 { "complete", OP_EDITOR_COMPLETE, "\t" },
471 { "complete-query", OP_EDITOR_COMPLETE_QUERY, "\024" },
472 { "buffy-cycle", OP_EDITOR_BUFFY_CYCLE, " " },
473 { "history-up", OP_EDITOR_HISTORY_UP, NULL },
474 { "history-down", OP_EDITOR_HISTORY_DOWN, NULL },
475 { "history-search", OP_EDITOR_HISTORY_SEARCH, "\022" },
476 { "transpose-chars", OP_EDITOR_TRANSPOSE_CHARS, NULL },
477 { NULL, 0, NULL }
478};
479
480
481
482const struct binding_t OpPgp[] = { /* map: pgp */
483 { "verify-key", OP_VERIFY_KEY, "c" },
484 { "view-name", OP_VIEW_ID, "%" },
485 { NULL, 0, NULL }
486};
487
488
489
490/* When using the GPGME based backend we have some useful functions
491 for the SMIME menu. */
492const struct binding_t OpSmime[] = { /* map: smime */
493#ifdef CRYPT_BACKEND_GPGME
494 { "verify-key", OP_VERIFY_KEY, "c" },
495 { "view-name", OP_VIEW_ID, "%" },
496#endif
497 { NULL, 0, NULL }
498};
499
500
501
502#ifdef MIXMASTER
503const struct binding_t OpMix[] = { /* map: mixmaster */
504 { "accept", OP_MIX_USE, MUTT_ENTER_S },
505 { "append", OP_MIX_APPEND, "a" },
506 { "insert", OP_MIX_INSERT, "i" },
507 { "delete", OP_MIX_DELETE, "d" },
508 { "chain-prev", OP_MIX_CHAIN_PREV, "<left>" },
509 { "chain-next", OP_MIX_CHAIN_NEXT, "<right>" },
510 { NULL, 0, NULL }
511};
512#endif /* MIXMASTER */
513
514#ifdef USE_AUTOCRYPT
515const struct binding_t OpAutocryptAcct[] = { /* map: autocrypt account */
516 { "create-account", OP_AUTOCRYPT_CREATE_ACCT, "c" },
517 { "delete-account", OP_AUTOCRYPT_DELETE_ACCT, "D" },
518 { "toggle-active", OP_AUTOCRYPT_TOGGLE_ACTIVE, "a" },
519 { "toggle-prefer-encrypt", OP_AUTOCRYPT_TOGGLE_PREFER, "p" },
520 { NULL, 0, NULL }
521};
522#endif