Andreas Krennmair:
[apps/madmutt.git] / functions.h
1 /*
2  * Copyright (C) 1996-2000 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., 59 Temple Place - Suite 330, Boston, MA  02111, 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 M_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  */
32
33 struct binding_t OpGeneric[] = {
34   {"top-page", OP_TOP_PAGE, "H"},
35   {"next-entry", OP_NEXT_ENTRY, "j"},
36   {"previous-entry", OP_PREV_ENTRY, "k"},
37   {"bottom-page", OP_BOTTOM_PAGE, "L"},
38   {"refresh", OP_REDRAW, "\014"},
39   {"middle-page", OP_MIDDLE_PAGE, "M"},
40   {"search-next", OP_SEARCH_NEXT, "n"},
41   {"exit", OP_EXIT, "q"},
42   {"tag-entry", OP_TAG, "t"},
43   {"next-page", OP_NEXT_PAGE, "z"},
44   {"previous-page", OP_PREV_PAGE, "Z"},
45   {"last-entry", OP_LAST_ENTRY, "*"},
46   {"first-entry", OP_FIRST_ENTRY, "="},
47   {"enter-command", OP_ENTER_COMMAND, ":"},
48   {"next-line", OP_NEXT_LINE, ">"},
49   {"previous-line", OP_PREV_LINE, "<"},
50   {"half-up", OP_HALF_UP, "["},
51   {"half-down", OP_HALF_DOWN, "]"},
52   {"help", OP_HELP, "?"},
53   {"tag-prefix", OP_TAG_PREFIX, ";"},
54   {"tag-prefix-cond", OP_TAG_PREFIX_COND, NULL},
55   {"end-cond", OP_END_COND, NULL},
56   {"shell-escape", OP_SHELL_ESCAPE, "!"},
57   {"select-entry", OP_GENERIC_SELECT_ENTRY, M_ENTER_S},
58   {"search", OP_SEARCH, "/"},
59   {"search-reverse", OP_SEARCH_REVERSE, "\033/"},
60   {"search-opposite", OP_SEARCH_OPPOSITE, NULL},
61   {"jump", OP_JUMP, NULL},
62   {"current-top", OP_CURRENT_TOP, NULL},
63   {"current-middle", OP_CURRENT_MIDDLE, NULL},
64   {"current-bottom", OP_CURRENT_BOTTOM, NULL},
65   {"what-key", OP_WHAT_KEY, NULL},
66   {NULL, 0, NULL}
67 };
68
69 struct binding_t OpMain[] = {
70   {"create-alias", OP_CREATE_ALIAS, "a"},
71   {"bounce-message", OP_BOUNCE_MESSAGE, "b"},
72   {"break-thread", OP_MAIN_BREAK_THREAD, "#"},
73   {"change-folder", OP_MAIN_CHANGE_FOLDER, "c"},
74   {"change-folder-readonly", OP_MAIN_CHANGE_FOLDER_READONLY, "\033c"},
75 #ifdef USE_NNTP
76   {"change-newsgroup", OP_MAIN_CHANGE_GROUP, "i"},
77   {"change-newsgroup-readonly", OP_MAIN_CHANGE_GROUP_READONLY, "\033i"},
78 #endif
79   {"collapse-thread", OP_MAIN_COLLAPSE_THREAD, "\033v"},
80   {"collapse-all", OP_MAIN_COLLAPSE_ALL, "\033V"},
81   {"copy-message", OP_COPY_MESSAGE, "C"},
82   {"decode-copy", OP_DECODE_COPY, "\033C"},
83   {"decode-save", OP_DECODE_SAVE, "\033s"},
84   {"delete-message", OP_DELETE, "d"},
85   {"delete-pattern", OP_MAIN_DELETE_PATTERN, "D"},
86   {"delete-thread", OP_DELETE_THREAD, "\004"},
87   {"delete-subthread", OP_DELETE_SUBTHREAD, "\033d"},
88   {"edit", OP_EDIT_MESSAGE, "e"},
89   {"edit-type", OP_EDIT_TYPE, "\005"},
90   {"forward-message", OP_FORWARD_MESSAGE, "f"},
91 #ifdef USE_NNTP
92   {"forward-to-group", OP_FORWARD_TO_GROUP, "\033F"},
93   {"followup-message", OP_FOLLOWUP, "F"},
94   {"get-children", OP_GET_CHILDREN, NULL},
95   {"get-message", OP_GET_MESSAGE, "\007"},
96   {"get-parent", OP_GET_PARENT, "\033G"},
97   {"reconstruct-thread", OP_RECONSTRUCT_THREAD, NULL},
98 #endif
99   {"flag-message", OP_FLAG_MESSAGE, "\033f"},
100   {"group-reply", OP_GROUP_REPLY, "g"},
101 #ifdef USE_POP
102   {"fetch-mail", OP_MAIN_FETCH_MAIL, "G"},
103 #endif
104 #ifdef USE_IMAP
105   {"imap-fetch-mail", OP_MAIN_IMAP_FETCH, NULL},
106 #endif
107   {"display-toggle-weed", OP_DISPLAY_HEADERS, "h"},
108   {"next-undeleted", OP_MAIN_NEXT_UNDELETED, "j"},
109   {"previous-undeleted", OP_MAIN_PREV_UNDELETED, "k"},
110   {"limit", OP_MAIN_LIMIT, "l"},
111   {"link-threads", OP_MAIN_LINK_THREADS, "&"},
112   {"list-reply", OP_LIST_REPLY, "L"},
113   {"mail", OP_MAIL, "m"},
114   {"toggle-new", OP_TOGGLE_NEW, "N"},
115   {"toggle-write", OP_TOGGLE_WRITE, "%"},
116   {"next-thread", OP_MAIN_NEXT_THREAD, "\016"},
117   {"next-subthread", OP_MAIN_NEXT_SUBTHREAD, "\033n"},
118   {"purge-message", OP_PURGE_MESSAGE, NULL},
119   {"query", OP_QUERY, "Q"},
120   {"quit", OP_QUIT, "q"},
121   {"reply", OP_REPLY, "r"},
122   {"show-limit", OP_MAIN_SHOW_LIMIT, "\033l"},
123   {"sort-mailbox", OP_SORT, "o"},
124   {"sort-reverse", OP_SORT_REVERSE, "O"},
125   {"print-message", OP_PRINT, "p"},
126 #ifdef USE_NNTP
127   {"post-message", OP_POST, "P"},
128 #endif
129   {"previous-thread", OP_MAIN_PREV_THREAD, "\020"},
130   {"previous-subthread", OP_MAIN_PREV_SUBTHREAD, "\033p"},
131   {"recall-message", OP_RECALL_MESSAGE, "R"},
132   {"read-thread", OP_MAIN_READ_THREAD, "\022"},
133   {"read-subthread", OP_MAIN_READ_SUBTHREAD, "\033r"},
134   {"resend-message", OP_RESEND, "\033e"},
135   {"save-message", OP_SAVE, "s"},
136   {"tag-pattern", OP_MAIN_TAG_PATTERN, "T"},
137   {"tag-subthread", OP_TAG_SUBTHREAD, NULL},
138   {"tag-thread", OP_TAG_THREAD, "\033t"},
139   {"untag-pattern", OP_MAIN_UNTAG_PATTERN, "\024"},
140   {"undelete-message", OP_UNDELETE, "u"},
141   {"undelete-pattern", OP_MAIN_UNDELETE_PATTERN, "U"},
142   {"undelete-subthread", OP_UNDELETE_SUBTHREAD, "\033u"},
143   {"undelete-thread", OP_UNDELETE_THREAD, "\025"},
144   {"view-attachments", OP_VIEW_ATTACHMENTS, "v"},
145   {"show-version", OP_VERSION, "V"},
146   {"set-flag", OP_MAIN_SET_FLAG, "w"},
147   {"clear-flag", OP_MAIN_CLEAR_FLAG, "W"},
148   {"toggle-read", OP_TOGGLE_READ, "X"},
149 #ifdef USE_NNTP
150   {"catchup", OP_CATCHUP, "y"},
151 #endif
152   {"display-message", OP_DISPLAY_MESSAGE, M_ENTER_S},
153   {"buffy-list", OP_BUFFY_LIST, "."},
154   {"sync-mailbox", OP_MAIN_SYNC_FOLDER, "$"},
155   {"display-address", OP_DISPLAY_ADDRESS, "@"},
156   {"pipe-message", OP_PIPE, "|"},
157   {"next-new", OP_MAIN_NEXT_NEW, NULL},
158   {"next-new-then-unread", OP_MAIN_NEXT_NEW_THEN_UNREAD, "\t"},
159   {"previous-new", OP_MAIN_PREV_NEW, NULL},
160   {"previous-new-then-unread", OP_MAIN_PREV_NEW_THEN_UNREAD, "\033\t"},
161   {"next-unread", OP_MAIN_NEXT_UNREAD, NULL},
162   {"previous-unread", OP_MAIN_PREV_UNREAD, NULL},
163   {"parent-message", OP_MAIN_PARENT_MESSAGE, NULL},
164
165
166   {"extract-keys", OP_EXTRACT_KEYS, "\013"},
167   {"forget-passphrase", OP_FORGET_PASSPHRASE, "\006"},
168   {"check-traditional-pgp", OP_CHECK_TRADITIONAL, "\033P"},
169   {"mail-key", OP_MAIL_KEY, "\033k"},
170   {"decrypt-copy", OP_DECRYPT_COPY, NULL},
171   {"decrypt-save", OP_DECRYPT_SAVE, NULL},
172
173
174   {"sidebar-scroll-up", OP_SIDEBAR_SCROLL_UP, NULL},
175   {"sidebar-scroll-down", OP_SIDEBAR_SCROLL_DOWN, NULL},
176   {"sidebar-next", OP_SIDEBAR_NEXT, NULL},
177   {"sidebar-prev", OP_SIDEBAR_PREV, NULL},
178   {"sidebar-next-new", OP_SIDEBAR_NEXT_NEW, NULL},
179   {"sidebar-prev-new", OP_SIDEBAR_PREV_NEW, NULL},
180   {"sidebar-open", OP_SIDEBAR_OPEN, NULL},
181   {NULL, 0, NULL}
182 };
183
184 struct binding_t OpPager[] = {
185   {"break-thread", OP_MAIN_BREAK_THREAD, "#"},
186   {"create-alias", OP_CREATE_ALIAS, "a"},
187   {"bounce-message", OP_BOUNCE_MESSAGE, "b"},
188   {"change-folder", OP_MAIN_CHANGE_FOLDER, "c"},
189   {"change-folder-readonly", OP_MAIN_CHANGE_FOLDER_READONLY, "\033c"},
190 #ifdef USE_NNTP
191   {"change-newsgroup", OP_MAIN_CHANGE_GROUP, "i"},
192   {"change-newsgroup-readonly", OP_MAIN_CHANGE_GROUP_READONLY, "\033i"},
193 #endif
194   {"copy-message", OP_COPY_MESSAGE, "C"},
195   {"decode-copy", OP_DECODE_COPY, "\033C"},
196   {"delete-message", OP_DELETE, "d"},
197   {"delete-thread", OP_DELETE_THREAD, "\004"},
198   {"delete-subthread", OP_DELETE_SUBTHREAD, "\033d"},
199   {"edit", OP_EDIT_MESSAGE, "e"},
200   {"edit-type", OP_EDIT_TYPE, "\005"},
201 #ifdef USE_NNTP
202   {"followup-message", OP_FOLLOWUP, "F"},
203   {"forward-to-group", OP_FORWARD_TO_GROUP, "\033F"},
204 #endif
205   {"forward-message", OP_FORWARD_MESSAGE, "f"},
206   {"flag-message", OP_FLAG_MESSAGE, "\033f"},
207   {"group-reply", OP_GROUP_REPLY, "g"},
208 #ifdef USE_IMAP
209   {"imap-fetch-mail", OP_MAIN_IMAP_FETCH, NULL},
210 #endif
211   {"display-toggle-weed", OP_DISPLAY_HEADERS, "h"},
212   {"next-undeleted", OP_MAIN_NEXT_UNDELETED, "j"},
213   {"next-entry", OP_NEXT_ENTRY, "J"},
214   {"previous-undeleted", OP_MAIN_PREV_UNDELETED, "k"},
215   {"previous-entry", OP_PREV_ENTRY, "K"},
216   {"link-threads", OP_MAIN_LINK_THREADS, "&"},
217   {"list-reply", OP_LIST_REPLY, "L"},
218   {"redraw-screen", OP_REDRAW, "\014"},
219   {"mail", OP_MAIL, "m"},
220   {"mark-as-new", OP_TOGGLE_NEW, "N"},
221   {"search-next", OP_SEARCH_NEXT, "n"},
222   {"next-thread", OP_MAIN_NEXT_THREAD, "\016"},
223   {"next-subthread", OP_MAIN_NEXT_SUBTHREAD, "\033n"},
224   {"print-message", OP_PRINT, "p"},
225 #ifdef USE_NNTP
226   {"post-message", OP_POST, "P"},
227 #endif
228   {"previous-thread", OP_MAIN_PREV_THREAD, "\020"},
229   {"previous-subthread", OP_MAIN_PREV_SUBTHREAD, "\033p"},
230   {"purge-message", OP_PURGE_MESSAGE, NULL},
231   {"quit", OP_QUIT, "Q"},
232   {"exit", OP_EXIT, "q"},
233   {"reply", OP_REPLY, "r"},
234   {"recall-message", OP_RECALL_MESSAGE, "R"},
235   {"read-thread", OP_MAIN_READ_THREAD, "\022"},
236   {"read-subthread", OP_MAIN_READ_SUBTHREAD, "\033r"},
237   {"resend-message", OP_RESEND, "\033e"},
238   {"save-message", OP_SAVE, "s"},
239   {"skip-quoted", OP_PAGER_SKIP_QUOTED, "S"},
240   {"decode-save", OP_DECODE_SAVE, "\033s"},
241   {"tag-message", OP_TAG, "t"},
242   {"toggle-quoted", OP_PAGER_HIDE_QUOTED, "T"},
243   {"undelete-message", OP_UNDELETE, "u"},
244   {"undelete-subthread", OP_UNDELETE_SUBTHREAD, "\033u"},
245   {"undelete-thread", OP_UNDELETE_THREAD, "\025"},
246   {"view-attachments", OP_VIEW_ATTACHMENTS, "v"},
247   {"show-version", OP_VERSION, "V"},
248   {"search-toggle", OP_SEARCH_TOGGLE, "\\"},
249   {"display-address", OP_DISPLAY_ADDRESS, "@"},
250   {"next-new", OP_MAIN_NEXT_NEW, NULL},
251   {"next-new-then-unread",
252    OP_MAIN_NEXT_NEW_THEN_UNREAD, "\t"},
253   {"pipe-message", OP_PIPE, "|"},
254   {"help", OP_HELP, "?"},
255   {"next-page", OP_NEXT_PAGE, " "},
256   {"previous-page", OP_PREV_PAGE, "-"},
257   {"top", OP_PAGER_TOP, "^"},
258   {"sync-mailbox", OP_MAIN_SYNC_FOLDER, "$"},
259   {"shell-escape", OP_SHELL_ESCAPE, "!"},
260   {"enter-command", OP_ENTER_COMMAND, ":"},
261   {"buffy-list", OP_BUFFY_LIST, "."},
262   {"search", OP_SEARCH, "/"},
263   {"search-reverse", OP_SEARCH_REVERSE, "\033/"},
264   {"search-opposite", OP_SEARCH_OPPOSITE, NULL},
265   {"next-line", OP_NEXT_LINE, M_ENTER_S},
266   {"jump", OP_JUMP, NULL},
267   {"next-unread", OP_MAIN_NEXT_UNREAD, NULL},
268   {"previous-new", OP_MAIN_PREV_NEW, NULL},
269   {"previous-new-then-unread",
270    OP_MAIN_PREV_NEW_THEN_UNREAD, NULL},
271   {"previous-unread", OP_MAIN_PREV_UNREAD, NULL},
272   {"half-up", OP_HALF_UP, NULL},
273   {"half-down", OP_HALF_DOWN, NULL},
274   {"previous-line", OP_PREV_LINE, NULL},
275   {"bottom", OP_PAGER_BOTTOM, NULL},
276   {"parent-message", OP_MAIN_PARENT_MESSAGE, NULL},
277
278
279
280
281   {"check-traditional-pgp", OP_CHECK_TRADITIONAL, "\033P"},
282   {"mail-key", OP_MAIL_KEY, "\033k"},
283   {"extract-keys", OP_EXTRACT_KEYS, "\013"},
284   {"forget-passphrase", OP_FORGET_PASSPHRASE, "\006"},
285   {"decrypt-copy", OP_DECRYPT_COPY, NULL},
286   {"decrypt-save", OP_DECRYPT_SAVE, NULL},
287
288
289   {"sidebar-scroll-up", OP_SIDEBAR_SCROLL_UP, NULL},
290   {"sidebar-scroll-down", OP_SIDEBAR_SCROLL_DOWN, NULL},
291   {"sidebar-next", OP_SIDEBAR_NEXT, NULL},
292   {"sidebar-prev", OP_SIDEBAR_PREV, NULL},
293   {"sidebar-next-new", OP_SIDEBAR_NEXT_NEW, NULL},
294   {"sidebar-prev-new", OP_SIDEBAR_PREV_NEW, NULL},
295   {"sidebar-open", OP_SIDEBAR_OPEN, NULL},
296   {NULL, 0, NULL}
297 };
298
299 struct binding_t OpAttach[] = {
300   {"bounce-message", OP_BOUNCE_MESSAGE, "b"},
301   {"display-toggle-weed", OP_DISPLAY_HEADERS, "h"},
302   {"edit-type", OP_EDIT_TYPE, "\005"},
303 #ifdef USE_NNTP
304   {"followup-message", OP_FOLLOWUP, "F"},
305   {"forward-to-group", OP_FORWARD_TO_GROUP, "\033F"},
306 #endif
307   {"print-entry", OP_PRINT, "p"},
308   {"save-entry", OP_SAVE, "s"},
309   {"pipe-entry", OP_PIPE, "|"},
310   {"view-mailcap", OP_ATTACH_VIEW_MAILCAP, "m"},
311   {"reply", OP_REPLY, "r"},
312   {"resend-message", OP_RESEND, "\033e"},
313   {"group-reply", OP_GROUP_REPLY, "g"},
314   {"list-reply", OP_LIST_REPLY, "L"},
315   {"forward-message", OP_FORWARD_MESSAGE, "f"},
316   {"view-text", OP_ATTACH_VIEW_TEXT, "T"},
317   {"view-attach", OP_VIEW_ATTACH, M_ENTER_S},
318   {"delete-entry", OP_DELETE, "d"},
319   {"undelete-entry", OP_UNDELETE, "u"},
320   {"collapse-parts", OP_ATTACH_COLLAPSE, "v"},
321
322   {"check-traditional-pgp", OP_CHECK_TRADITIONAL, "\033P"},
323   {"extract-keys", OP_EXTRACT_KEYS, "\013"},
324   {"forget-passphrase", OP_FORGET_PASSPHRASE, "\006"},
325
326   {NULL, 0, NULL}
327 };
328
329 struct binding_t OpCompose[] = {
330   {"attach-file", OP_COMPOSE_ATTACH_FILE, "a"},
331   {"attach-message", OP_COMPOSE_ATTACH_MESSAGE, "A"},
332   {"attach-news-message", OP_COMPOSE_ATTACH_NEWS_MESSAGE, "\033a"},
333   {"edit-bcc", OP_COMPOSE_EDIT_BCC, "b"},
334   {"edit-cc", OP_COMPOSE_EDIT_CC, "c"},
335   {"copy-file", OP_SAVE, "C"},
336   {"detach-file", OP_DELETE, "D"},
337   {"toggle-disposition", OP_COMPOSE_TOGGLE_DISPOSITION, "\004"},
338   {"edit-description", OP_COMPOSE_EDIT_DESCRIPTION, "d"},
339   {"edit-message", OP_COMPOSE_EDIT_MESSAGE, "e"},
340   {"edit-headers", OP_COMPOSE_EDIT_HEADERS, "E"},
341   {"edit-file", OP_COMPOSE_EDIT_FILE, "\030e"},
342   {"edit-encoding", OP_COMPOSE_EDIT_ENCODING, "\005"},
343   {"edit-from", OP_COMPOSE_EDIT_FROM, "\033f"},
344   {"edit-fcc", OP_COMPOSE_EDIT_FCC, "f"},
345   {"filter-entry", OP_FILTER, "F"},
346   {"get-attachment", OP_COMPOSE_GET_ATTACHMENT, "G"},
347   {"display-toggle-weed", OP_DISPLAY_HEADERS, "h"},
348   {"ispell", OP_COMPOSE_ISPELL, "i"},
349   {"print-entry", OP_PRINT, "l"},
350   {"edit-mime", OP_COMPOSE_EDIT_MIME, "m"},
351   {"new-mime", OP_COMPOSE_NEW_MIME, "n"},
352 #ifdef USE_NNTP
353   {"edit-newsgroups", OP_COMPOSE_EDIT_NEWSGROUPS, "N"},
354   {"edit-followup-to", OP_COMPOSE_EDIT_FOLLOWUP_TO, "o"},
355   {"edit-x-comment-to", OP_COMPOSE_EDIT_X_COMMENT_TO, "x"},
356 #endif
357   {"postpone-message", OP_COMPOSE_POSTPONE_MESSAGE, "P"},
358   {"edit-reply-to", OP_COMPOSE_EDIT_REPLY_TO, "r"},
359   {"rename-file", OP_COMPOSE_RENAME_FILE, "R"},
360   {"edit-subject", OP_COMPOSE_EDIT_SUBJECT, "s"},
361   {"edit-to", OP_COMPOSE_EDIT_TO, "t"},
362   {"edit-type", OP_EDIT_TYPE, "\024"},
363   {"write-fcc", OP_COMPOSE_WRITE_MESSAGE, "w"},
364   {"toggle-unlink", OP_COMPOSE_TOGGLE_UNLINK, "u"},
365   {"toggle-recode", OP_COMPOSE_TOGGLE_RECODE, NULL},
366   {"update-encoding", OP_COMPOSE_UPDATE_ENCODING, "U"},
367   {"view-attach", OP_VIEW_ATTACH, M_ENTER_S},
368   {"send-message", OP_COMPOSE_SEND_MESSAGE, "y"},
369   {"pipe-entry", OP_PIPE, "|"},
370
371   {"attach-key", OP_COMPOSE_ATTACH_KEY, "\033k"},
372   {"pgp-menu", OP_COMPOSE_PGP_MENU, "p"},
373
374   {"forget-passphrase", OP_FORGET_PASSPHRASE, "\006"},
375
376   {"smime-menu", OP_COMPOSE_SMIME_MENU, "S"},
377
378 #ifdef MIXMASTER
379   {"mix", OP_COMPOSE_MIX, "M"},
380 #endif
381
382   {NULL, 0, NULL}
383 };
384
385 struct binding_t OpPost[] = {
386   {"delete-entry", OP_DELETE, "d"},
387   {"undelete-entry", OP_UNDELETE, "u"},
388   {NULL, 0, NULL}
389 };
390
391 struct binding_t OpAlias[] = {
392   {"delete-entry", OP_DELETE, "d"},
393   {"undelete-entry", OP_UNDELETE, "u"},
394   {NULL, 0, NULL}
395 };
396
397
398 /* The file browser */
399 struct binding_t OpBrowser[] = {
400   {"change-dir", OP_CHANGE_DIRECTORY, "c"},
401   {"display-filename", OP_BROWSER_TELL, "@"},
402   {"enter-mask", OP_ENTER_MASK, "m"},
403   {"sort", OP_SORT, "o"},
404   {"sort-reverse", OP_SORT_REVERSE, "O"},
405   {"select-new", OP_BROWSER_NEW_FILE, "N"},
406   {"check-new", OP_CHECK_NEW, NULL},
407   {"toggle-mailboxes", OP_TOGGLE_MAILBOXES, "\t"},
408 #ifdef USE_NNTP
409   {"reload-active", OP_LOAD_ACTIVE, "g"},
410   {"subscribe-pattern", OP_SUBSCRIBE_PATTERN, "S"},
411   {"unsubscribe-pattern", OP_UNSUBSCRIBE_PATTERN, "U"},
412   {"catchup", OP_CATCHUP, "y"},
413   {"uncatchup", OP_UNCATCHUP, "Y"},
414 #endif
415   {"view-file", OP_BROWSER_VIEW_FILE, " "},
416   {"buffy-list", OP_BUFFY_LIST, "."},
417 #ifdef USE_IMAP
418   {"create-mailbox", OP_CREATE_MAILBOX, "C"},
419   {"delete-mailbox", OP_DELETE_MAILBOX, "d"},
420   {"rename-mailbox", OP_RENAME_MAILBOX, "r"},
421 #endif
422 #if defined USE_IMAP || defined USE_NNTP
423   {"subscribe", OP_BROWSER_SUBSCRIBE, "s"},
424   {"unsubscribe", OP_BROWSER_UNSUBSCRIBE, "u"},
425 #endif
426 #ifdef USE_IMAP
427   {"toggle-subscribed", OP_BROWSER_TOGGLE_LSUB, "T"},
428 #endif
429   {NULL, 0, NULL}
430 };
431
432 /* External Query Menu */
433 struct binding_t OpQuery[] = {
434   {"create-alias", OP_CREATE_ALIAS, "a"},
435   {"mail", OP_MAIL, "m"},
436   {"query", OP_QUERY, "Q"},
437   {"query-append", OP_QUERY_APPEND, "A"},
438   {NULL, 0, NULL}
439 };
440
441 struct binding_t OpEditor[] = {
442   {"bol", OP_EDITOR_BOL, "\001"},
443   {"backward-char", OP_EDITOR_BACKWARD_CHAR, "\002"},
444   {"backward-word", OP_EDITOR_BACKWARD_WORD, "\033b"},
445   {"capitalize-word", OP_EDITOR_CAPITALIZE_WORD, "\033c"},
446   {"downcase-word", OP_EDITOR_DOWNCASE_WORD, "\033l"},
447   {"upcase-word", OP_EDITOR_UPCASE_WORD, "\033u"},
448   {"delete-char", OP_EDITOR_DELETE_CHAR, "\004"},
449   {"eol", OP_EDITOR_EOL, "\005"},
450   {"forward-char", OP_EDITOR_FORWARD_CHAR, "\006"},
451   {"forward-word", OP_EDITOR_FORWARD_WORD, "\033f"},
452   {"backspace", OP_EDITOR_BACKSPACE, "\010"},
453   {"kill-eol", OP_EDITOR_KILL_EOL, "\013"},
454   {"kill-eow", OP_EDITOR_KILL_EOW, "\033d"},
455   {"kill-line", OP_EDITOR_KILL_LINE, "\025"},
456   {"quote-char", OP_EDITOR_QUOTE_CHAR, "\026"},
457   {"kill-word", OP_EDITOR_KILL_WORD, "\027"},
458   {"complete", OP_EDITOR_COMPLETE, "\t"},
459   {"complete-query", OP_EDITOR_COMPLETE_QUERY, "\024"},
460   {"buffy-cycle", OP_EDITOR_BUFFY_CYCLE, " "},
461   {"history-up", OP_EDITOR_HISTORY_UP, NULL},
462   {"history-down", OP_EDITOR_HISTORY_DOWN, NULL},
463   {"transpose-chars", OP_EDITOR_TRANSPOSE_CHARS, NULL},
464   {NULL, 0, NULL}
465 };
466
467
468
469 struct binding_t OpPgp[] = {
470   {"verify-key", OP_VERIFY_KEY, "c"},
471   {"view-name", OP_VIEW_ID, "%"},
472   {NULL, 0, NULL}
473 };
474
475
476
477 /* When using the GPGME based backend we have some useful functions
478    for the SMIME menu.  */
479 struct binding_t OpSmime[] = {
480 #ifdef CRYPT_BACKEND_GPGME
481   {"verify-key", OP_VERIFY_KEY, "c"},
482   {"view-name", OP_VIEW_ID, "%"},
483 #endif
484   {NULL, 0, NULL}
485 };
486
487
488
489 #ifdef MIXMASTER
490 struct binding_t OpMix[] = {
491   {"accept", OP_MIX_USE, M_ENTER_S},
492   {"append", OP_MIX_APPEND, "a"},
493   {"insert", OP_MIX_INSERT, "i"},
494   {"delete", OP_MIX_DELETE, "d"},
495   {"chain-prev", OP_MIX_CHAIN_PREV, "<left>"},
496   {"chain-next", OP_MIX_CHAIN_NEXT, "<right>"},
497   {NULL, 0, NULL}
498 };
499 #endif /* MIXMASTER */