/*
* Copyright (C) 1996-2000,2002 Michael R. Elkins <me@mutt.org>
*
* 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; either version 2 of the License, or
* (at your option) any later version.
*
* 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.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
/*
* This file contains the structures needed to parse ``bind'' commands, as
* well as the default bindings for each menu.
*
* Notes:
*
* - For "enter" bindings, add entries for "\n" and "\r" and
* "<keypadenter>".
*
* - If you need to bind a control char, use the octal value because the \cX
* construct does not work at this level.
*
* - The magic "map:" comments define how the map will be called in the
* manual. Lines starting with "**" will be included in the manual.
*
*/
#ifdef _MAKEDOC
# include "config.h"
# include "doc/makedoc-defs.h"
#endif
const struct menu_func_op_t OpGeneric[] = { /* map: generic */
/*
** <para>
** The <emphasis>generic</emphasis> menu is not a real menu, but specifies common functions
** (such as movement) available in all menus except for <emphasis>pager</emphasis> and
** <emphasis>editor</emphasis>. Changing settings for this menu will affect the default
** bindings for all menus (except as noted).
** </para>
*/
{ "bottom-page", OP_BOTTOM_PAGE },
{ "check-stats", OP_CHECK_STATS },
{ "current-bottom", OP_CURRENT_BOTTOM },
{ "current-middle", OP_CURRENT_MIDDLE },
{ "current-top", OP_CURRENT_TOP },
{ "end-cond", OP_END_COND },
{ "enter-command", OP_ENTER_COMMAND },
{ "error-history", OP_ERROR_HISTORY },
{ "exit", OP_EXIT },
{ "first-entry", OP_FIRST_ENTRY },
{ "half-down", OP_HALF_DOWN },
{ "half-up", OP_HALF_UP },
{ "help", OP_HELP },
{ "jump", OP_JUMP },
{ "last-entry", OP_LAST_ENTRY },
{ "middle-page", OP_MIDDLE_PAGE },
{ "next-entry", OP_NEXT_ENTRY },
{ "next-line", OP_NEXT_LINE },
{ "next-page", OP_NEXT_PAGE },
{ "previous-entry", OP_PREV_ENTRY },
{ "previous-line", OP_PREV_LINE },
{ "previous-page", OP_PREV_PAGE },
{ "refresh", OP_REDRAW },
{ "search", OP_SEARCH },
{ "search-next", OP_SEARCH_NEXT },
{ "search-opposite", OP_SEARCH_OPPOSITE },
{ "search-reverse", OP_SEARCH_REVERSE },
{ "select-entry", OP_GENERIC_SELECT_ENTRY },
{ "shell-escape", OP_SHELL_ESCAPE },
{ "tag-entry", OP_TAG },
{ "tag-prefix", OP_TAG_PREFIX },
{ "tag-prefix-cond", OP_TAG_PREFIX_COND },
{ "top-page", OP_TOP_PAGE },
{ "what-key", OP_WHAT_KEY },
{ NULL, 0 }
};
const struct menu_op_seq_t GenericDefaultBindings[] = { /* map: generic */
{ OP_BOTTOM_PAGE, "L" },
{ OP_ENTER_COMMAND, ":" },
{ OP_EXIT, "q" },
{ OP_FIRST_ENTRY, "<home>" },
{ OP_FIRST_ENTRY, "=" },
{ OP_GENERIC_SELECT_ENTRY, "<keypadenter>" },
{ OP_GENERIC_SELECT_ENTRY, "\n" },
{ OP_GENERIC_SELECT_ENTRY, "\r" },
{ OP_HALF_DOWN, "]" },
{ OP_HALF_UP, "[" },
{ OP_HELP, "?" },
{ OP_JUMP, "1" },
{ OP_JUMP, "2" },
{ OP_JUMP, "3" },
{ OP_JUMP, "4" },
{ OP_JUMP, "5" },
{ OP_JUMP, "6" },
{ OP_JUMP, "7" },
{ OP_JUMP, "8" },
{ OP_JUMP, "9" },
{ OP_LAST_ENTRY, "*" },
{ OP_LAST_ENTRY, "<end>" },
{ OP_MIDDLE_PAGE, "M" },
{ OP_NEXT_ENTRY, "<down>" },
{ OP_NEXT_ENTRY, "j" },
{ OP_NEXT_LINE, ">" },
{ OP_NEXT_PAGE, "<pagedown>" },
{ OP_NEXT_PAGE, "<right>" },
{ OP_NEXT_PAGE, "z" },
{ OP_PREV_ENTRY, "<up>" },
{ OP_PREV_ENTRY, "k" },
{ OP_PREV_LINE, "<" },
{ OP_PREV_PAGE, "<left>" },
{ OP_PREV_PAGE, "<pageup>" },
{ OP_PREV_PAGE, "Z" },
{ OP_REDRAW, "\014" },
{ OP_SEARCH, "/" },
{ OP_SEARCH_NEXT, "n" },
{ OP_SEARCH_REVERSE, "\033/" },
{ OP_SHELL_ESCAPE, "!" },
{ OP_TAG,