NeoMutt  2022-04-29-145-g9b6a0e
Teaching an old dog new tricks
DOXYGEN
functions.c
Go to the documentation of this file.
1 
42 #include "config.h"
43 #ifdef _MAKEDOC
44 #include "docs/makedoc_defs.h"
45 #else
46 #include <stddef.h>
47 #include "keymap.h"
48 #include "opcodes.h"
49 #endif
50 
51 // clang-format off
55 const struct MenuFuncOp OpAlias[] = { /* map: alias */
56  { "delete-entry", OP_DELETE },
57  { "exit", OP_EXIT },
58  { "limit", OP_MAIN_LIMIT },
59  { "mail", OP_MAIL },
60  { "sort-alias", OP_SORT },
61  { "sort-alias-reverse", OP_SORT_REVERSE },
62  { "undelete-entry", OP_UNDELETE },
63  { NULL, 0 },
64 };
65 
69 const struct MenuFuncOp OpAttach[] = { /* map: attachment */
70  { "bounce-message", OP_BOUNCE_MESSAGE },
71  { "check-traditional-pgp", OP_CHECK_TRADITIONAL },
72  { "collapse-parts", OP_ATTACHMENT_COLLAPSE },
73  { "compose-to-sender", OP_COMPOSE_TO_SENDER },
74  { "delete-entry", OP_ATTACHMENT_DELETE },
75  { "display-toggle-weed", OP_DISPLAY_HEADERS },
76  { "edit-type", OP_ATTACHMENT_EDIT_TYPE },
77  { "exit", OP_EXIT },
78  { "extract-keys", OP_EXTRACT_KEYS },
79 #ifdef USE_NNTP
80  { "followup-message", OP_FOLLOWUP },
81 #endif
82  { "forget-passphrase", OP_FORGET_PASSPHRASE },
83  { "forward-message", OP_FORWARD_MESSAGE },
84 #ifdef USE_NNTP
85  { "forward-to-group", OP_FORWARD_TO_GROUP },
86 #endif
87  { "group-chat-reply", OP_GROUP_CHAT_REPLY },
88  { "group-reply", OP_GROUP_REPLY },
89  { "list-reply", OP_LIST_REPLY },
90  { "list-subscribe", OP_LIST_SUBSCRIBE },
91  { "list-unsubscribe", OP_LIST_UNSUBSCRIBE },
92  { "pipe-entry", OP_PIPE },
93  { "pipe-message", OP_PIPE },
94  { "print-entry", OP_ATTACHMENT_PRINT },
95  { "reply", OP_REPLY },
96  { "resend-message", OP_RESEND },
97  { "save-entry", OP_ATTACHMENT_SAVE },
98  { "undelete-entry", OP_ATTACHMENT_UNDELETE },
99  { "view-attach", OP_ATTACHMENT_VIEW },
100  { "view-mailcap", OP_ATTACHMENT_VIEW_MAILCAP },
101  { "view-pager", OP_ATTACHMENT_VIEW_PAGER },
102  { "view-text", OP_ATTACHMENT_VIEW_TEXT },
103  { NULL, 0 },
104 };
105 
106 #ifdef USE_AUTOCRYPT
110 const struct MenuFuncOp OpAutocrypt[] = { /* map: autocrypt account */
111  { "create-account", OP_AUTOCRYPT_CREATE_ACCT },
112  { "delete-account", OP_AUTOCRYPT_DELETE_ACCT },
113  { "exit", OP_EXIT },
114  { "toggle-active", OP_AUTOCRYPT_TOGGLE_ACTIVE },
115  { "toggle-prefer-encrypt", OP_AUTOCRYPT_TOGGLE_PREFER },
116  { NULL, 0 }
117 };
118 #endif
119 
123 const struct MenuFuncOp OpBrowser[] = { /* map: browser */
124 #ifdef USE_NNTP
125  { "catchup", OP_CATCHUP },
126 #endif
127  { "change-dir", OP_CHANGE_DIRECTORY },
128  { "check-new", OP_CHECK_NEW },
129 #ifdef USE_IMAP
130  { "create-mailbox", OP_CREATE_MAILBOX },
131  { "delete-mailbox", OP_DELETE_MAILBOX },
132 #endif
133  { "descend-directory", OP_DESCEND_DIRECTORY },
134  { "display-filename", OP_BROWSER_TELL },
135  { "enter-mask", OP_ENTER_MASK },
136  { "exit", OP_EXIT },
137  { "goto-folder", OP_BROWSER_GOTO_FOLDER },
138  { "goto-parent", OP_GOTO_PARENT },
139  { "mailbox-list", OP_MAILBOX_LIST },
140 #ifdef USE_NNTP
141  { "reload-active", OP_LOAD_ACTIVE },
142 #endif
143 #ifdef USE_IMAP
144  { "rename-mailbox", OP_RENAME_MAILBOX },
145 #endif
146  { "select-new", OP_BROWSER_NEW_FILE },
147  { "sort", OP_SORT },
148  { "sort-reverse", OP_SORT_REVERSE },
149 #if defined(USE_IMAP) || defined(USE_NNTP)
150  { "subscribe", OP_BROWSER_SUBSCRIBE },
151 #endif
152 #ifdef USE_NNTP
153  { "subscribe-pattern", OP_SUBSCRIBE_PATTERN },
154 #endif
155  { "toggle-mailboxes", OP_TOGGLE_MAILBOXES },
156 #ifdef USE_IMAP
157  { "toggle-subscribed", OP_BROWSER_TOGGLE_LSUB },
158 #endif
159 #ifdef USE_NNTP
160  { "uncatchup", OP_UNCATCHUP },
161 #endif
162 #if defined(USE_IMAP) || defined(USE_NNTP)
163  { "unsubscribe", OP_BROWSER_UNSUBSCRIBE },
164 #endif
165 #ifdef USE_NNTP
166  { "unsubscribe-pattern", OP_UNSUBSCRIBE_PATTERN },
167 #endif
168  { "view-file", OP_BROWSER_VIEW_FILE },
169  // Deprecated
170  { "buffy-list", OP_MAILBOX_LIST },
171  { NULL, 0 },
172 };
173 
177 const struct MenuFuncOp OpCompose[] = { /* map: compose */
178  { "attach-file", OP_ATTACHMENT_ATTACH_FILE },
179  { "attach-key", OP_ATTACHMENT_ATTACH_KEY },
180  { "attach-message", OP_ATTACHMENT_ATTACH_MESSAGE },
181 #ifdef USE_NNTP
182  { "attach-news-message", OP_ATTACHMENT_ATTACH_NEWS_MESSAGE },
183 #endif
184 #ifdef USE_AUTOCRYPT
185  { "autocrypt-menu", OP_COMPOSE_AUTOCRYPT_MENU },
186 #endif
187  { "copy-file", OP_ATTACHMENT_SAVE },
188  { "detach-file", OP_ATTACHMENT_DETACH },
189  { "display-toggle-weed", OP_DISPLAY_HEADERS },
190  { "edit-bcc", OP_ENVELOPE_EDIT_BCC },
191  { "edit-cc", OP_ENVELOPE_EDIT_CC },
192  { "edit-content-id", OP_ATTACHMENT_EDIT_CONTENT_ID },
193  { "edit-description", OP_ATTACHMENT_EDIT_DESCRIPTION },
194  { "edit-encoding", OP_ATTACHMENT_EDIT_ENCODING },
195  { "edit-fcc", OP_ENVELOPE_EDIT_FCC },
196  { "edit-file", OP_COMPOSE_EDIT_FILE },
197 #ifdef USE_NNTP
198  { "edit-followup-to", OP_ENVELOPE_EDIT_FOLLOWUP_TO },
199 #endif
200  { "edit-from", OP_ENVELOPE_EDIT_FROM },
201  { "edit-headers", OP_ENVELOPE_EDIT_HEADERS },
202  { "edit-language", OP_ATTACHMENT_EDIT_LANGUAGE },
203  { "edit-message", OP_COMPOSE_EDIT_MESSAGE },
204  { "edit-mime", OP_ATTACHMENT_EDIT_MIME },
205 #ifdef USE_NNTP
206  { "edit-newsgroups", OP_ENVELOPE_EDIT_NEWSGROUPS },
207 #endif
208  { "edit-reply-to", OP_ENVELOPE_EDIT_REPLY_TO },
209  { "edit-subject", OP_ENVELOPE_EDIT_SUBJECT },
210  { "edit-to", OP_ENVELOPE_EDIT_TO },
211  { "edit-type", OP_ATTACHMENT_EDIT_TYPE },
212 #ifdef USE_NNTP
213  { "edit-x-comment-to", OP_ENVELOPE_EDIT_X_COMMENT_TO },
214 #endif
215  { "exit", OP_EXIT },
216  { "filter-entry", OP_ATTACHMENT_FILTER },
217  { "forget-passphrase", OP_FORGET_PASSPHRASE },
218  { "get-attachment", OP_ATTACHMENT_GET_ATTACHMENT },
219  { "group-alternatives", OP_ATTACHMENT_GROUP_ALTS },
220  { "group-multilingual", OP_ATTACHMENT_GROUP_LINGUAL },
221  { "group-related", OP_ATTACHMENT_GROUP_RELATED },
222  { "ispell", OP_COMPOSE_ISPELL },
223 #ifdef MIXMASTER
224  { "mix", OP_COMPOSE_MIX },
225 #endif
226  { "move-down", OP_ATTACHMENT_MOVE_DOWN },
227  { "move-up", OP_ATTACHMENT_MOVE_UP },
228  { "new-mime", OP_ATTACHMENT_NEW_MIME },
229  { "pgp-menu", OP_COMPOSE_PGP_MENU },
230  { "pipe-entry", OP_PIPE },
231  { "pipe-message", OP_PIPE },
232  { "postpone-message", OP_COMPOSE_POSTPONE_MESSAGE },
233  { "print-entry", OP_ATTACHMENT_PRINT },
234  { "rename-attachment", OP_ATTACHMENT_RENAME_ATTACHMENT },
235  { "rename-file", OP_COMPOSE_RENAME_FILE },
236  { "send-message", OP_COMPOSE_SEND_MESSAGE },
237  { "smime-menu", OP_COMPOSE_SMIME_MENU },
238  { "toggle-disposition", OP_ATTACHMENT_TOGGLE_DISPOSITION },
239  { "toggle-recode", OP_ATTACHMENT_TOGGLE_RECODE },
240  { "toggle-unlink", OP_ATTACHMENT_TOGGLE_UNLINK },
241  { "ungroup-attachment", OP_ATTACHMENT_UNGROUP },
242  { "update-encoding", OP_ATTACHMENT_UPDATE_ENCODING },
243  { "view-attach", OP_ATTACHMENT_VIEW },
244  { "view-mailcap", OP_ATTACHMENT_VIEW_MAILCAP },
245  { "view-pager", OP_ATTACHMENT_VIEW_PAGER },
246  { "view-text", OP_ATTACHMENT_VIEW_TEXT },
247  { "write-fcc", OP_COMPOSE_WRITE_MESSAGE },
248  { NULL, 0 },
249 };
250 
254 const struct MenuFuncOp OpEditor[] = { /* map: editor */
255  { "backspace", OP_EDITOR_BACKSPACE },
256  { "backward-char", OP_EDITOR_BACKWARD_CHAR },
257  { "backward-word", OP_EDITOR_BACKWARD_WORD },
258  { "bol", OP_EDITOR_BOL },
259  { "capitalize-word", OP_EDITOR_CAPITALIZE_WORD },
260  { "complete", OP_EDITOR_COMPLETE },
261  { "complete-query", OP_EDITOR_COMPLETE_QUERY },
262  { "delete-char", OP_EDITOR_DELETE_CHAR },
263  { "downcase-word", OP_EDITOR_DOWNCASE_WORD },
264  { "eol", OP_EDITOR_EOL },
265  { "exit", OP_EXIT },
266  { "forward-char", OP_EDITOR_FORWARD_CHAR },
267  { "forward-word", OP_EDITOR_FORWARD_WORD },
268  { "history-down", OP_EDITOR_HISTORY_DOWN },
269  { "history-search", OP_EDITOR_HISTORY_SEARCH },
270  { "history-up", OP_EDITOR_HISTORY_UP },
271  { "kill-eol", OP_EDITOR_KILL_EOL },
272  { "kill-eow", OP_EDITOR_KILL_EOW },
273  { "kill-line", OP_EDITOR_KILL_LINE },
274  { "kill-whole-line", OP_EDITOR_KILL_WHOLE_LINE },
275  { "kill-word", OP_EDITOR_KILL_WORD },
276  { "mailbox-cycle", OP_EDITOR_MAILBOX_CYCLE },
277  { "quote-char", OP_EDITOR_QUOTE_CHAR },
278  { "transpose-chars", OP_EDITOR_TRANSPOSE_CHARS },
279  { "upcase-word", OP_EDITOR_UPCASE_WORD },
280  // Deprecated
281  { "buffy-cycle", OP_EDITOR_MAILBOX_CYCLE },
282  { NULL, 0 },
283 };
284 
288 const struct MenuFuncOp OpGeneric[] = { /* map: generic */
289  /*
290  ** <para>
291  ** The <emphasis>generic</emphasis> menu is not a real menu, but specifies common functions
292  ** (such as movement) available in all menus except for <emphasis>pager</emphasis> and
293  ** <emphasis>editor</emphasis>. Changing settings for this menu will affect the default
294  ** bindings for all menus (except as noted).
295  ** </para>
296  */
297  { "bottom-page", OP_BOTTOM_PAGE },
298  { "check-stats", OP_CHECK_STATS },
299  { "current-bottom", OP_CURRENT_BOTTOM },
300  { "current-middle", OP_CURRENT_MIDDLE },
301  { "current-top", OP_CURRENT_TOP },
302  { "end-cond", OP_END_COND },
303  { "enter-command", OP_ENTER_COMMAND },
304  { "exit", OP_EXIT },
305  { "first-entry", OP_FIRST_ENTRY },
306  { "half-down", OP_HALF_DOWN },
307  { "half-up", OP_HALF_UP },
308  { "help", OP_HELP },
309  { "jump", OP_JUMP },
310  { "jump", OP_JUMP_1 },
311  { "jump", OP_JUMP_2 },
312  { "jump", OP_JUMP_3 },
313  { "jump", OP_JUMP_4 },
314  { "jump", OP_JUMP_5 },
315  { "jump", OP_JUMP_6 },
316  { "jump", OP_JUMP_7 },
317  { "jump", OP_JUMP_8 },
318  { "jump", OP_JUMP_9 },
319  { "last-entry", OP_LAST_ENTRY },
320  { "middle-page", OP_MIDDLE_PAGE },
321  { "next-entry", OP_NEXT_ENTRY },
322  { "next-line", OP_NEXT_LINE },
323  { "next-page", OP_NEXT_PAGE },
324  { "previous-entry", OP_PREV_ENTRY },
325  { "previous-line", OP_PREV_LINE },
326  { "previous-page", OP_PREV_PAGE },
327  { "redraw-screen", OP_REDRAW },
328  { "search", OP_SEARCH },
329  { "search-next", OP_SEARCH_NEXT },
330  { "search-opposite", OP_SEARCH_OPPOSITE },
331  { "search-reverse", OP_SEARCH_REVERSE },
332  { "select-entry", OP_GENERIC_SELECT_ENTRY },
333  { "shell-escape", OP_SHELL_ESCAPE },
334  { "show-log-messages", OP_SHOW_LOG_MESSAGES },
335  { "tag-entry", OP_TAG },
336  { "tag-prefix", OP_TAG_PREFIX },
337  { "tag-prefix-cond", OP_TAG_PREFIX_COND },
338  { "top-page", OP_TOP_PAGE },
339  { "what-key", OP_WHAT_KEY },
340  // Deprecated
341  { "error-history", OP_SHOW_LOG_MESSAGES },
342  { "refresh", OP_REDRAW },
343  { NULL, 0 },
344 };
345 
349 const struct MenuFuncOp OpIndex[] = { /* map: index */
350  { "alias-dialog", OP_ALIAS_DIALOG },
351 #ifdef USE_AUTOCRYPT
352  { "autocrypt-acct-menu", OP_AUTOCRYPT_ACCT_MENU },
353 #endif
354  { "bounce-message", OP_BOUNCE_MESSAGE },
355  { "break-thread", OP_MAIN_BREAK_THREAD },
356 #ifdef USE_NNTP
357  { "catchup", OP_CATCHUP },
358 #endif
359  { "change-folder", OP_MAIN_CHANGE_FOLDER },
360  { "change-folder-readonly", OP_MAIN_CHANGE_FOLDER_READONLY },
361 #ifdef USE_NNTP
362  { "change-newsgroup", OP_MAIN_CHANGE_GROUP },
363  { "change-newsgroup-readonly", OP_MAIN_CHANGE_GROUP_READONLY },
364 #endif
365 #ifdef USE_NOTMUCH
366  { "change-vfolder", OP_MAIN_CHANGE_VFOLDER },
367 #endif
368  { "check-traditional-pgp", OP_CHECK_TRADITIONAL },
369  { "clear-flag", OP_MAIN_CLEAR_FLAG },
370  { "collapse-all", OP_MAIN_COLLAPSE_ALL },
371  { "collapse-thread", OP_MAIN_COLLAPSE_THREAD },
372  { "compose-to-sender", OP_COMPOSE_TO_SENDER },
373  { "copy-message", OP_COPY_MESSAGE },
374  { "create-alias", OP_CREATE_ALIAS },
375  { "decode-copy", OP_DECODE_COPY },
376  { "decode-save", OP_DECODE_SAVE },
377  { "decrypt-copy", OP_DECRYPT_COPY },
378  { "decrypt-save", OP_DECRYPT_SAVE },
379  { "delete-message", OP_DELETE },
380  { "delete-pattern", OP_MAIN_DELETE_PATTERN },
381  { "delete-subthread", OP_DELETE_SUBTHREAD },
382  { "delete-thread", OP_DELETE_THREAD },
383  { "display-address", OP_DISPLAY_ADDRESS },
384  { "display-message", OP_DISPLAY_MESSAGE },
385  { "display-toggle-weed", OP_DISPLAY_HEADERS },
386  { "edit", OP_EDIT_RAW_MESSAGE },
387  { "edit-label", OP_EDIT_LABEL },
388  { "edit-or-view-raw-message", OP_EDIT_OR_VIEW_RAW_MESSAGE },
389  { "edit-raw-message", OP_EDIT_RAW_MESSAGE },
390  { "edit-type", OP_ATTACHMENT_EDIT_TYPE },
391 #ifdef USE_NOTMUCH
392  { "entire-thread", OP_MAIN_ENTIRE_THREAD },
393 #endif
394  { "exit", OP_EXIT },
395  { "extract-keys", OP_EXTRACT_KEYS },
396 #ifdef USE_POP
397  { "fetch-mail", OP_MAIN_FETCH_MAIL },
398 #endif
399  { "flag-message", OP_FLAG_MESSAGE },
400 #ifdef USE_NNTP
401  { "followup-message", OP_FOLLOWUP },
402 #endif
403  { "forget-passphrase", OP_FORGET_PASSPHRASE },
404  { "forward-message", OP_FORWARD_MESSAGE },
405 #ifdef USE_NNTP
406  { "forward-to-group", OP_FORWARD_TO_GROUP },
407  { "get-children", OP_GET_CHILDREN },
408  { "get-message", OP_GET_MESSAGE },
409  { "get-parent", OP_GET_PARENT },
410 #endif
411  { "group-chat-reply", OP_GROUP_CHAT_REPLY },
412  { "group-reply", OP_GROUP_REPLY },
413 #ifdef USE_IMAP
414  { "imap-fetch-mail", OP_MAIN_IMAP_FETCH },
415  { "imap-logout-all", OP_MAIN_IMAP_LOGOUT_ALL },
416 #endif
417  { "limit", OP_MAIN_LIMIT },
418  { "limit-current-thread", OP_LIMIT_CURRENT_THREAD },
419  { "link-threads", OP_MAIN_LINK_THREADS },
420  { "list-reply", OP_LIST_REPLY },
421  { "list-subscribe", OP_LIST_SUBSCRIBE },
422  { "list-unsubscribe", OP_LIST_UNSUBSCRIBE },
423  { "mail", OP_MAIL },
424  { "mail-key", OP_MAIL_KEY },
425  { "mailbox-list", OP_MAILBOX_LIST },
426  { "mark-message", OP_MARK_MSG },
427  { "modify-labels", OP_MAIN_MODIFY_TAGS },
428  { "modify-labels-then-hide", OP_MAIN_MODIFY_TAGS_THEN_HIDE },
429  { "modify-tags", OP_MAIN_MODIFY_TAGS },
430  { "modify-tags-then-hide", OP_MAIN_MODIFY_TAGS_THEN_HIDE },
431  { "next-new", OP_MAIN_NEXT_NEW },
432  { "next-new-then-unread", OP_MAIN_NEXT_NEW_THEN_UNREAD },
433  { "next-subthread", OP_MAIN_NEXT_SUBTHREAD },
434  { "next-thread", OP_MAIN_NEXT_THREAD },
435  { "next-undeleted", OP_MAIN_NEXT_UNDELETED },
436  { "next-unread", OP_MAIN_NEXT_UNREAD },
437  { "next-unread-mailbox", OP_MAIN_NEXT_UNREAD_MAILBOX },
438  { "parent-message", OP_MAIN_PARENT_MESSAGE },
439  { "pipe-entry", OP_PIPE },
440  { "pipe-message", OP_PIPE },
441 #ifdef USE_NNTP
442  { "post-message", OP_POST },
443 #endif
444  { "previous-new", OP_MAIN_PREV_NEW },
445  { "previous-new-then-unread", OP_MAIN_PREV_NEW_THEN_UNREAD },
446  { "previous-subthread", OP_MAIN_PREV_SUBTHREAD },
447  { "previous-thread", OP_MAIN_PREV_THREAD },
448  { "previous-undeleted", OP_MAIN_PREV_UNDELETED },
449  { "previous-unread", OP_MAIN_PREV_UNREAD },
450  { "print-message", OP_PRINT },
451  { "purge-message", OP_PURGE_MESSAGE },
452  { "purge-thread", OP_PURGE_THREAD },
453  { "quasi-delete", OP_MAIN_QUASI_DELETE },
454  { "query", OP_QUERY },
455  { "quit", OP_QUIT },
456  { "read-subthread", OP_MAIN_READ_SUBTHREAD },
457  { "read-thread", OP_MAIN_READ_THREAD },
458  { "recall-message", OP_RECALL_MESSAGE },
459 #ifdef USE_NNTP
460  { "reconstruct-thread", OP_RECONSTRUCT_THREAD },
461 #endif
462  { "reply", OP_REPLY },
463  { "resend-message", OP_RESEND },
464  { "root-message", OP_MAIN_ROOT_MESSAGE },
465  { "save-message", OP_SAVE },
466  { "set-flag", OP_MAIN_SET_FLAG },
467  { "show-limit", OP_MAIN_SHOW_LIMIT },
468  { "show-version", OP_VERSION },
469 #ifdef USE_SIDEBAR
470  { "sidebar-first", OP_SIDEBAR_FIRST },
471  { "sidebar-last", OP_SIDEBAR_LAST },
472  { "sidebar-next", OP_SIDEBAR_NEXT },
473  { "sidebar-next-new", OP_SIDEBAR_NEXT_NEW },
474  { "sidebar-open", OP_SIDEBAR_OPEN },
475  { "sidebar-page-down", OP_SIDEBAR_PAGE_DOWN },
476  { "sidebar-page-up", OP_SIDEBAR_PAGE_UP },
477  { "sidebar-prev", OP_SIDEBAR_PREV },
478  { "sidebar-prev-new", OP_SIDEBAR_PREV_NEW },
479  { "sidebar-toggle-virtual", OP_SIDEBAR_TOGGLE_VIRTUAL },
480  { "sidebar-toggle-visible", OP_SIDEBAR_TOGGLE_VISIBLE },
481 #endif
482  { "sort-mailbox", OP_SORT },
483  { "sort-reverse", OP_SORT_REVERSE },
484  { "sync-mailbox", OP_MAIN_SYNC_FOLDER },
485  { "tag-pattern", OP_MAIN_TAG_PATTERN },
486  { "tag-subthread", OP_TAG_SUBTHREAD },
487  { "tag-thread", OP_TAG_THREAD },
488  { "toggle-new", OP_TOGGLE_NEW },
489  { "toggle-read", OP_TOGGLE_READ },
490  { "toggle-write", OP_TOGGLE_WRITE },
491  { "undelete-message", OP_UNDELETE },
492  { "undelete-pattern", OP_MAIN_UNDELETE_PATTERN },
493  { "undelete-subthread", OP_UNDELETE_SUBTHREAD },
494  { "undelete-thread", OP_UNDELETE_THREAD },
495  { "untag-pattern", OP_MAIN_UNTAG_PATTERN },
496 #ifdef USE_NOTMUCH
497  { "vfolder-from-query", OP_MAIN_VFOLDER_FROM_QUERY },
498  { "vfolder-from-query-readonly", OP_MAIN_VFOLDER_FROM_QUERY_READONLY },
499  { "vfolder-window-backward", OP_MAIN_WINDOWED_VFOLDER_BACKWARD },
500  { "vfolder-window-forward", OP_MAIN_WINDOWED_VFOLDER_FORWARD },
501  { "vfolder-window-reset", OP_MAIN_WINDOWED_VFOLDER_RESET },
502 #endif
503  { "view-attachments", OP_VIEW_ATTACHMENTS },
504  { "view-raw-message", OP_VIEW_RAW_MESSAGE },
505  // Deprecated
506  { "buffy-list", OP_MAILBOX_LIST },
507  { NULL, 0 },
508 };
509 
510 #ifdef MIXMASTER
514 const struct MenuFuncOp OpMix[] = { /* map: mixmaster */
515  { "accept", OP_MIX_USE },
516  { "append", OP_MIX_APPEND },
517  { "chain-next", OP_MIX_CHAIN_NEXT },
518  { "chain-prev", OP_MIX_CHAIN_PREV },
519  { "delete", OP_MIX_DELETE },
520  { "exit", OP_EXIT },
521  { "insert", OP_MIX_INSERT },
522  { NULL, 0 },
523 };
524 #endif /* MIXMASTER */
525 
529 const struct MenuFuncOp OpPager[] = { /* map: pager */
530  { "bottom", OP_PAGER_BOTTOM },
531  { "bounce-message", OP_BOUNCE_MESSAGE },
532  { "break-thread", OP_MAIN_BREAK_THREAD },
533  { "change-folder", OP_MAIN_CHANGE_FOLDER },
534  { "change-folder-readonly", OP_MAIN_CHANGE_FOLDER_READONLY },
535 #ifdef USE_NNTP
536  { "change-newsgroup", OP_MAIN_CHANGE_GROUP },
537  { "change-newsgroup-readonly", OP_MAIN_CHANGE_GROUP_READONLY },
538 #endif
539 #ifdef USE_NOTMUCH
540  { "change-vfolder", OP_MAIN_CHANGE_VFOLDER },
541 #endif
542  { "check-stats", OP_CHECK_STATS },
543  { "check-traditional-pgp", OP_CHECK_TRADITIONAL },
544  { "clear-flag", OP_MAIN_CLEAR_FLAG },
545  { "compose-to-sender", OP_COMPOSE_TO_SENDER },
546  { "copy-message", OP_COPY_MESSAGE },
547  { "create-alias", OP_CREATE_ALIAS },
548  { "decode-copy", OP_DECODE_COPY },
549  { "decode-save", OP_DECODE_SAVE },
550  { "decrypt-copy", OP_DECRYPT_COPY },
551  { "decrypt-save", OP_DECRYPT_SAVE },
552  { "delete-message", OP_DELETE },
553  { "delete-subthread", OP_DELETE_SUBTHREAD },
554  { "delete-thread", OP_DELETE_THREAD },
555  { "display-address", OP_DISPLAY_ADDRESS },
556  { "display-toggle-weed", OP_DISPLAY_HEADERS },
557  { "edit", OP_EDIT_RAW_MESSAGE },
558  { "edit-label", OP_EDIT_LABEL },
559  { "edit-or-view-raw-message", OP_EDIT_OR_VIEW_RAW_MESSAGE },
560  { "edit-raw-message", OP_EDIT_RAW_MESSAGE },
561  { "edit-type", OP_ATTACHMENT_EDIT_TYPE },
562  { "enter-command", OP_ENTER_COMMAND },
563 #ifdef USE_NOTMUCH
564  { "entire-thread", OP_MAIN_ENTIRE_THREAD },
565 #endif
566  { "exit", OP_EXIT },
567  { "extract-keys", OP_EXTRACT_KEYS },
568  { "flag-message", OP_FLAG_MESSAGE },
569 #ifdef USE_NNTP
570  { "followup-message", OP_FOLLOWUP },
571 #endif
572  { "forget-passphrase", OP_FORGET_PASSPHRASE },
573  { "forward-message", OP_FORWARD_MESSAGE },
574 #ifdef USE_NNTP
575  { "forward-to-group", OP_FORWARD_TO_GROUP },
576 #endif
577  { "group-chat-reply", OP_GROUP_CHAT_REPLY },
578  { "group-reply", OP_GROUP_REPLY },
579  { "half-down", OP_HALF_DOWN },
580  { "half-up", OP_HALF_UP },
581  { "help", OP_HELP },
582 #ifdef USE_IMAP
583  { "imap-fetch-mail", OP_MAIN_IMAP_FETCH },
584  { "imap-logout-all", OP_MAIN_IMAP_LOGOUT_ALL },
585 #endif
586  { "jump", OP_JUMP },
587  { "jump", OP_JUMP_1 },
588  { "jump", OP_JUMP_2 },
589  { "jump", OP_JUMP_3 },
590  { "jump", OP_JUMP_4 },
591  { "jump", OP_JUMP_5 },
592  { "jump", OP_JUMP_6 },
593  { "jump", OP_JUMP_7 },
594  { "jump", OP_JUMP_8 },
595  { "jump", OP_JUMP_9 },
596  { "link-threads", OP_MAIN_LINK_THREADS },
597  { "list-reply", OP_LIST_REPLY },
598  { "list-subscribe", OP_LIST_SUBSCRIBE },
599  { "list-unsubscribe", OP_LIST_UNSUBSCRIBE },
600  { "mail", OP_MAIL },
601  { "mail-key", OP_MAIL_KEY },
602  { "mailbox-list", OP_MAILBOX_LIST },
603  { "mark-as-new", OP_TOGGLE_NEW },
604  { "modify-labels", OP_MAIN_MODIFY_TAGS },
605  { "modify-labels-then-hide", OP_MAIN_MODIFY_TAGS_THEN_HIDE },
606  { "modify-tags", OP_MAIN_MODIFY_TAGS },
607  { "modify-tags-then-hide", OP_MAIN_MODIFY_TAGS_THEN_HIDE },
608  { "next-entry", OP_NEXT_ENTRY },
609  { "next-line", OP_NEXT_LINE },
610  { "next-new", OP_MAIN_NEXT_NEW },
611  { "next-new-then-unread", OP_MAIN_NEXT_NEW_THEN_UNREAD },
612  { "next-page", OP_NEXT_PAGE },
613  { "next-subthread", OP_MAIN_NEXT_SUBTHREAD },
614  { "next-thread", OP_MAIN_NEXT_THREAD },
615  { "next-undeleted", OP_MAIN_NEXT_UNDELETED },
616  { "next-unread", OP_MAIN_NEXT_UNREAD },
617  { "next-unread-mailbox", OP_MAIN_NEXT_UNREAD_MAILBOX },
618  { "parent-message", OP_MAIN_PARENT_MESSAGE },
619  { "pipe-entry", OP_PIPE },
620  { "pipe-message", OP_PIPE },
621 #ifdef USE_NNTP
622  { "post-message", OP_POST },
623 #endif
624  { "previous-entry", OP_PREV_ENTRY },
625  { "previous-line", OP_PREV_LINE },
626  { "previous-new", OP_MAIN_PREV_NEW },
627  { "previous-new-then-unread", OP_MAIN_PREV_NEW_THEN_UNREAD },
628  { "previous-page", OP_PREV_PAGE },
629  { "previous-subthread", OP_MAIN_PREV_SUBTHREAD },
630  { "previous-thread", OP_MAIN_PREV_THREAD },
631  { "previous-undeleted", OP_MAIN_PREV_UNDELETED },
632  { "previous-unread", OP_MAIN_PREV_UNREAD },
633  { "print-entry", OP_ATTACHMENT_PRINT },
634  { "print-message", OP_PRINT },
635  { "purge-message", OP_PURGE_MESSAGE },
636  { "purge-thread", OP_PURGE_THREAD },
637  { "quasi-delete", OP_MAIN_QUASI_DELETE },
638  { "quit", OP_QUIT },
639  { "read-subthread", OP_MAIN_READ_SUBTHREAD },
640  { "read-thread", OP_MAIN_READ_THREAD },
641  { "recall-message", OP_RECALL_MESSAGE },
642 #ifdef USE_NNTP
643  { "reconstruct-thread", OP_RECONSTRUCT_THREAD },
644 #endif
645  { "redraw-screen", OP_REDRAW },
646  { "reply", OP_REPLY },
647  { "resend-message", OP_RESEND },
648  { "root-message", OP_MAIN_ROOT_MESSAGE },
649  { "save-entry", OP_ATTACHMENT_SAVE },
650  { "save-message", OP_SAVE },
651  { "search", OP_SEARCH },
652  { "search-next", OP_SEARCH_NEXT },
653  { "search-opposite", OP_SEARCH_OPPOSITE },
654  { "search-reverse", OP_SEARCH_REVERSE },
655  { "search-toggle", OP_SEARCH_TOGGLE },
656  { "set-flag", OP_MAIN_SET_FLAG },
657  { "shell-escape", OP_SHELL_ESCAPE },
658  { "show-log-messages", OP_SHOW_LOG_MESSAGES },
659  { "show-version", OP_VERSION },
660 #ifdef USE_SIDEBAR
661  { "sidebar-first", OP_SIDEBAR_FIRST },
662  { "sidebar-last", OP_SIDEBAR_LAST },
663  { "sidebar-next", OP_SIDEBAR_NEXT },
664  { "sidebar-next-new", OP_SIDEBAR_NEXT_NEW },
665  { "sidebar-open", OP_SIDEBAR_OPEN },
666  { "sidebar-page-down", OP_SIDEBAR_PAGE_DOWN },
667  { "sidebar-page-up", OP_SIDEBAR_PAGE_UP },
668  { "sidebar-prev", OP_SIDEBAR_PREV },
669  { "sidebar-prev-new", OP_SIDEBAR_PREV_NEW },
670  { "sidebar-toggle-virtual", OP_SIDEBAR_TOGGLE_VIRTUAL },
671  { "sidebar-toggle-visible", OP_SIDEBAR_TOGGLE_VISIBLE },
672 #endif
673  { "skip-headers", OP_PAGER_SKIP_HEADERS },
674  { "skip-quoted", OP_PAGER_SKIP_QUOTED },
675  { "sort-mailbox", OP_SORT },
676  { "sort-reverse", OP_SORT_REVERSE },
677  { "sync-mailbox", OP_MAIN_SYNC_FOLDER },
678  { "tag-message", OP_TAG },
679  { "toggle-quoted", OP_PAGER_HIDE_QUOTED },
680  { "toggle-write", OP_TOGGLE_WRITE },
681  { "top", OP_PAGER_TOP },
682  { "undelete-message", OP_UNDELETE },
683  { "undelete-subthread", OP_UNDELETE_SUBTHREAD },
684  { "undelete-thread", OP_UNDELETE_THREAD },
685 #ifdef USE_NOTMUCH
686  { "vfolder-from-query", OP_MAIN_VFOLDER_FROM_QUERY },
687  { "vfolder-from-query-readonly", OP_MAIN_VFOLDER_FROM_QUERY_READONLY },
688 #endif
689  { "view-attachments", OP_VIEW_ATTACHMENTS },
690  { "view-raw-message", OP_VIEW_RAW_MESSAGE },
691  { "what-key", OP_WHAT_KEY },
692  // Deprecated
693  { "buffy-list", OP_MAILBOX_LIST },
694  { "error-history", OP_SHOW_LOG_MESSAGES },
695  { NULL, 0 },
696 };
697 
701 const struct MenuFuncOp OpPgp[] = { /* map: pgp */
702  { "exit", OP_EXIT },
703  { "verify-key", OP_VERIFY_KEY },
704  { "view-name", OP_VIEW_ID },
705  { NULL, 0 },
706 };
707 
711 const struct MenuFuncOp OpPostpone[] = { /* map: postpone */
712  { "exit", OP_EXIT },
713  { "delete-entry", OP_DELETE },
714  { "undelete-entry", OP_UNDELETE },
715  { NULL, 0 },
716 };
717 
721 const struct MenuFuncOp OpQuery[] = { /* map: query */
722  { "create-alias", OP_CREATE_ALIAS },
723  { "exit", OP_EXIT },
724  { "limit", OP_MAIN_LIMIT },
725  { "mail", OP_MAIL },
726  { "query", OP_QUERY },
727  { "query-append", OP_QUERY_APPEND },
728  { "sort", OP_SORT },
729  { "sort-reverse", OP_SORT_REVERSE },
730  { NULL, 0 },
731 };
732 
736 const struct MenuFuncOp OpSmime[] = { /* map: smime */
737  { "exit", OP_EXIT },
738 #ifdef CRYPT_BACKEND_GPGME
739  { "verify-key", OP_VERIFY_KEY },
740  { "view-name", OP_VIEW_ID },
741 #endif
742  { NULL, 0 },
743 };
744 
748 const struct MenuOpSeq AliasDefaultBindings[] = { /* map: alias */
749  { OP_DELETE, "d" },
750  { OP_EXIT, "q" },
751  { OP_MAIL, "m" },
752  { OP_MAIN_LIMIT, "l" },
753  { OP_SORT, "o" },
754  { OP_SORT_REVERSE, "O" },
755  { OP_TAG, "<space>" },
756  { OP_UNDELETE, "u" },
757  { 0, NULL },
758 };
759 
763 const struct MenuOpSeq AttachDefaultBindings[] = { /* map: attachment */
764  { OP_ATTACHMENT_COLLAPSE, "v" },
765  { OP_ATTACHMENT_DELETE, "d" },
766  { OP_ATTACHMENT_EDIT_TYPE, "\005" }, // <Ctrl-E>
767  { OP_EXIT, "q" },
768  { OP_PIPE, "|" },
769  { OP_ATTACHMENT_PRINT, "p" },
770  { OP_ATTACHMENT_SAVE, "s" },
771  { OP_ATTACHMENT_UNDELETE, "u" },
772  { OP_ATTACHMENT_VIEW, "<keypadenter>" },
773  { OP_ATTACHMENT_VIEW, "\n" }, // <Enter>
774  { OP_ATTACHMENT_VIEW, "\r" }, // <Return>
775  { OP_ATTACHMENT_VIEW_MAILCAP, "m" },
776  { OP_ATTACHMENT_VIEW_TEXT, "T" },
777  { OP_BOUNCE_MESSAGE, "b" },
778  { OP_CHECK_TRADITIONAL, "\033P" }, // <Alt-P>
779  { OP_DISPLAY_HEADERS, "h" },
780  { OP_EXTRACT_KEYS, "\013" }, // <Ctrl-K>
781  { OP_FORGET_PASSPHRASE, "\006" }, // <Ctrl-F>
782  { OP_FORWARD_MESSAGE, "f" },
783  { OP_GROUP_REPLY, "g" },
784  { OP_LIST_REPLY, "L" },
785  { OP_REPLY, "r" },
786  { OP_RESEND, "\033e" }, // <Alt-e>
787  { 0, NULL },
788 };
789 
790 #ifdef USE_AUTOCRYPT
794 const struct MenuOpSeq AutocryptAcctDefaultBindings[] = { /* map: autocrypt account */
795  { OP_AUTOCRYPT_CREATE_ACCT, "c" },
796  { OP_AUTOCRYPT_DELETE_ACCT, "D" },
797  { OP_AUTOCRYPT_TOGGLE_ACTIVE, "a" },
798  { OP_AUTOCRYPT_TOGGLE_PREFER, "p" },
799  { OP_EXIT, "q" },
800  { 0, NULL }
801 };
802 #endif
803 
807 const struct MenuOpSeq BrowserDefaultBindings[] = { /* map: browser */
808  { OP_BROWSER_GOTO_FOLDER, "=" },
809  { OP_BROWSER_NEW_FILE, "N" },
810 #if defined(USE_IMAP) || defined(USE_NNTP)
811  { OP_BROWSER_SUBSCRIBE, "s" },
812 #endif
813  { OP_BROWSER_TELL, "@" },
814 #ifdef USE_IMAP
815  { OP_BROWSER_TOGGLE_LSUB, "T" },
816 #endif
817 #if defined(USE_IMAP) || defined(USE_NNTP)
818  { OP_BROWSER_UNSUBSCRIBE, "u" },
819 #endif
820  { OP_BROWSER_VIEW_FILE, " " }, // <Space>
821  { OP_CHANGE_DIRECTORY, "c" },
822 #ifdef USE_IMAP
823  { OP_CREATE_MAILBOX, "C" },
824  { OP_DELETE_MAILBOX, "d" },
825 #endif
826  { OP_ENTER_MASK, "m" },
827  { OP_EXIT, "q" },
828  { OP_GOTO_PARENT, "p" },
829 #ifdef USE_NNTP
830 #endif
831  { OP_MAILBOX_LIST, "." },
832 #ifdef USE_IMAP
833  { OP_RENAME_MAILBOX, "r" },
834 #endif
835  { OP_SORT, "o" },
836  { OP_SORT_REVERSE, "O" },
837  { OP_TOGGLE_MAILBOXES, "\t" }, // <Tab>
838  { 0, NULL },
839 };
840 
844 const struct MenuOpSeq ComposeDefaultBindings[] = { /* map: compose */
845  { OP_ATTACHMENT_ATTACH_FILE, "a" },
846  { OP_ATTACHMENT_ATTACH_KEY, "\033k" }, // <Alt-k>
847  { OP_ATTACHMENT_ATTACH_MESSAGE, "A" },
848  { OP_ATTACHMENT_DETACH, "D" },
849  { OP_ATTACHMENT_EDIT_CONTENT_ID, "\033i" }, // <Alt-i>
850  { OP_ATTACHMENT_EDIT_DESCRIPTION, "d" },
851  { OP_ATTACHMENT_EDIT_ENCODING, "\005" }, // <Ctrl-E>
852  { OP_ATTACHMENT_EDIT_LANGUAGE, "\014" }, // <Ctrl-L>
853  { OP_ATTACHMENT_EDIT_MIME, "m" },
854  { OP_ATTACHMENT_EDIT_TYPE, "\024" }, // <Ctrl-T>
855  { OP_ATTACHMENT_FILTER, "F" },
856  { OP_ATTACHMENT_GET_ATTACHMENT, "G" },
857  { OP_ATTACHMENT_GROUP_ALTS, "&" },
858  { OP_ATTACHMENT_GROUP_LINGUAL, "^" },
859  { OP_ATTACHMENT_GROUP_RELATED, "%" },
860  { OP_ATTACHMENT_MOVE_DOWN, "+" },
861  { OP_ATTACHMENT_MOVE_UP, "-" },
862  { OP_ATTACHMENT_NEW_MIME, "n" },
863  { OP_EXIT, "q" },
864  { OP_PIPE, "|" },
865  { OP_ATTACHMENT_PRINT, "l" },
866  { OP_ATTACHMENT_RENAME_ATTACHMENT, "\017" }, // <Ctrl-O>
867  { OP_ATTACHMENT_SAVE, "C" },
868  { OP_ATTACHMENT_TOGGLE_DISPOSITION, "\004" }, // <Ctrl-D>
869  { OP_ATTACHMENT_TOGGLE_UNLINK, "u" },
870  { OP_ATTACHMENT_UNGROUP, "#" },
871  { OP_ATTACHMENT_UPDATE_ENCODING, "U" },
872  { OP_ATTACHMENT_VIEW, "<keypadenter>" },
873  { OP_ATTACHMENT_VIEW, "\n" }, // <Enter>
874  { OP_ATTACHMENT_VIEW, "\r" }, // <Return>
875 #ifdef USE_AUTOCRYPT
876  { OP_COMPOSE_AUTOCRYPT_MENU, "o" },
877 #endif
878  { OP_COMPOSE_EDIT_FILE, "\033e" }, // <Alt-e>
879  { OP_COMPOSE_EDIT_MESSAGE, "e" },
880  { OP_COMPOSE_ISPELL, "i" },
881 #ifdef MIXMASTER
882  { OP_COMPOSE_MIX, "M" },
883 #endif
884  { OP_COMPOSE_PGP_MENU, "p" },
885  { OP_COMPOSE_POSTPONE_MESSAGE, "P" },
886  { OP_COMPOSE_RENAME_FILE, "R" },
887  { OP_COMPOSE_SEND_MESSAGE, "y" },
888  { OP_COMPOSE_SMIME_MENU, "S" },
889  { OP_COMPOSE_WRITE_MESSAGE, "w" },
890  { OP_DISPLAY_HEADERS, "h" },
891  { OP_ENVELOPE_EDIT_BCC, "b" },
892  { OP_ENVELOPE_EDIT_CC, "c" },
893  { OP_ENVELOPE_EDIT_FCC, "f" },
894  { OP_ENVELOPE_EDIT_FROM, "\033f" }, // <Alt-f>
895  { OP_ENVELOPE_EDIT_HEADERS, "E" },
896  { OP_ENVELOPE_EDIT_REPLY_TO, "r" },
897  { OP_ENVELOPE_EDIT_SUBJECT, "s" },
898  { OP_ENVELOPE_EDIT_TO, "t" },
899  { OP_FORGET_PASSPHRASE, "\006" }, // <Ctrl-F>
900  { OP_TAG, "T" },
901  { 0, NULL },
902 };
903 
907 const struct MenuOpSeq EditorDefaultBindings[] = { /* map: editor */
908  { OP_EDITOR_BACKSPACE, "<backspace>" },
909  { OP_EDITOR_BACKSPACE, "\010" }, // <Ctrl-H>
910  { OP_EDITOR_BACKSPACE, "\177" }, // <Backspace>
911  { OP_EDITOR_BACKWARD_CHAR, "<left>" },
912  { OP_EDITOR_BACKWARD_CHAR, "\002" }, // <Ctrl-B>
913  { OP_EDITOR_BACKWARD_WORD, "\033b" }, // <Alt-b>
914  { OP_EDITOR_BOL, "<home>" },
915  { OP_EDITOR_BOL, "\001" }, // <Ctrl-A>
916  { OP_EDITOR_CAPITALIZE_WORD, "\033c" }, // <Alt-c>
917  { OP_EDITOR_COMPLETE, "\t" }, // <Tab>
918  { OP_EDITOR_COMPLETE_QUERY, "\024" }, // <Ctrl-T>
919  { OP_EDITOR_DELETE_CHAR, "<delete>" },
920  { OP_EDITOR_DELETE_CHAR, "\004" }, // <Ctrl-D>
921  { OP_EDITOR_DOWNCASE_WORD, "\033l" }, // <Alt-l>
922  { OP_EDITOR_EOL, "<end>" },
923  { OP_EDITOR_EOL, "\005" }, // <Ctrl-E>
924  { OP_EDITOR_FORWARD_CHAR, "<right>" },
925  { OP_EDITOR_FORWARD_CHAR, "\006" }, // <Ctrl-F>
926  { OP_EDITOR_FORWARD_WORD, "\033f" }, // <Alt-f>
927  { OP_EDITOR_HISTORY_DOWN, "<down>" },
928  { OP_EDITOR_HISTORY_DOWN, "\016" }, // <Ctrl-N>
929  { OP_EDITOR_HISTORY_SEARCH, "\022" }, // <Ctrl-R>
930  { OP_EDITOR_HISTORY_UP, "<up>" },
931  { OP_EDITOR_HISTORY_UP, "\020" }, // <Ctrl-P>
932  { OP_EDITOR_KILL_EOL, "\013" }, // <Ctrl-K>
933  { OP_EDITOR_KILL_EOW, "\033d" }, // <Alt-d>
934  { OP_EDITOR_KILL_LINE, "\025" }, // <Ctrl-U>
935  { OP_EDITOR_KILL_WORD, "\027" }, // <Ctrl-W>
936  { OP_EDITOR_MAILBOX_CYCLE, " " }, // <Space>
937  { OP_EDITOR_QUOTE_CHAR, "\026" }, // <Ctrl-V>
938  { OP_EDITOR_UPCASE_WORD, "\033u" }, // <Alt-u>
939  { 0, NULL },
940 };
941 
945 const struct MenuOpSeq GenericDefaultBindings[] = { /* map: generic */
946  { OP_BOTTOM_PAGE, "L" },
947  { OP_ENTER_COMMAND, ":" },
948  { OP_FIRST_ENTRY, "<home>" },
949  { OP_FIRST_ENTRY, "=" },
950  { OP_GENERIC_SELECT_ENTRY, "<keypadenter>" },
951  { OP_GENERIC_SELECT_ENTRY, "\n" }, // <Enter>
952  { OP_GENERIC_SELECT_ENTRY, "\r" }, // <Return>
953  { OP_HALF_DOWN, "]" },
954  { OP_HALF_UP, "[" },
955  { OP_HELP, "?" },
956  { OP_JUMP_1, "1" },
957  { OP_JUMP_2, "2" },
958  { OP_JUMP_3, "3" },
959  { OP_JUMP_4, "4" },
960  { OP_JUMP_5, "5" },
961  { OP_JUMP_6, "6" },
962  { OP_JUMP_7, "7" },
963  { OP_JUMP_8, "8" },
964  { OP_JUMP_9, "9" },
965  { OP_LAST_ENTRY, "*" },
966  { OP_LAST_ENTRY, "<end>" },
967  { OP_MIDDLE_PAGE, "M" },
968  { OP_NEXT_ENTRY, "<down>" },
969  { OP_NEXT_ENTRY, "j" },
970  { OP_NEXT_LINE, ">" },
971  { OP_NEXT_PAGE, "<pagedown>" },
972  { OP_NEXT_PAGE, "<right>" },
973  { OP_NEXT_PAGE, "z" },
974  { OP_PREV_ENTRY, "<up>" },
975  { OP_PREV_ENTRY, "k" },
976  { OP_PREV_LINE, "<" },
977  { OP_PREV_PAGE, "<left>" },
978  { OP_PREV_PAGE, "<pageup>" },
979  { OP_PREV_PAGE, "Z" },
980  { OP_REDRAW, "\014" }, // <Ctrl-L>
981  { OP_SEARCH, "/" },
982  { OP_SEARCH_NEXT, "n" },
983  { OP_SEARCH_REVERSE, "\033/" }, // <Alt-/>
984  { OP_SHELL_ESCAPE, "!" },
985  { OP_TAG, "t" },
986  { OP_TAG_PREFIX, ";" },
987  { OP_TOP_PAGE, "H" },
988  { 0, NULL },
989 };
990 
994 const struct MenuOpSeq IndexDefaultBindings[] = { /* map: index */
995  { OP_ATTACHMENT_EDIT_TYPE, "\005" }, // <Ctrl-E>
996 #ifdef USE_AUTOCRYPT
997  { OP_AUTOCRYPT_ACCT_MENU, "A" },
998 #endif
999  { OP_BOUNCE_MESSAGE, "b" },
1000  { OP_CHECK_TRADITIONAL, "\033P" }, // <Alt-P>
1001  { OP_COPY_MESSAGE, "C" },
1002  { OP_CREATE_ALIAS, "a" },
1003  { OP_DECODE_COPY, "\033C" }, // <Alt-C>
1004  { OP_DECODE_SAVE, "\033s" }, // <Alt-s>
1005  { OP_DELETE, "d" },
1006  { OP_DELETE_SUBTHREAD, "\033d" }, // <Alt-d>
1007  { OP_DELETE_THREAD, "\004" }, // <Ctrl-D>
1008  { OP_DISPLAY_ADDRESS, "@" },
1009  { OP_DISPLAY_HEADERS, "h" },
1010  { OP_DISPLAY_MESSAGE, " " }, // <Space>
1011  { OP_DISPLAY_MESSAGE, "<keypadenter>" },
1012  { OP_DISPLAY_MESSAGE, "\n" }, // <Enter>
1013  { OP_DISPLAY_MESSAGE, "\r" }, // <Return>
1014  { OP_EDIT_LABEL, "Y" },
1015  { OP_EDIT_OR_VIEW_RAW_MESSAGE, "e" },
1016  { OP_EXIT, "x" },
1017  { OP_EXTRACT_KEYS, "\013" }, // <Ctrl-K>
1018  { OP_FLAG_MESSAGE, "F" },
1019  { OP_FORGET_PASSPHRASE, "\006" }, // <Ctrl-F>
1020  { OP_FORWARD_MESSAGE, "f" },
1021  { OP_GROUP_REPLY, "g" },
1022  { OP_LIST_REPLY, "L" },
1023  { OP_MAIL, "m" },
1024  { OP_MAILBOX_LIST, "." },
1025  { OP_MAIL_KEY, "\033k" }, // <Alt-k>
1026  { OP_MAIN_BREAK_THREAD, "#" },
1027  { OP_MAIN_CHANGE_FOLDER, "c" },
1028  { OP_MAIN_CHANGE_FOLDER_READONLY, "\033c" }, // <Alt-c>
1029 #ifdef USE_NNTP
1030  { OP_MAIN_CHANGE_GROUP, "i" },
1031  { OP_MAIN_CHANGE_GROUP_READONLY, "\033i" }, // <Alt-i>
1032 #endif
1033  { OP_MAIN_CLEAR_FLAG, "W" },
1034  { OP_MAIN_COLLAPSE_ALL, "\033V" }, // <Alt-V>
1035  { OP_MAIN_COLLAPSE_THREAD, "\033v" }, // <Alt-v>
1036  { OP_MAIN_DELETE_PATTERN, "D" },
1037 #ifdef USE_POP
1038  { OP_MAIN_FETCH_MAIL, "G" },
1039 #endif
1040  { OP_MAIN_LIMIT, "l" },
1041  { OP_MAIN_LINK_THREADS, "&" },
1042  { OP_MAIN_NEXT_NEW_THEN_UNREAD, "\t" }, // <Tab>
1043  { OP_MAIN_NEXT_SUBTHREAD, "\033n" }, // <Alt-n>
1044  { OP_MAIN_NEXT_THREAD, "\016" }, // <Ctrl-N>
1045  { OP_MAIN_NEXT_UNDELETED, "<down>" },
1046  { OP_MAIN_NEXT_UNDELETED, "j" },
1047  { OP_MAIN_PARENT_MESSAGE, "P" },
1048  { OP_MAIN_PREV_NEW_THEN_UNREAD, "\033\t" }, // <Alt->
1049  { OP_MAIN_PREV_SUBTHREAD, "\033p" }, // <Alt-p>
1050  { OP_MAIN_PREV_THREAD, "\020" }, // <Ctrl-P>
1051  { OP_MAIN_PREV_UNDELETED, "<up>" },
1052  { OP_MAIN_PREV_UNDELETED, "k" },
1053  { OP_MAIN_READ_SUBTHREAD, "\033r" }, // <Alt-r>
1054  { OP_MAIN_READ_THREAD, "\022" }, // <Ctrl-R>
1055  { OP_MAIN_SET_FLAG, "w" },
1056  { OP_MAIN_SHOW_LIMIT, "\033l" }, // <Alt-l>
1057  { OP_MAIN_SYNC_FOLDER, "$" },
1058  { OP_MAIN_TAG_PATTERN, "T" },
1059  { OP_MAIN_UNDELETE_PATTERN, "U" },
1060  { OP_MAIN_UNTAG_PATTERN, "\024" }, // <Ctrl-T>
1061  { OP_MARK_MSG, "~" },
1062  { OP_NEXT_ENTRY, "J" },
1063  { OP_PIPE, "|" },
1064  { OP_PREV_ENTRY, "K" },
1065  { OP_PRINT, "p" },
1066  { OP_QUERY, "Q" },
1067  { OP_QUIT, "q" },
1068  { OP_RECALL_MESSAGE, "R" },
1069  { OP_REPLY, "r" },
1070  { OP_RESEND, "\033e" }, // <Alt-e>
1071  { OP_SAVE, "s" },
1072  { OP_SHOW_LOG_MESSAGES, "M" },
1073  { OP_SORT, "o" },
1074  { OP_SORT_REVERSE, "O" },
1075  { OP_TAG_THREAD, "\033t" }, // <Alt-t>
1076  { OP_TOGGLE_NEW, "N" },
1077  { OP_TOGGLE_WRITE, "%" },
1078  { OP_UNDELETE, "u" },
1079  { OP_UNDELETE_SUBTHREAD, "\033u" }, // <Alt-u>
1080  { OP_UNDELETE_THREAD, "\025" }, // <Ctrl-U>
1081  { OP_VERSION, "V" },
1082  { OP_VIEW_ATTACHMENTS, "v" },
1083  { 0, NULL },
1084 };
1085 
1086 #ifdef MIXMASTER
1090 const struct MenuOpSeq MixDefaultBindings[] = { /* map: mixmaster */
1091  { OP_EXIT, "q" },
1092  { OP_GENERIC_SELECT_ENTRY, "<space>" },
1093  { OP_MIX_APPEND, "a" },
1094  { OP_MIX_CHAIN_NEXT, "<right>" },
1095  { OP_MIX_CHAIN_NEXT, "l" },
1096  { OP_MIX_CHAIN_PREV, "<left>" },
1097  { OP_MIX_CHAIN_PREV, "h" },
1098  { OP_MIX_DELETE, "d" },
1099  { OP_MIX_INSERT, "i" },
1100  { OP_MIX_USE, "<keypadenter>" },
1101  { OP_MIX_USE, "\n" }, // <Enter>
1102  { OP_MIX_USE, "\r" }, // <Return>
1103  { 0, NULL },
1104 };
1105 #endif /* MIXMASTER */
1106 
1110 const struct MenuOpSeq PagerDefaultBindings[] = { /* map: pager */
1111  { OP_ATTACHMENT_EDIT_TYPE, "\005" }, // <Ctrl-E>
1112  { OP_BOUNCE_MESSAGE, "b" },
1113  { OP_CHECK_TRADITIONAL, "\033P" }, // <Alt-P>
1114  { OP_COPY_MESSAGE, "C" },
1115  { OP_CREATE_ALIAS, "a" },
1116  { OP_DECODE_COPY, "\033C" }, // <Alt-C>
1117  { OP_DECODE_SAVE, "\033s" }, // <Alt-s>
1118  { OP_DELETE, "d" },
1119  { OP_DELETE_SUBTHREAD, "\033d" }, // <Alt-d>
1120  { OP_DELETE_THREAD, "\004" }, // <Ctrl-D>
1121  { OP_DISPLAY_ADDRESS, "@" },
1122  { OP_DISPLAY_HEADERS, "h" },
1123  { OP_EDIT_LABEL, "Y" },
1124  { OP_EDIT_OR_VIEW_RAW_MESSAGE, "e" },
1125  { OP_ENTER_COMMAND, ":" },
1126  { OP_EXIT, "i" },
1127  { OP_EXIT, "q" },
1128  { OP_EXIT, "x" },
1129  { OP_EXTRACT_KEYS, "\013" }, // <Ctrl-K>
1130  { OP_FLAG_MESSAGE, "F" },
1131  { OP_FORGET_PASSPHRASE, "\006" }, // <Ctrl-F>
1132  { OP_FORWARD_MESSAGE, "f" },
1133  { OP_GROUP_REPLY, "g" },
1134  { OP_HELP, "?" },
1135  { OP_JUMP_1, "1" },
1136  { OP_JUMP_2, "2" },
1137  { OP_JUMP_3, "3" },
1138  { OP_JUMP_4, "4" },
1139  { OP_JUMP_5, "5" },
1140  { OP_JUMP_6, "6" },
1141  { OP_JUMP_7, "7" },
1142  { OP_JUMP_8, "8" },
1143  { OP_JUMP_9, "9" },
1144  { OP_LIST_REPLY, "L" },
1145  { OP_MAIL, "m" },
1146  { OP_MAILBOX_LIST, "." },
1147  { OP_MAIL_KEY, "\033k" }, // <Alt-k>
1148  { OP_MAIN_BREAK_THREAD, "#" },
1149  { OP_MAIN_CHANGE_FOLDER, "c" },
1150  { OP_MAIN_CHANGE_FOLDER_READONLY, "\033c" }, // <Alt-c>
1151  { OP_MAIN_CLEAR_FLAG, "W" },
1152  { OP_MAIN_LINK_THREADS, "&" },
1153  { OP_MAIN_NEXT_NEW_THEN_UNREAD, "\t" }, // <Tab>
1154  { OP_MAIN_NEXT_SUBTHREAD, "\033n" }, // <Alt-n>
1155  { OP_MAIN_NEXT_THREAD, "\016" }, // <Ctrl-N>
1156  { OP_MAIN_NEXT_UNDELETED, "<down>" },
1157  { OP_MAIN_NEXT_UNDELETED, "<right>" },
1158  { OP_MAIN_NEXT_UNDELETED, "j" },
1159  { OP_MAIN_PARENT_MESSAGE, "P" },
1160  { OP_MAIN_PREV_SUBTHREAD, "\033p" }, // <Alt-p>
1161  { OP_MAIN_PREV_THREAD, "\020" }, // <Ctrl-P>
1162  { OP_MAIN_PREV_UNDELETED, "<left>" },
1163  { OP_MAIN_PREV_UNDELETED, "<up>" },
1164  { OP_MAIN_PREV_UNDELETED, "k" },
1165  { OP_MAIN_READ_SUBTHREAD, "\033r" }, // <Alt-r>
1166  { OP_MAIN_READ_THREAD, "\022" }, // <Ctrl-R>
1167  { OP_MAIN_SET_FLAG, "w" },
1168  { OP_MAIN_SYNC_FOLDER, "$" },
1169  { OP_NEXT_ENTRY, "J" },
1170  { OP_NEXT_LINE, "<keypadenter>" },
1171  { OP_NEXT_LINE, "\n" }, // <Enter>
1172  { OP_NEXT_LINE, "\r" }, // <Return>
1173  { OP_NEXT_PAGE, " " }, // <Space>
1174  { OP_NEXT_PAGE, "<pagedown>" },
1175  { OP_PAGER_BOTTOM, "<end>" },
1176  { OP_PAGER_HIDE_QUOTED, "T" },
1177  { OP_PAGER_SKIP_HEADERS, "H" },
1178  { OP_PAGER_SKIP_QUOTED, "S" },
1179  { OP_PAGER_TOP, "<home>" },
1180  { OP_PAGER_TOP, "^" },
1181  { OP_PIPE, "|" },
1182  { OP_PREV_ENTRY, "K" },
1183  { OP_PREV_LINE, "<backspace>" },
1184  { OP_PREV_PAGE, "-" },
1185  { OP_PREV_PAGE, "<pageup>" },
1186  { OP_PRINT, "p" },
1187  { OP_QUIT, "Q" },
1188  { OP_RECALL_MESSAGE, "R" },
1189  { OP_REDRAW, "\014" }, // <Ctrl-L>
1190  { OP_REPLY, "r" },
1191  { OP_RESEND, "\033e" }, // <Alt-e>
1192  { OP_SAVE, "s" },
1193  { OP_SEARCH, "/" },
1194  { OP_SEARCH_NEXT, "n" },
1195  { OP_SEARCH_REVERSE, "\033/" }, // <Alt-/>
1196  { OP_SEARCH_TOGGLE, "\\" }, // <Backslash>
1197  { OP_SHELL_ESCAPE, "!" },
1198  { OP_SORT, "o" },
1199  { OP_SORT_REVERSE, "O" },
1200  { OP_TAG, "t" },
1201  { OP_TOGGLE_NEW, "N" },
1202  { OP_TOGGLE_WRITE, "%" },
1203  { OP_UNDELETE, "u" },
1204  { OP_UNDELETE_SUBTHREAD, "\033u" }, // <Alt-u>
1205  { OP_UNDELETE_THREAD, "\025" }, // <Ctrl-U>
1206  { OP_VERSION, "V" },
1207  { OP_VIEW_ATTACHMENTS, "v" },
1208  { 0, NULL },
1209 };
1210 
1214 const struct MenuOpSeq PgpDefaultBindings[] = { /* map: pgp */
1215  { OP_EXIT, "q" },
1216  { OP_VERIFY_KEY, "c" },
1217  { OP_VIEW_ID, "%" },
1218  { 0, NULL },
1219 };
1220 
1224 const struct MenuOpSeq PostDefaultBindings[] = { /* map: postpone */
1225  { OP_DELETE, "d" },
1226  { OP_EXIT, "q" },
1227  { OP_UNDELETE, "u" },
1228  { 0, NULL },
1229 };
1230 
1234 const struct MenuOpSeq QueryDefaultBindings[] = { /* map: query */
1235  { OP_CREATE_ALIAS, "a" },
1236  { OP_EXIT, "q" },
1237  { OP_MAIL, "m" },
1238  { OP_MAIN_LIMIT, "l" },
1239  { OP_QUERY, "Q" },
1240  { OP_QUERY_APPEND, "A" },
1241  { OP_SORT, "o" },
1242  { OP_SORT_REVERSE, "O" },
1243  { 0, NULL },
1244 };
1245 
1249 const struct MenuOpSeq SmimeDefaultBindings[] = { /* map: smime */
1250  { OP_EXIT, "q" },
1251 #ifdef CRYPT_BACKEND_GPGME
1252  { OP_VERIFY_KEY, "c" },
1253  { OP_VIEW_ID, "%" },
1254 #endif
1255  { 0, NULL },
1256 };
1257 
1258 // clang-format on
const struct MenuFuncOp OpQuery[]
Functions for the external Query Menu.
Definition: functions.c:721
const struct MenuFuncOp OpMix[]
Functions for the Mixmaster Menu.
Definition: functions.c:514
const struct MenuFuncOp OpAttach[]
Functions for the Attachment Menu.
Definition: functions.c:69
const struct MenuOpSeq AutocryptAcctDefaultBindings[]
Key bindings for the Autocrypt Account.
Definition: functions.c:794
const struct MenuOpSeq PostDefaultBindings[]
Key bindings for the Postpone Menu.
Definition: functions.c:1224
const struct MenuFuncOp OpIndex[]
Functions for the Index Menu.
Definition: functions.c:349
const struct MenuOpSeq EditorDefaultBindings[]
Key bindings for the Editor Menu.
Definition: functions.c:907
const struct MenuFuncOp OpGeneric[]
Functions for the Generic Menu.
Definition: functions.c:288
const struct MenuFuncOp OpCompose[]
Functions for the Compose Menu.
Definition: functions.c:177
const struct MenuOpSeq QueryDefaultBindings[]
Key bindings for the external Query Menu.
Definition: functions.c:1234
const struct MenuOpSeq BrowserDefaultBindings[]
Key bindings for the file Browser Menu.
Definition: functions.c:807
const struct MenuFuncOp OpSmime[]
Functions for the Smime Menu.
Definition: functions.c:736
const struct MenuOpSeq AliasDefaultBindings[]
Key bindings for the Alias Menu.
Definition: functions.c:748
const struct MenuFuncOp OpBrowser[]
Functions for the file Browser Menu.
Definition: functions.c:123
const struct MenuFuncOp OpAutocrypt[]
Functions for the Autocrypt Account.
Definition: functions.c:110
const struct MenuOpSeq PagerDefaultBindings[]
Key bindings for the Pager Menu.
Definition: functions.c:1110
const struct MenuOpSeq GenericDefaultBindings[]
Key bindings for the Generic Menu.
Definition: functions.c:945
const struct MenuFuncOp OpPager[]
Functions for the Pager Menu.
Definition: functions.c:529
const struct MenuOpSeq AttachDefaultBindings[]
Key bindings for the Attachment Menu.
Definition: functions.c:763
const struct MenuFuncOp OpEditor[]
Functions for the Editor Menu.
Definition: functions.c:254
const struct MenuFuncOp OpPgp[]
Functions for the Pgp Menu.
Definition: functions.c:701
const struct MenuOpSeq IndexDefaultBindings[]
Key bindings for the Index Menu.
Definition: functions.c:994
const struct MenuOpSeq MixDefaultBindings[]
Key bindings for the Mixmaster Menu.
Definition: functions.c:1090
const struct MenuFuncOp OpPostpone[]
Functions for the Postpone Menu.
Definition: functions.c:711
const struct MenuOpSeq PgpDefaultBindings[]
Key bindings for the Pgp Menu.
Definition: functions.c:1214
const struct MenuOpSeq ComposeDefaultBindings[]
Key bindings for the Compose Menu.
Definition: functions.c:844
const struct MenuFuncOp OpAlias[]
Functions for the Alias Menu.
Definition: functions.c:55
const struct MenuOpSeq SmimeDefaultBindings[]
Key bindings for the Smime Menu.
Definition: functions.c:1249
Manage keymappings.
All user-callable functions.
Mapping between a function and an operation.
Definition: keymap.h:92
Mapping between an operation and a key sequence.
Definition: keymap.h:101