2009-09-17 10:47:56 +00:00
|
|
|
/*
|
2010-11-10 13:09:42 +02:00
|
|
|
Copyright (C) 2009 The Free Software Foundation, Inc.
|
2009-09-17 10:47:56 +00:00
|
|
|
|
2010-11-10 13:09:42 +02:00
|
|
|
Written by: 2005 Vitja Makarov
|
|
|
|
2009 Ilia Maslakov
|
2009-09-17 10:47:56 +00:00
|
|
|
|
2010-11-10 13:09:42 +02:00
|
|
|
This file is part of the Midnight Commander.
|
2009-09-17 10:47:56 +00:00
|
|
|
|
2010-11-10 13:09:42 +02:00
|
|
|
The Midnight Commander 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.
|
2009-09-17 10:47:56 +00:00
|
|
|
|
2010-11-10 13:09:42 +02:00
|
|
|
The Midnight Commander 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.
|
2009-09-17 10:47:56 +00:00
|
|
|
|
2010-11-10 13:09:42 +02:00
|
|
|
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.
|
2009-07-05 15:04:42 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
#include <config.h>
|
|
|
|
|
|
|
|
#include <ctype.h>
|
|
|
|
#include <errno.h>
|
|
|
|
#include <stdarg.h>
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <string.h>
|
|
|
|
#include <sys/types.h>
|
|
|
|
#include <sys/stat.h>
|
|
|
|
#include <unistd.h>
|
|
|
|
|
2010-01-20 17:11:52 +02:00
|
|
|
#include "lib/global.h"
|
2010-01-08 16:47:19 +02:00
|
|
|
#include "lib/tty/win.h"
|
2010-11-10 13:09:42 +02:00
|
|
|
#include "lib/tty/key.h" /* KEY_M_ */
|
|
|
|
#include "lib/tty/tty.h" /* keys */
|
2010-01-21 14:17:26 +02:00
|
|
|
#include "lib/strutil.h"
|
2009-09-14 17:13:54 +00:00
|
|
|
|
2010-11-10 13:09:42 +02:00
|
|
|
#include "cmddef.h" /* CK_ cmd name const */
|
2009-07-05 15:04:42 +00:00
|
|
|
#include "keybind.h"
|
|
|
|
|
2010-11-10 13:09:42 +02:00
|
|
|
/*** global variables ****************************************************************************/
|
|
|
|
|
|
|
|
|
2010-05-06 19:19:02 +00:00
|
|
|
#ifdef USE_INTERNAL_EDIT
|
|
|
|
GArray *editor_keymap = NULL;
|
|
|
|
GArray *editor_x_keymap = NULL;
|
|
|
|
|
|
|
|
const global_keymap_t *editor_map;
|
|
|
|
const global_keymap_t *editor_x_map;
|
|
|
|
#endif
|
|
|
|
|
|
|
|
GArray *main_keymap = NULL;
|
|
|
|
GArray *main_x_keymap = NULL;
|
|
|
|
GArray *viewer_keymap = NULL;
|
|
|
|
GArray *viewer_hex_keymap = NULL;
|
|
|
|
GArray *panel_keymap = NULL;
|
|
|
|
GArray *input_keymap = NULL;
|
2010-08-12 13:17:58 +04:00
|
|
|
GArray *listbox_keymap = NULL;
|
2010-05-06 19:19:02 +00:00
|
|
|
GArray *tree_keymap = NULL;
|
|
|
|
GArray *help_keymap = NULL;
|
|
|
|
GArray *dialog_keymap = NULL;
|
|
|
|
|
|
|
|
#ifdef USE_DIFF_VIEW
|
|
|
|
GArray *diff_keymap = NULL;
|
|
|
|
|
|
|
|
const global_keymap_t *diff_map;
|
|
|
|
#endif
|
|
|
|
|
|
|
|
const global_keymap_t *main_map;
|
|
|
|
const global_keymap_t *main_x_map;
|
|
|
|
const global_keymap_t *panel_map;
|
|
|
|
const global_keymap_t *input_map;
|
2010-08-12 13:17:58 +04:00
|
|
|
const global_keymap_t *listbox_map;
|
2010-05-06 19:19:02 +00:00
|
|
|
const global_keymap_t *tree_map;
|
|
|
|
const global_keymap_t *help_map;
|
|
|
|
const global_keymap_t *dialog_map;
|
|
|
|
|
2009-09-17 10:47:56 +00:00
|
|
|
/*** global variables ****************************************************************************/
|
|
|
|
|
|
|
|
/* viewer/actions_cmd.c */
|
2009-10-23 10:27:28 +04:00
|
|
|
const global_keymap_t default_viewer_keymap[] = {
|
2010-11-10 13:09:42 +02:00
|
|
|
{KEY_F (1), CK_ViewHelp, "F1"},
|
|
|
|
{KEY_F (2), CK_ViewToggleWrapMode, "F2"},
|
|
|
|
{KEY_F (3), CK_ViewQuit, "F3"},
|
|
|
|
{KEY_F (4), CK_ViewToggleHexMode, "F4"},
|
|
|
|
{KEY_F (5), CK_ViewGoto, "F5"},
|
|
|
|
{KEY_F (7), CK_ViewSearch, "F7"},
|
|
|
|
{KEY_F (8), CK_ViewToggleMagicMode, "F8"},
|
|
|
|
{KEY_F (9), CK_ViewToggleNroffMode, "F9"},
|
|
|
|
{KEY_F (10), CK_ViewQuit, "F10"},
|
|
|
|
|
|
|
|
{'?', CK_ViewSearch, "?"},
|
|
|
|
{'/', CK_ViewSearch, "/"},
|
|
|
|
{XCTRL ('r'), CK_ViewContinueSearch, "C-r"},
|
|
|
|
{XCTRL ('s'), CK_ViewContinueSearch, "C-s"},
|
|
|
|
{KEY_F (17), CK_ViewContinueSearch, "S-F7"},
|
|
|
|
{'n', CK_ViewContinueSearch, "n"},
|
|
|
|
{ALT ('r'), CK_ViewToggleRuler, "M-r"},
|
|
|
|
|
|
|
|
{XCTRL ('a'), CK_ViewMoveToBol, "C-a"},
|
|
|
|
{XCTRL ('e'), CK_ViewMoveToEol, "C-e"},
|
|
|
|
|
|
|
|
{'h', CK_ViewMoveLeft, "h"},
|
|
|
|
{KEY_LEFT, CK_ViewMoveLeft, "Left"},
|
|
|
|
|
|
|
|
{'l', CK_ViewMoveRight, "l"},
|
|
|
|
{KEY_RIGHT, CK_ViewMoveRight, "Right"},
|
|
|
|
|
|
|
|
{KEY_M_CTRL | KEY_LEFT, CK_ViewMoveLeft10, "C-Left"},
|
|
|
|
{KEY_M_CTRL | KEY_RIGHT, CK_ViewMoveRight10, "C-Right"},
|
|
|
|
|
|
|
|
{'k', CK_ViewMoveUp, "k"},
|
|
|
|
{'y', CK_ViewMoveUp, "y"},
|
|
|
|
{XCTRL ('p'), CK_ViewMoveUp, "C-p"},
|
|
|
|
{KEY_IC, CK_ViewMoveUp, "Insert"},
|
|
|
|
{KEY_UP, CK_ViewMoveUp, "Up"},
|
|
|
|
|
|
|
|
{'j', CK_ViewMoveDown, "j"},
|
|
|
|
{'e', CK_ViewMoveDown, "e"},
|
|
|
|
{XCTRL ('n'), CK_ViewMoveUp, "C-n"},
|
|
|
|
{KEY_DOWN, CK_ViewMoveDown, "Down"},
|
|
|
|
{KEY_DC, CK_ViewMoveDown, "Delete"},
|
|
|
|
{'\n', CK_ViewMoveDown, "Endter"},
|
|
|
|
|
|
|
|
{' ', CK_ViewMovePgDn, "Space"},
|
|
|
|
{'f', CK_ViewMovePgDn, "f"},
|
|
|
|
{KEY_NPAGE, CK_ViewMovePgDn, "PgDn"},
|
|
|
|
{XCTRL ('v'), CK_ViewMovePgDn, "C-v"},
|
|
|
|
|
|
|
|
{'b', CK_ViewMovePgUp, "b"},
|
|
|
|
{KEY_PPAGE, CK_ViewMovePgUp, "PgUp"},
|
|
|
|
{ALT ('v'), CK_ViewMovePgUp, "M-v"},
|
|
|
|
{KEY_BACKSPACE, CK_ViewMovePgUp, "BackSpace"},
|
|
|
|
|
|
|
|
{'d', CK_ViewMoveHalfPgDn, "d"},
|
|
|
|
{'u', CK_ViewMoveHalfPgUp, "u"},
|
|
|
|
|
|
|
|
{KEY_HOME, CK_ViewMoveTop, "Home"},
|
|
|
|
{KEY_M_CTRL | KEY_HOME, CK_ViewMoveTop, "C-Home"},
|
|
|
|
{KEY_M_CTRL | KEY_PPAGE, CK_ViewMoveTop, "C-PgUp"},
|
|
|
|
{KEY_A1, CK_ViewMoveTop, "A1"},
|
|
|
|
{ALT ('<'), CK_ViewMoveTop, "M-<"},
|
|
|
|
{'g', CK_ViewMoveTop, "g"},
|
|
|
|
|
|
|
|
{KEY_END, CK_ViewMoveBottom, "End"},
|
|
|
|
{KEY_M_CTRL | KEY_END, CK_ViewMoveBottom, "C-End"},
|
|
|
|
{KEY_M_CTRL | KEY_NPAGE, CK_ViewMoveBottom, "C-PgDn"},
|
|
|
|
{KEY_C1, CK_ViewMoveBottom, "C1"},
|
|
|
|
{ALT ('>'), CK_ViewMoveBottom, "M->"},
|
|
|
|
{'G', CK_ViewMoveBottom, "G"},
|
|
|
|
|
|
|
|
{'m', CK_ViewGotoBookmark, "m"},
|
|
|
|
{'r', CK_ViewNewBookmark, "r"},
|
|
|
|
|
|
|
|
{XCTRL ('f'), CK_ViewNextFile, "C-f"},
|
|
|
|
{XCTRL ('b'), CK_ViewPrevFile, "C-b"},
|
|
|
|
|
|
|
|
{'q', CK_ViewQuit, "q"},
|
|
|
|
{XCTRL ('g'), CK_ViewQuit, "C-g"},
|
|
|
|
{ESC_CHAR, CK_ViewQuit, "Esc"},
|
|
|
|
|
|
|
|
{ALT ('e'), CK_SelectCodepage, "M-e"},
|
|
|
|
{XCTRL ('o'), CK_ShowCommandLine, "C-o"},
|
|
|
|
|
|
|
|
{0, CK_Ignore_Key, ""}
|
2009-09-17 10:47:56 +00:00
|
|
|
};
|
|
|
|
|
2009-10-23 10:27:28 +04:00
|
|
|
const global_keymap_t default_viewer_hex_keymap[] = {
|
2010-11-10 13:09:42 +02:00
|
|
|
{KEY_F (1), CK_ViewHelp, "F1"},
|
|
|
|
{KEY_F (2), CK_ViewToggleHexEditMode, "F2"},
|
|
|
|
{KEY_F (3), CK_ViewQuit, "F3"},
|
|
|
|
{KEY_F (4), CK_ViewToggleHexMode, "F4"},
|
|
|
|
{KEY_F (5), CK_ViewGoto, "F5"},
|
|
|
|
{KEY_F (6), CK_ViewHexEditSave, "F6"},
|
|
|
|
{KEY_F (7), CK_ViewSearch, "F7"},
|
|
|
|
{KEY_F (8), CK_ViewToggleMagicMode, "F8"},
|
|
|
|
{KEY_F (9), CK_ViewToggleNroffMode, "F9"},
|
|
|
|
{KEY_F (10), CK_ViewQuit, "F10"},
|
|
|
|
|
|
|
|
{'?', CK_ViewSearch, "?"},
|
|
|
|
{'/', CK_ViewSearch, "/"},
|
|
|
|
{XCTRL ('r'), CK_ViewContinueSearch, "C-r"},
|
|
|
|
{XCTRL ('s'), CK_ViewContinueSearch, "C-s"},
|
|
|
|
{KEY_F (17), CK_ViewContinueSearch, "S-F7"},
|
|
|
|
{'n', CK_ViewContinueSearch, "n"},
|
|
|
|
|
|
|
|
{'\t', CK_ViewToggleHexNavMode, "Tab"},
|
|
|
|
{XCTRL ('a'), CK_ViewMoveToBol, "C-a"},
|
|
|
|
{XCTRL ('e'), CK_ViewMoveToEol, "C-e"},
|
|
|
|
|
|
|
|
{'b', CK_ViewMoveLeft, "b"},
|
|
|
|
{KEY_LEFT, CK_ViewMoveLeft, "Left"},
|
|
|
|
|
|
|
|
{'f', CK_ViewMoveRight, "f"},
|
|
|
|
{KEY_RIGHT, CK_ViewMoveRight, "Right"},
|
|
|
|
|
|
|
|
{'k', CK_ViewMoveUp, "k"},
|
|
|
|
{'y', CK_ViewMoveUp, "y"},
|
|
|
|
{KEY_UP, CK_ViewMoveUp, "Up"},
|
|
|
|
|
|
|
|
{'j', CK_ViewMoveDown, "j"},
|
|
|
|
{KEY_DOWN, CK_ViewMoveDown, "Down"},
|
|
|
|
{KEY_DC, CK_ViewMoveDown, "Delete"},
|
|
|
|
|
|
|
|
{KEY_NPAGE, CK_ViewMovePgDn, "PgDn"},
|
|
|
|
{XCTRL ('v'), CK_ViewMovePgDn, "C-v"},
|
|
|
|
|
|
|
|
{KEY_PPAGE, CK_ViewMovePgUp, "PgUp"},
|
|
|
|
{ALT ('v'), CK_ViewMovePgUp, "M-v"},
|
|
|
|
|
|
|
|
{KEY_HOME, CK_ViewMoveTop, "Home"},
|
|
|
|
{KEY_M_CTRL | KEY_HOME, CK_ViewMoveTop, "C-Home"},
|
|
|
|
{KEY_M_CTRL | KEY_PPAGE, CK_ViewMoveTop, "C-PgUp"},
|
|
|
|
{KEY_A1, CK_ViewMoveTop, "A1"},
|
|
|
|
{ALT ('<'), CK_ViewMoveTop, "M-<"},
|
|
|
|
{'g', CK_ViewMoveTop, "g"},
|
|
|
|
|
|
|
|
{KEY_END, CK_ViewMoveBottom, "End"},
|
|
|
|
{KEY_M_CTRL | KEY_END, CK_ViewMoveBottom, "C-End"},
|
|
|
|
{KEY_M_CTRL | KEY_NPAGE, CK_ViewMoveBottom, "C-PgDn"},
|
|
|
|
{KEY_C1, CK_ViewMoveBottom, "C1"},
|
|
|
|
{ALT ('>'), CK_ViewMoveBottom, "M->"},
|
|
|
|
{'G', CK_ViewMoveBottom, "G"},
|
|
|
|
|
|
|
|
{'q', CK_ViewQuit, "q"},
|
|
|
|
{XCTRL ('g'), CK_ViewQuit, "C-g"},
|
|
|
|
{ESC_CHAR, CK_ViewQuit, "Esc"},
|
|
|
|
|
|
|
|
{ALT ('e'), CK_SelectCodepage, "M-e"},
|
|
|
|
{XCTRL ('o'), CK_ShowCommandLine, "C-o"},
|
|
|
|
|
|
|
|
{0, CK_Ignore_Key, ""}
|
2009-09-17 10:47:56 +00:00
|
|
|
};
|
2009-09-20 19:43:56 +00:00
|
|
|
|
2009-10-23 10:27:28 +04:00
|
|
|
#ifdef USE_INTERNAL_EDIT
|
2009-09-20 19:43:56 +00:00
|
|
|
/* ../edit/editkeys.c */
|
2009-10-23 10:27:28 +04:00
|
|
|
const global_keymap_t default_editor_keymap[] = {
|
2010-11-10 13:09:42 +02:00
|
|
|
{'\n', CK_Enter, "Enter"},
|
|
|
|
{'\t', CK_Tab, "Tab"},
|
|
|
|
|
|
|
|
{KEY_F (1), CK_Help, "F1"},
|
|
|
|
{KEY_F (2), CK_Save, "F2"},
|
|
|
|
{KEY_F (3), CK_Mark, "F3"},
|
|
|
|
{KEY_F (4), CK_Replace, "F4"},
|
|
|
|
{KEY_F (5), CK_Copy, "F5"},
|
|
|
|
{KEY_F (6), CK_Move, "F6"},
|
|
|
|
{KEY_F (7), CK_Find, "F7"},
|
|
|
|
{KEY_F (8), CK_Remove, "F8"},
|
|
|
|
{KEY_F (9), CK_Menu, "F9"},
|
|
|
|
{KEY_F (10), CK_Quit, "F10"},
|
2009-09-20 19:43:56 +00:00
|
|
|
/* edit user menu */
|
2010-11-10 13:09:42 +02:00
|
|
|
{KEY_F (11), CK_User_Menu, "S-F1"},
|
|
|
|
{KEY_F (12), CK_Save_As, "S-F2"},
|
|
|
|
{KEY_F (13), CK_Column_Mark, "S-F3"},
|
|
|
|
{KEY_F (14), CK_Replace_Again, "S-F4"},
|
|
|
|
{KEY_F (15), CK_Insert_File, "S-F5"},
|
|
|
|
{KEY_F (17), CK_Find_Again, "S-F7"},
|
2009-09-20 19:43:56 +00:00
|
|
|
/* C formatter */
|
2010-11-10 13:09:42 +02:00
|
|
|
{KEY_F (19), CK_Pipe_Block (0), "S-F9"},
|
|
|
|
|
|
|
|
{ESC_CHAR, CK_Quit, "Esc"},
|
|
|
|
{KEY_BACKSPACE, CK_BackSpace, "BackSpace"},
|
|
|
|
{KEY_DC, CK_Delete, "Delete"},
|
|
|
|
{KEY_DOWN, CK_Down, "Down"},
|
|
|
|
{KEY_END, CK_End, "End"},
|
|
|
|
{KEY_HOME, CK_Home, "Home"},
|
|
|
|
{KEY_IC, CK_Toggle_Insert, "Insert"},
|
|
|
|
{KEY_LEFT, CK_Left, "Left"},
|
|
|
|
{KEY_NPAGE, CK_Page_Down, "PgDn"},
|
|
|
|
{KEY_PPAGE, CK_Page_Up, "PgUp"},
|
|
|
|
{KEY_RIGHT, CK_Right, "Right"},
|
|
|
|
{KEY_UP, CK_Up, "Up"},
|
2009-09-20 19:43:56 +00:00
|
|
|
|
|
|
|
/* Ctrl */
|
2010-11-10 13:09:42 +02:00
|
|
|
{KEY_M_CTRL | (KEY_F (2)), CK_Save_As, "C-F2"},
|
|
|
|
{KEY_M_CTRL | (KEY_F (4)), CK_Replace_Again, "C-F4"},
|
|
|
|
{KEY_M_CTRL | (KEY_F (7)), CK_Find_Again, "C-F7"},
|
|
|
|
{KEY_M_CTRL | KEY_BACKSPACE, CK_Undo, "C-BackSpace"},
|
|
|
|
{KEY_M_CTRL | KEY_NPAGE, CK_End_Of_Text, "C-PgDn"},
|
|
|
|
{KEY_M_CTRL | KEY_PPAGE, CK_Beginning_Of_Text, "C-PgUp"},
|
|
|
|
{KEY_M_CTRL | KEY_HOME, CK_Beginning_Of_Text, "C-Home"},
|
|
|
|
{KEY_M_CTRL | KEY_END, CK_End_Of_Text, "C-End"},
|
|
|
|
{KEY_M_CTRL | KEY_UP, CK_Scroll_Up, "C-Up"},
|
|
|
|
{KEY_M_CTRL | KEY_DOWN, CK_Scroll_Down, "C-Down"},
|
|
|
|
{KEY_M_CTRL | KEY_LEFT, CK_Word_Left, "C-Left"},
|
|
|
|
{XCTRL ('z'), CK_Word_Left, "C-z"},
|
|
|
|
{KEY_M_CTRL | KEY_RIGHT, CK_Word_Right, "C-Right"},
|
|
|
|
{XCTRL ('x'), CK_Word_Right, "C-x"},
|
|
|
|
{KEY_M_CTRL | KEY_IC, CK_XStore, "C-Insert"},
|
|
|
|
{KEY_M_CTRL | KEY_DC, CK_Remove, "C-Delete"},
|
|
|
|
|
|
|
|
{XCTRL ('n'), CK_New, "C-n"},
|
|
|
|
{XCTRL ('k'), CK_Delete_To_Line_End, "C-k"},
|
|
|
|
{XCTRL ('l'), CK_Refresh, "C-l"},
|
|
|
|
{XCTRL ('o'), CK_Shell, "C-o"},
|
|
|
|
{XCTRL ('s'), CK_Toggle_Syntax, "C-s"},
|
|
|
|
{XCTRL ('u'), CK_Undo, "C-u"},
|
|
|
|
{ALT ('e'), CK_SelectCodepage, "M-e"},
|
|
|
|
{XCTRL ('q'), CK_Insert_Literal, "C-q"},
|
|
|
|
{XCTRL ('r'), CK_Begin_End_Macro, "C-r"},
|
|
|
|
{XCTRL ('r'), CK_Begin_Record_Macro, "C-r"},
|
|
|
|
{XCTRL ('r'), CK_End_Record_Macro, "C-r"},
|
|
|
|
{XCTRL ('a'), CK_Execute_Macro, "C-a"},
|
|
|
|
{XCTRL ('f'), CK_Save_Block, "C-f"},
|
2010-11-01 21:31:24 +03:00
|
|
|
/* Spell check */
|
2010-11-10 13:09:42 +02:00
|
|
|
{XCTRL ('p'), CK_Pipe_Block (1), "C-p"},
|
|
|
|
{XCTRL ('y'), CK_Delete_Line, "C-y"},
|
2009-11-16 16:08:17 +03:00
|
|
|
|
|
|
|
/* Shift */
|
2010-11-10 13:09:42 +02:00
|
|
|
{KEY_M_SHIFT | KEY_NPAGE, CK_Page_Down_Highlight, "S-PgDn"},
|
|
|
|
{KEY_M_SHIFT | KEY_PPAGE, CK_Page_Up_Highlight, "S-PgUp"},
|
|
|
|
{KEY_M_SHIFT | KEY_LEFT, CK_Left_Highlight, "S-Left"},
|
|
|
|
{KEY_M_SHIFT | KEY_RIGHT, CK_Right_Highlight, "S-Right"},
|
|
|
|
{KEY_M_SHIFT | KEY_UP, CK_Up_Highlight, "S-Up"},
|
|
|
|
{KEY_M_SHIFT | KEY_DOWN, CK_Down_Highlight, "S-Down"},
|
|
|
|
{KEY_M_SHIFT | KEY_HOME, CK_Home_Highlight, "S-Home"},
|
|
|
|
{KEY_M_SHIFT | KEY_END, CK_End_Highlight, "S-End"},
|
|
|
|
{KEY_M_SHIFT | KEY_IC, CK_XPaste, "S-Insert"},
|
|
|
|
{KEY_M_SHIFT | KEY_DC, CK_XCut, "S-Delete"},
|
2009-11-16 16:08:17 +03:00
|
|
|
/* useful for pasting multiline text */
|
2010-11-10 13:09:42 +02:00
|
|
|
{KEY_M_SHIFT | '\n', CK_Return, "S-Enter"},
|
2009-11-16 16:08:17 +03:00
|
|
|
|
2009-09-20 19:43:56 +00:00
|
|
|
/* Ctrl + Shift */
|
2010-11-10 13:09:42 +02:00
|
|
|
{KEY_M_SHIFT | KEY_M_CTRL | KEY_NPAGE, CK_End_Of_Text_Highlight, "C-S-PgDn"},
|
|
|
|
{KEY_M_SHIFT | KEY_M_CTRL | KEY_PPAGE, CK_Beginning_Of_Text_Highlight, "C-S-PgUp"},
|
|
|
|
{KEY_M_SHIFT | KEY_M_CTRL | KEY_LEFT, CK_Word_Left_Highlight, "C-S-Left"},
|
|
|
|
{KEY_M_SHIFT | KEY_M_CTRL | KEY_RIGHT, CK_Word_Right_Highlight, "C-S-Right"},
|
|
|
|
{KEY_M_SHIFT | KEY_M_CTRL | KEY_UP, CK_Scroll_Up_Highlight, "C-S-Up"},
|
|
|
|
{KEY_M_SHIFT | KEY_M_CTRL | KEY_DOWN, CK_Scroll_Down_Highlight, "C-S-Down"},
|
2009-09-20 19:43:56 +00:00
|
|
|
|
2009-11-16 16:08:17 +03:00
|
|
|
/* Alt */
|
2010-11-10 13:09:42 +02:00
|
|
|
{KEY_M_ALT | KEY_NPAGE, CK_Page_Down_Alt_Highlight, "M-PgDn"},
|
|
|
|
{KEY_M_ALT | KEY_PPAGE, CK_Page_Up_Alt_Highlight, "M-PgUp"},
|
|
|
|
{KEY_M_ALT | KEY_LEFT, CK_Left_Alt_Highlight, "M-Left"},
|
|
|
|
{KEY_M_ALT | KEY_RIGHT, CK_Right_Alt_Highlight, "M-Right"},
|
|
|
|
{KEY_M_ALT | KEY_UP, CK_Up_Alt_Highlight, "M-Up"},
|
|
|
|
{KEY_M_ALT | KEY_DOWN, CK_Down_Alt_Highlight, "M-Down"},
|
|
|
|
{KEY_M_ALT | KEY_HOME, CK_Home_Highlight, "M-Home"},
|
|
|
|
{KEY_M_ALT | KEY_END, CK_End_Alt_Highlight, "M-End"},
|
|
|
|
|
|
|
|
{ALT ('\n'), CK_Find_Definition, "M-Enter"},
|
|
|
|
{ALT ('\t'), CK_Complete_Word, "M-Tab"},
|
|
|
|
{ALT ('l'), CK_Goto, "M-l"},
|
|
|
|
{ALT ('L'), CK_Goto, "M-L"},
|
|
|
|
{ALT ('p'), CK_Paragraph_Format, "M-p"},
|
|
|
|
{ALT ('t'), CK_Sort, "M-t"},
|
|
|
|
{ALT ('u'), CK_ExtCmd, "M-u"},
|
|
|
|
{ALT ('<'), CK_Beginning_Of_Text, "M-<"},
|
|
|
|
{ALT ('>'), CK_End_Of_Text, "M->"},
|
|
|
|
{ALT ('-'), CK_Load_Prev_File, "M--"},
|
|
|
|
{ALT ('+'), CK_Load_Next_File, "M-+"},
|
|
|
|
{ALT ('d'), CK_Delete_Word_Right, "M-d"},
|
|
|
|
{ALT (KEY_BACKSPACE), CK_Delete_Word_Left, "M-BackSpace"},
|
|
|
|
{ALT ('n'), CK_Toggle_Line_State, "M-n"},
|
|
|
|
{ALT ('_'), CK_Toggle_Tab_TWS, "M-_"},
|
|
|
|
{ALT ('k'), CK_Toggle_Bookmark, "M-k"},
|
|
|
|
{ALT ('i'), CK_Prev_Bookmark, "M-i"},
|
|
|
|
{ALT ('j'), CK_Next_Bookmark, "M-j"},
|
|
|
|
{ALT ('o'), CK_Flush_Bookmarks, "M-o"},
|
|
|
|
{ALT ('b'), CK_Match_Bracket, "M-b"},
|
|
|
|
{ALT ('m'), CK_Mail, "M-m"},
|
|
|
|
|
|
|
|
{XCTRL ('x'), CK_Ext_Mode, "C-x"},
|
|
|
|
|
|
|
|
{0, CK_Ignore_Key, ""}
|
2009-09-20 19:43:56 +00:00
|
|
|
};
|
2009-10-23 17:58:01 +00:00
|
|
|
|
2009-10-25 12:15:19 +03:00
|
|
|
/* emacs keyboard layout emulation */
|
2009-10-23 17:58:01 +00:00
|
|
|
const global_keymap_t default_editor_x_keymap[] = {
|
2010-11-10 13:09:42 +02:00
|
|
|
{'k', CK_New, "k"},
|
|
|
|
{'e', CK_Execute_Macro, "e"},
|
|
|
|
{0, CK_Ignore_Key, ""}
|
2009-10-23 17:58:01 +00:00
|
|
|
};
|
2010-11-10 13:09:42 +02:00
|
|
|
#endif /* USE_INTERNAL_EDIT */
|
2009-09-20 19:43:56 +00:00
|
|
|
|
2010-05-06 19:19:02 +00:00
|
|
|
/* dialog */
|
|
|
|
const global_keymap_t default_dialog_keymap[] = {
|
2010-11-10 13:09:42 +02:00
|
|
|
{'\n', CK_DialogOK, "Enter"},
|
|
|
|
{KEY_ENTER, CK_DialogOK, "Enter"},
|
|
|
|
{ESC_CHAR, CK_DialogCancel, "Esc"},
|
|
|
|
{XCTRL ('g'), CK_DialogCancel, "C-g"},
|
|
|
|
{KEY_F (10), CK_DialogCancel, "F10"},
|
|
|
|
{KEY_LEFT, CK_DialogPrevItem, "Left"},
|
|
|
|
{KEY_UP, CK_DialogPrevItem, "Up"},
|
|
|
|
{KEY_RIGHT, CK_DialogNextItem, "Right"},
|
|
|
|
{KEY_DOWN, CK_DialogNextItem, "Down"},
|
|
|
|
{KEY_F (1), CK_DialogHelp, "F1"},
|
|
|
|
{XCTRL ('z'), CK_DialogSuspend, "C-z"},
|
|
|
|
{XCTRL ('l'), CK_DialogRefresh, "C-l"},
|
|
|
|
{0, CK_Ignore_Key, ""}
|
2010-05-06 19:19:02 +00:00
|
|
|
};
|
|
|
|
|
2009-11-02 17:01:08 +03:00
|
|
|
/* tree */
|
|
|
|
const global_keymap_t default_tree_keymap[] = {
|
2010-11-10 13:09:42 +02:00
|
|
|
{KEY_F (1), CK_TreeHelp, "F1"},
|
|
|
|
{KEY_F (2), CK_TreeRescan, "F2"},
|
|
|
|
{KEY_F (3), CK_TreeForget, "F3"},
|
|
|
|
{KEY_F (4), CK_TreeToggleNav, "F4"},
|
|
|
|
{KEY_F (5), CK_TreeCopy, "F5"},
|
|
|
|
{KEY_F (6), CK_TreeMove, "F6"},
|
2009-11-02 17:01:08 +03:00
|
|
|
#if 0
|
2010-11-10 13:09:42 +02:00
|
|
|
{KEY_F (7), CK_TreeMake, "F7"},
|
2009-11-02 17:01:08 +03:00
|
|
|
#endif
|
2010-11-10 13:09:42 +02:00
|
|
|
{KEY_F (8), CK_TreeRemove, "F8"},
|
|
|
|
{KEY_UP, CK_TreeMoveUp, "Up"},
|
|
|
|
{XCTRL ('p'), CK_TreeMoveUp, "C-p"},
|
|
|
|
{KEY_DOWN, CK_TreeMoveDown, "Down"},
|
|
|
|
{XCTRL ('n'), CK_TreeMoveDown, "C-n"},
|
|
|
|
{KEY_LEFT, CK_TreeMoveLeft, "Left"},
|
|
|
|
{KEY_RIGHT, CK_TreeMoveRight, "Right"},
|
|
|
|
{KEY_HOME, CK_TreeMoveHome, "Home"},
|
|
|
|
{ALT ('<'), CK_TreeMoveHome, "M-<"},
|
|
|
|
{KEY_A1, CK_TreeMoveHome, "A1"},
|
|
|
|
{KEY_END, CK_TreeMoveEnd, "End"},
|
|
|
|
{ALT ('>'), CK_TreeMoveEnd, "M->"},
|
|
|
|
{KEY_C1, CK_TreeMoveEnd, "C1"},
|
|
|
|
{KEY_PPAGE, CK_TreeMovePgUp, "PgUp"},
|
|
|
|
{ALT ('v'), CK_TreeMovePgUp, "M-v"},
|
|
|
|
{KEY_NPAGE, CK_TreeMovePgDn, "PnDn"},
|
|
|
|
{XCTRL ('v'), CK_TreeMovePgDn, "C-v"},
|
|
|
|
{'\n', CK_TreeOpen, "Enter"},
|
|
|
|
{KEY_ENTER, CK_TreeOpen, "Enter"},
|
|
|
|
{XCTRL ('r'), CK_TreeRescan, "C-r"},
|
|
|
|
{XCTRL ('s'), CK_TreeStartSearch, "C-s"},
|
|
|
|
{ALT ('s'), CK_TreeStartSearch, "M-s"},
|
|
|
|
{KEY_DC, CK_TreeRemove, "Delete"},
|
|
|
|
{0, CK_Ignore_Key, ""}
|
2009-11-02 17:01:08 +03:00
|
|
|
};
|
|
|
|
|
2009-11-07 18:36:44 +03:00
|
|
|
/* help */
|
|
|
|
const global_keymap_t default_help_keymap[] = {
|
2010-11-10 13:09:42 +02:00
|
|
|
{KEY_F (1), CK_HelpHelp, "F1"},
|
|
|
|
{KEY_F (2), CK_HelpIndex, "F2"},
|
|
|
|
{KEY_F (3), CK_HelpBack, "F3"},
|
|
|
|
{KEY_F (10), CK_HelpQuit, "F10"},
|
|
|
|
{KEY_LEFT, CK_HelpBack, "Left"},
|
|
|
|
{'l', CK_HelpBack, "l"},
|
|
|
|
{KEY_DOWN, CK_HelpMoveDown, "Down"},
|
|
|
|
{XCTRL ('n'), CK_HelpMoveDown, "C-n"},
|
|
|
|
{KEY_UP, CK_HelpMoveUp, "Up"},
|
|
|
|
{XCTRL ('p'), CK_HelpMoveUp, "C-p"},
|
|
|
|
{KEY_NPAGE, CK_HelpMovePgDn, "PgDn"},
|
|
|
|
{XCTRL ('v'), CK_HelpMovePgDn, "C-v"},
|
|
|
|
{'f', CK_HelpMovePgDn, "f"},
|
|
|
|
{' ', CK_HelpMovePgDn, "Space"},
|
|
|
|
{KEY_PPAGE, CK_HelpMovePgUp, "PgUp"},
|
|
|
|
{ALT ('v'), CK_HelpMovePgUp, "M-v"},
|
|
|
|
{'b', CK_HelpMovePgUp, "b"},
|
|
|
|
{KEY_BACKSPACE, CK_HelpMovePgUp, "BackSpace"},
|
|
|
|
{'d', CK_HelpMoveHalfPgDn, "d"},
|
|
|
|
{'u', CK_HelpMoveHalfPgUp, "u"},
|
|
|
|
{KEY_HOME, CK_HelpMoveTop, "Home"},
|
|
|
|
{KEY_M_CTRL | KEY_HOME, CK_HelpMoveTop, "C-Home"},
|
|
|
|
{KEY_M_CTRL | KEY_PPAGE, CK_HelpMoveTop, "C-PgUp"},
|
|
|
|
{KEY_A1, CK_HelpMoveTop, "A1"},
|
|
|
|
{ALT ('<'), CK_HelpMoveTop, "M-<"},
|
|
|
|
{'g', CK_HelpMoveTop, "g"},
|
|
|
|
{KEY_END, CK_HelpMoveBottom, "End"},
|
|
|
|
{KEY_M_CTRL | KEY_END, CK_HelpMoveBottom, "C-End"},
|
|
|
|
{KEY_M_CTRL | KEY_NPAGE, CK_HelpMoveBottom, "C-PgDn"},
|
|
|
|
{KEY_C1, CK_HelpMoveBottom, "C1"},
|
|
|
|
{ALT ('>'), CK_HelpMoveBottom, "M->"},
|
|
|
|
{'G', CK_HelpMoveBottom, "G"},
|
|
|
|
{KEY_RIGHT, CK_HelpSelectLink, "Right"},
|
|
|
|
{KEY_ENTER, CK_HelpSelectLink, "Enter"},
|
|
|
|
{'\n', CK_HelpSelectLink, "Enter"},
|
|
|
|
{'\t', CK_HelpNextLink, "Tab"},
|
|
|
|
{ALT ('\t'), CK_HelpPrevLink, "M-Tab"},
|
|
|
|
{'n', CK_HelpNextNode, "n"},
|
|
|
|
{'p', CK_HelpPrevNode, "p"},
|
|
|
|
{ESC_CHAR, CK_HelpQuit, "Esc"},
|
|
|
|
{XCTRL ('g'), CK_HelpQuit, "C-g"},
|
|
|
|
{0, CK_Ignore_Key, ""}
|
2009-11-07 18:36:44 +03:00
|
|
|
};
|
|
|
|
|
2010-08-12 13:17:58 +04:00
|
|
|
/* panel */
|
2009-10-23 10:27:28 +04:00
|
|
|
const global_keymap_t default_panel_keymap[] = {
|
2010-11-10 13:09:42 +02:00
|
|
|
{ALT ('o'), CK_PanelChdirOtherPanel, "M-o"},
|
|
|
|
{ALT ('l'), CK_PanelChdirToReadlink, "M-l"},
|
|
|
|
{KEY_F (15), CK_PanelCmdCopyLocal, "S-F5"},
|
|
|
|
{KEY_F (18), CK_PanelCmdDeleteLocal, "S-F8"},
|
|
|
|
{KEY_ENTER, CK_PanelCmdDoEnter, "Enter"},
|
|
|
|
{'\n', CK_PanelCmdDoEnter, "Enter"},
|
|
|
|
{KEY_F (14), CK_PanelCmdEditNew, "S-F4"},
|
|
|
|
{KEY_F (16), CK_PanelCmdRenameLocal, "S-F6"},
|
|
|
|
{ALT ('*'), CK_PanelCmdReverseSelection, "M-*"},
|
|
|
|
{KEY_KP_ADD, CK_PanelCmdSelect, "M-+"},
|
|
|
|
{KEY_KP_SUBTRACT, CK_PanelCmdUnselect, "M--"},
|
|
|
|
{KEY_F (13), CK_PanelCmdViewSimple, "S-F3"},
|
|
|
|
{KEY_M_CTRL | KEY_NPAGE, CK_PanelCtrlNextPage, "C-PgDn"},
|
|
|
|
{KEY_M_CTRL | KEY_PPAGE, CK_PanelCtrlPrevPage, "C-PgUp"},
|
|
|
|
{ALT ('H'), CK_PanelDirectoryHistoryList, "M-H"},
|
|
|
|
{ALT ('u'), CK_PanelDirectoryHistoryNext, "M-u"},
|
|
|
|
{ALT ('y'), CK_PanelDirectoryHistoryPrev, "M-y"},
|
|
|
|
{ALT ('j'), CK_PanelGotoBottomFile, "M-j"},
|
|
|
|
{ALT ('r'), CK_PanelGotoMiddleFile, "M-r"},
|
|
|
|
{ALT ('g'), CK_PanelGotoTopFile, "M-g"},
|
|
|
|
{KEY_IC, CK_PanelMarkFile, "Insert"},
|
|
|
|
{KEY_UP, CK_PanelMoveUp, "Up"},
|
|
|
|
{KEY_DOWN, CK_PanelMoveDown, "Down"},
|
|
|
|
{KEY_LEFT, CK_PanelMoveLeft, "Left"},
|
|
|
|
{KEY_RIGHT, CK_PanelMoveRight, "Right"},
|
|
|
|
{KEY_END, CK_PanelMoveEnd, "End"},
|
|
|
|
{KEY_C1, CK_PanelMoveEnd, "C1"},
|
|
|
|
{KEY_HOME, CK_PanelMoveHome, "Home"},
|
|
|
|
{KEY_A1, CK_PanelMoveHome, "A1"},
|
|
|
|
{KEY_NPAGE, CK_PanelNextPage, "PgDn"},
|
|
|
|
{KEY_PPAGE, CK_PanelPrevPage, "PgUp"},
|
|
|
|
{ALT ('e'), CK_PanelSetPanelEncoding, "M-e"},
|
|
|
|
{XCTRL ('s'), CK_PanelStartSearch, "C-s"},
|
|
|
|
{ALT ('s'), CK_PanelStartSearch, "M-s"},
|
|
|
|
{ALT ('i'), CK_PanelSyncOtherPanel, "M-i"},
|
|
|
|
{0, CK_Ignore_Key, ""}
|
2009-09-17 10:47:56 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
/* main.c */
|
2009-10-23 10:27:28 +04:00
|
|
|
const global_keymap_t default_main_map[] = {
|
2010-11-10 13:09:42 +02:00
|
|
|
{KEY_F (1), CK_HelpCmd, "F1"},
|
|
|
|
{KEY_F (2), CK_UserMenuCmd, "F2"},
|
|
|
|
{KEY_F (3), CK_ViewCmd, "F3"},
|
|
|
|
{KEY_F (4), CK_EditCmd, "F4"},
|
|
|
|
{KEY_F (5), CK_CopyCmd, "F5"},
|
|
|
|
{KEY_F (6), CK_RenameCmd, "F6"},
|
|
|
|
{KEY_F (7), CK_MkdirCmd, "F7"},
|
|
|
|
{KEY_F (8), CK_DeleteCmd, "F8"},
|
|
|
|
{KEY_F (9), CK_MenuCmd, "F9"},
|
|
|
|
{KEY_F (10), CK_QuitCmd, "F10"},
|
|
|
|
{KEY_F (13), CK_ViewFileCmd, "S-F3"},
|
|
|
|
{KEY_F (19), CK_MenuLastSelectedCmd, "S-F9"},
|
|
|
|
{KEY_F (20), CK_QuietQuitCmd, "S-10"},
|
|
|
|
{ALT ('h'), CK_HistoryCmd, "M-h"},
|
|
|
|
{XCTRL ('@'), CK_SingleDirsizeCmd, "C-Space"},
|
2009-09-17 10:47:56 +00:00
|
|
|
/* Copy useful information to the command line */
|
2010-11-10 13:09:42 +02:00
|
|
|
{ALT ('a'), CK_CopyCurrentPathname, "M-a"},
|
|
|
|
{ALT ('A'), CK_CopyOtherPathname, "M-A"},
|
|
|
|
{ALT ('c'), CK_QuickCdCmd, "M-c"},
|
2009-09-17 10:47:56 +00:00
|
|
|
/* To access the directory hotlist */
|
2010-11-10 13:09:42 +02:00
|
|
|
{XCTRL ('\\'), CK_QuickChdirCmd, "C-\\"},
|
2009-09-17 10:47:56 +00:00
|
|
|
/* Suspend */
|
2010-11-10 13:09:42 +02:00
|
|
|
{XCTRL ('z'), CK_SuspendCmd, "C-z"},
|
2009-09-17 10:47:56 +00:00
|
|
|
/* The filtered view command */
|
2010-11-10 13:09:42 +02:00
|
|
|
{ALT ('!'), CK_FilteredViewCmd, "M-!"},
|
2009-09-17 10:47:56 +00:00
|
|
|
/* Find file */
|
2010-11-10 13:09:42 +02:00
|
|
|
{ALT ('?'), CK_FindCmd, "M-?"},
|
2009-09-17 10:47:56 +00:00
|
|
|
/* Panel refresh */
|
2010-11-10 13:09:42 +02:00
|
|
|
{XCTRL ('r'), CK_RereadCmd, "C-r"},
|
2009-09-17 10:47:56 +00:00
|
|
|
/* Toggle listing between long, user defined and full formats */
|
2010-11-10 13:09:42 +02:00
|
|
|
{ALT ('t'), CK_ToggleListingCmd, "M-t"},
|
2009-09-17 10:47:56 +00:00
|
|
|
/* Swap panels */
|
2010-11-10 13:09:42 +02:00
|
|
|
{XCTRL ('u'), CK_SwapCmd, "C-u"},
|
2009-09-17 10:47:56 +00:00
|
|
|
/* View output */
|
2010-11-10 13:09:42 +02:00
|
|
|
{XCTRL ('o'), CK_ShowCommandLine, "C-o"},
|
|
|
|
{ALT ('.'), CK_ToggleShowHidden, "M-."},
|
|
|
|
{ALT (','), CK_TogglePanelsSplit, "M-,"},
|
|
|
|
{XCTRL ('x'), CK_StartExtMap1, "C-x"},
|
2009-10-24 16:40:19 +04:00
|
|
|
/* Select/unselect group */
|
2010-11-10 13:09:42 +02:00
|
|
|
{KEY_KP_ADD, CK_SelectCmd, "+"},
|
|
|
|
{KEY_KP_SUBTRACT, CK_UnselectCmd, "-"},
|
|
|
|
{ALT ('*'), CK_ReverseSelectionCmd, "*"},
|
2010-04-18 14:58:18 +04:00
|
|
|
|
2010-11-10 13:09:42 +02:00
|
|
|
{ALT ('`'), CK_DialogListCmd, "M-`"},
|
|
|
|
{ALT ('}'), CK_DialogNextCmd, "M-}"},
|
|
|
|
{ALT ('{'), CK_DialogPrevCmd, "M-{"},
|
2010-04-18 14:58:18 +04:00
|
|
|
|
2010-11-10 13:09:42 +02:00
|
|
|
{0, CK_Ignore_Key, ""}
|
2009-09-17 10:47:56 +00:00
|
|
|
};
|
|
|
|
|
2009-10-23 10:27:28 +04:00
|
|
|
const global_keymap_t default_main_x_map[] = {
|
2010-11-10 13:09:42 +02:00
|
|
|
{'d', CK_CompareDirsCmd, "d"},
|
2010-09-29 15:39:12 +03:00
|
|
|
#ifdef USE_DIFF_VIEW
|
2010-11-10 13:09:42 +02:00
|
|
|
{XCTRL ('d'), CK_DiffViewCmd, "C-d"},
|
|
|
|
#endif /* USE_DIFF_VIEW */
|
2009-12-29 12:39:13 +01:00
|
|
|
#ifdef ENABLE_VFS
|
2010-11-10 13:09:42 +02:00
|
|
|
{'a', CK_ReselectVfs, "a"},
|
|
|
|
#endif /* ENABLE_VFS */
|
|
|
|
{'p', CK_CopyCurrentPathname, "p"},
|
|
|
|
{XCTRL ('p'), CK_CopyOtherPathname, "C-p"},
|
|
|
|
{'t', CK_CopyCurrentTagged, "t"},
|
|
|
|
{XCTRL ('t'), CK_CopyOtherTagged, "C-t"},
|
|
|
|
{'c', CK_ChmodCmd, "c"},
|
|
|
|
{'o', CK_ChownCmd, "o"},
|
|
|
|
{'r', CK_CopyCurrentReadlink, "r"},
|
|
|
|
{XCTRL ('r'), CK_CopyOtherReadlink, "C-r"},
|
|
|
|
{'l', CK_LinkCmd, "l"},
|
|
|
|
{'s', CK_SymlinkCmd, "s"},
|
|
|
|
{'v', CK_RelativeSymlinkCmd, "v"},
|
|
|
|
{XCTRL ('s'), CK_EditSymlinkCmd, "C-s"},
|
|
|
|
{'i', CK_InfoCmd, "i"},
|
|
|
|
{'q', CK_QuickViewCmd, "q"},
|
|
|
|
{'h', CK_AddHotlist, "h"},
|
|
|
|
{'!', CK_ExternalPanelize, "!"},
|
2009-09-17 10:47:56 +00:00
|
|
|
#ifdef WITH_BACKGROUND
|
2010-11-10 13:09:42 +02:00
|
|
|
{'j', CK_JobsCmd, "j"},
|
|
|
|
#endif /* WITH_BACKGROUND */
|
|
|
|
{0, CK_Ignore_Key, ""}
|
2009-09-17 10:47:56 +00:00
|
|
|
};
|
|
|
|
|
2009-10-23 10:27:28 +04:00
|
|
|
const global_keymap_t default_input_keymap[] = {
|
2009-09-28 15:39:11 +00:00
|
|
|
/* Motion */
|
2010-11-10 13:09:42 +02:00
|
|
|
{XCTRL ('a'), CK_InputBol, "C-a"},
|
|
|
|
{KEY_HOME, CK_InputBol, "Home"},
|
|
|
|
{KEY_A1, CK_InputBol, "A1"},
|
|
|
|
{ALT ('<'), CK_InputBol, "M-<"},
|
|
|
|
{XCTRL ('e'), CK_InputEol, "C-e"},
|
|
|
|
{KEY_END, CK_InputEol, "End"},
|
|
|
|
{ALT ('>'), CK_InputEol, "M->"},
|
|
|
|
{KEY_C1, CK_InputEol, "C1"},
|
|
|
|
{KEY_LEFT, CK_InputMoveLeft, "Left"},
|
|
|
|
{KEY_M_CTRL | KEY_LEFT, CK_InputWordLeft, "C-Left"},
|
|
|
|
{KEY_RIGHT, CK_InputMoveRight, "Right"},
|
|
|
|
{KEY_M_CTRL | KEY_RIGHT, CK_InputWordRight, "C-Right"},
|
|
|
|
|
|
|
|
{XCTRL ('b'), CK_InputBackwardChar, "C-b"},
|
|
|
|
{ALT ('b'), CK_InputBackwardWord, "M-b"},
|
|
|
|
{XCTRL ('f'), CK_InputForwardChar, "C-f"},
|
|
|
|
{ALT ('f'), CK_InputForwardWord, "M-f"},
|
2009-09-28 15:39:11 +00:00
|
|
|
|
|
|
|
/* Editing */
|
2010-11-10 13:09:42 +02:00
|
|
|
{KEY_BACKSPACE, CK_InputBackwardDelete, "BackSpace"},
|
|
|
|
{KEY_DC, CK_InputDeleteChar, "Delete"},
|
|
|
|
{ALT ('d'), CK_InputKillWord, "M-d"},
|
|
|
|
{ALT (KEY_BACKSPACE), CK_InputBackwardKillWord, "M-BackSpace"},
|
2009-09-28 15:39:11 +00:00
|
|
|
|
|
|
|
/* Region manipulation */
|
2010-11-10 13:09:42 +02:00
|
|
|
{XCTRL ('w'), CK_InputKillRegion, "C-w"},
|
|
|
|
{ALT ('w'), CK_InputKillSave, "M-w"},
|
|
|
|
{XCTRL ('y'), CK_InputYank, "C-y"},
|
|
|
|
{XCTRL ('k'), CK_InputKillLine, "C-k"},
|
2009-09-28 15:39:11 +00:00
|
|
|
|
|
|
|
/* History */
|
2010-11-10 13:09:42 +02:00
|
|
|
{ALT ('p'), CK_InputHistoryPrev, "M-p"},
|
|
|
|
{ALT ('n'), CK_InputHistoryNext, "M-n"},
|
|
|
|
{ALT ('h'), CK_InputHistoryShow, "M-h"},
|
2009-09-28 15:39:11 +00:00
|
|
|
|
|
|
|
/* Completion */
|
2010-11-10 13:09:42 +02:00
|
|
|
{ALT ('\t'), CK_InputComplete, "M-tab"},
|
2009-10-24 12:58:02 +04:00
|
|
|
|
2010-11-10 13:09:42 +02:00
|
|
|
{0, CK_Ignore_Key, ""}
|
2009-09-28 15:39:11 +00:00
|
|
|
};
|
2009-09-17 10:47:56 +00:00
|
|
|
|
2010-08-12 13:17:58 +04:00
|
|
|
const global_keymap_t default_listbox_keymap[] = {
|
2010-11-10 13:09:42 +02:00
|
|
|
{KEY_UP, CK_ListboxMoveUp, "Up"},
|
|
|
|
{XCTRL ('p'), CK_ListboxMoveUp, "C-p"},
|
|
|
|
{KEY_DOWN, CK_ListboxMoveDown, "Down"},
|
|
|
|
{XCTRL ('n'), CK_ListboxMoveDown, "C-n"},
|
|
|
|
{KEY_HOME, CK_ListboxMoveHome, "Home"},
|
|
|
|
{ALT ('<'), CK_ListboxMoveHome, "M-<"},
|
|
|
|
{KEY_A1, CK_ListboxMoveHome, "A1"},
|
|
|
|
{KEY_END, CK_ListboxMoveEnd, "End"},
|
|
|
|
{ALT ('>'), CK_ListboxMoveEnd, "M->"},
|
|
|
|
{KEY_C1, CK_ListboxMoveEnd, "C1"},
|
|
|
|
{KEY_PPAGE, CK_ListboxMovePgUp, "PgUp"},
|
|
|
|
{ALT ('v'), CK_ListboxMovePgUp, "M-v"},
|
|
|
|
{KEY_NPAGE, CK_ListboxMovePgDn, "PgDn"},
|
|
|
|
{XCTRL ('v'), CK_ListboxMovePgDn, "C-v"},
|
|
|
|
{KEY_DC, CK_ListboxDeleteItem, "Delete"},
|
|
|
|
{'d', CK_ListboxDeleteItem, "d"},
|
|
|
|
{KEY_M_SHIFT | KEY_DC, CK_ListboxDeleteAll, "S-Delete"},
|
|
|
|
{'D', CK_ListboxDeleteAll, "D"},
|
|
|
|
|
|
|
|
{0, CK_Ignore_Key, ""}
|
2010-08-12 13:17:58 +04:00
|
|
|
};
|
|
|
|
|
|
|
|
#ifdef USE_DIFF_VIEW
|
2010-03-03 16:09:15 +03:00
|
|
|
/* diff viewer */
|
|
|
|
const global_keymap_t default_diff_keymap[] = {
|
|
|
|
|
2010-11-10 13:09:42 +02:00
|
|
|
{'s', CK_DiffDisplaySymbols, "s"},
|
|
|
|
{'l', CK_DiffDisplayNumbers, "l"},
|
|
|
|
{'f', CK_DiffFull, "f"},
|
|
|
|
{'=', CK_DiffEqual, "="},
|
|
|
|
{'>', CK_DiffSplitMore, ">"},
|
|
|
|
{'<', CK_DiffSplitLess, "<"},
|
|
|
|
{'2', CK_DiffSetTab2, "2"},
|
|
|
|
{'3', CK_DiffSetTab3, "3"},
|
|
|
|
{'4', CK_DiffSetTab4, "4"},
|
|
|
|
{'8', CK_DiffSetTab8, "8"},
|
|
|
|
{XCTRL ('u'), CK_DiffSwapPanel, "C-u"},
|
|
|
|
{XCTRL ('r'), CK_DiffRedo, "C-r"},
|
|
|
|
{XCTRL ('o'), CK_ShowCommandLine, "C-o"},
|
|
|
|
{'n', CK_DiffNextHunk, "n"},
|
|
|
|
{'p', CK_DiffPrevHunk, "p"},
|
|
|
|
{'g', CK_DiffGoto, "g"},
|
|
|
|
{'G', CK_DiffGoto, "G"},
|
|
|
|
{KEY_M_CTRL | KEY_HOME, CK_DiffBOF, "C-Home"},
|
|
|
|
{KEY_M_CTRL | KEY_END, CK_DiffEOF, "C-End"},
|
|
|
|
{KEY_DOWN, CK_DiffDown, "Down"},
|
|
|
|
{KEY_UP, CK_DiffUp, "Up"},
|
|
|
|
{KEY_M_CTRL | KEY_LEFT, CK_DiffQuickLeft, "C-Left"},
|
|
|
|
{KEY_M_CTRL | KEY_RIGHT, CK_DiffQuickRight, "C-Right"},
|
|
|
|
{KEY_LEFT, CK_DiffLeft, "Left"},
|
|
|
|
{KEY_RIGHT, CK_DiffRight, "Right"},
|
|
|
|
{KEY_NPAGE, CK_DiffPageDown, "Down"},
|
|
|
|
{KEY_PPAGE, CK_DiffPageUp, "Up"},
|
|
|
|
{KEY_HOME, CK_DiffHome, "Home"},
|
|
|
|
{KEY_END, CK_DiffEnd, "End"},
|
|
|
|
{'q', CK_DiffQuit, "q"},
|
|
|
|
{'Q', CK_DiffQuit, "Q"},
|
|
|
|
{XCTRL ('g'), CK_DiffQuit, "C-g"},
|
|
|
|
{ESC_CHAR, CK_DiffQuit, "Esc"},
|
|
|
|
|
|
|
|
{KEY_F (1), CK_DiffHelp, "F1"},
|
|
|
|
{KEY_F (4), CK_DiffEditCurrent, "F4"},
|
|
|
|
{KEY_F (5), CK_DiffMergeCurrentHunk, "F5"},
|
|
|
|
{KEY_F (7), CK_DiffSearch, "F7"},
|
|
|
|
{KEY_F (17), CK_DiffContinueSearch, "S-F7"},
|
|
|
|
{KEY_F (9), CK_DiffOptions, "F9"},
|
|
|
|
{KEY_F (10), CK_DiffQuit, "F10"},
|
|
|
|
{KEY_F (14), CK_DiffEditOther, "S-F4"},
|
|
|
|
|
|
|
|
{0, CK_Ignore_Key, ""}
|
2010-03-03 16:09:15 +03:00
|
|
|
};
|
2010-08-12 13:17:58 +04:00
|
|
|
#endif
|
2010-03-03 16:09:15 +03:00
|
|
|
|
2010-11-10 13:09:42 +02:00
|
|
|
/*** file scope macro definitions ****************************************************************/
|
|
|
|
|
|
|
|
/*** file scope type declarations ****************************************************************/
|
|
|
|
|
|
|
|
/*** file scope variables ************************************************************************/
|
|
|
|
|
|
|
|
static name_keymap_t command_names[] = {
|
|
|
|
#ifdef USE_INTERNAL_EDIT
|
|
|
|
{"EditNoCommand", CK_Ignore_Key},
|
|
|
|
{"EditIgnoreKey", CK_Ignore_Key},
|
|
|
|
{"EditBackSpace", CK_BackSpace},
|
|
|
|
{"EditDelete", CK_Delete},
|
|
|
|
{"EditEnter", CK_Enter},
|
|
|
|
{"EditPageUp", CK_Page_Up},
|
|
|
|
{"EditPageDown", CK_Page_Down},
|
|
|
|
{"EditLeft", CK_Left},
|
|
|
|
{"EditRight", CK_Right},
|
|
|
|
{"EditWordLeft", CK_Word_Left},
|
|
|
|
{"EditWordRight", CK_Word_Right},
|
|
|
|
{"EditUp", CK_Up},
|
|
|
|
{"EditDown", CK_Down},
|
|
|
|
{"EditHome", CK_Home},
|
|
|
|
{"EditEnd", CK_End},
|
|
|
|
{"EditTab", CK_Tab},
|
|
|
|
{"EditUndo", CK_Undo},
|
|
|
|
{"EditBeginningOfText", CK_Beginning_Of_Text},
|
|
|
|
{"EditEndOfText", CK_End_Of_Text},
|
|
|
|
{"EditScrollUp", CK_Scroll_Up},
|
|
|
|
{"EditScrollDown", CK_Scroll_Down},
|
|
|
|
{"EditReturn", CK_Return},
|
|
|
|
{"EditBeginPage", CK_Begin_Page},
|
|
|
|
{"EditEndPage", CK_End_Page},
|
|
|
|
{"EditDeleteWordLeft", CK_Delete_Word_Left},
|
|
|
|
{"EditDeleteWordRight", CK_Delete_Word_Right},
|
|
|
|
{"EditParagraphUp", CK_Paragraph_Up},
|
|
|
|
{"EditParagraphDown", CK_Paragraph_Down},
|
|
|
|
{"EditMenu", CK_Menu},
|
|
|
|
{"EditSave", CK_Save},
|
|
|
|
{"EditLoad", CK_Load},
|
|
|
|
{"EditNew", CK_New},
|
|
|
|
{"EditSaveas", CK_Save_As},
|
|
|
|
{"EditMark", CK_Mark},
|
|
|
|
{"EditCopy", CK_Copy},
|
|
|
|
{"EditMove", CK_Move},
|
|
|
|
{"EditRemove", CK_Remove},
|
|
|
|
{"EditMarkAll", CK_Mark_All},
|
|
|
|
{"EditUnmark", CK_Unmark},
|
|
|
|
{"EditSaveBlock", CK_Save_Block},
|
|
|
|
{"EditColumnMark", CK_Column_Mark},
|
|
|
|
{"EditFind", CK_Find},
|
|
|
|
{"EditFindAgain", CK_Find_Again},
|
|
|
|
{"EditReplace", CK_Replace},
|
|
|
|
{"EditReplaceAgain", CK_Replace_Again},
|
|
|
|
{"EditCompleteWord", CK_Complete_Word},
|
|
|
|
|
|
|
|
#if 0
|
|
|
|
{"EditDebugStart", CK_Debug_Start},
|
|
|
|
{"EditDebugStop", CK_Debug_Stop},
|
|
|
|
{"EditDebugToggleBreak", CK_Debug_Toggle_Break},
|
|
|
|
{"EditDebugClear", CK_Debug_Clear},
|
|
|
|
{"EditDebugNext", CK_Debug_Next},
|
|
|
|
{"EditDebugStep", CK_Debug_Step},
|
|
|
|
{"EditDebugBackTrace", CK_Debug_Back_Trace},
|
|
|
|
{"EditDebugContinue", CK_Debug_Continue},
|
|
|
|
{"EditDebugEnterCommand", CK_Debug_Enter_Command},
|
|
|
|
{"EditDebugUntilCurser", CK_Debug_Until_Curser},
|
|
|
|
#endif
|
|
|
|
{"EditInsertFile", CK_Insert_File},
|
|
|
|
{"EditQuit", CK_Quit},
|
|
|
|
{"EditToggleInsert", CK_Toggle_Insert},
|
|
|
|
{"EditHelp", CK_Help},
|
|
|
|
{"EditDate", CK_Date},
|
|
|
|
{"EditRefresh", CK_Refresh},
|
|
|
|
{"EditGoto", CK_Goto},
|
|
|
|
{"EditDeleteLine", CK_Delete_Line},
|
|
|
|
{"EditDeleteToLineEnd", CK_Delete_To_Line_End},
|
|
|
|
{"EditDeleteToLineBegin", CK_Delete_To_Line_Begin},
|
|
|
|
{"EditManPage", CK_Man_Page},
|
|
|
|
{"EditSort", CK_Sort},
|
|
|
|
{"EditMail", CK_Mail},
|
|
|
|
{"EditCancel", CK_Cancel},
|
|
|
|
{"EditComplete", CK_Complete},
|
|
|
|
{"EditParagraphFormat", CK_Paragraph_Format},
|
|
|
|
{"EditUtil", CK_Util},
|
|
|
|
{"EditTypeLoadPython", CK_Type_Load_Python},
|
|
|
|
{"EditFindFile", CK_Find_File},
|
|
|
|
{"EditCtags", CK_Ctags},
|
|
|
|
{"EditMatchBracket", CK_Match_Bracket},
|
|
|
|
{"EditTerminal", CK_Terminal},
|
|
|
|
{"EditTerminalApp", CK_Terminal_App},
|
|
|
|
{"EditExtCmd", CK_ExtCmd},
|
|
|
|
{"EditUserMenu", CK_User_Menu},
|
|
|
|
{"EditBeginRecordMacro", CK_Begin_Record_Macro},
|
|
|
|
{"EditEndRecordMacro", CK_End_Record_Macro},
|
|
|
|
{"EditDeleteMacro", CK_Delete_Macro},
|
|
|
|
{"EditToggleBookmark", CK_Toggle_Bookmark},
|
|
|
|
{"EditFlushBookmarks", CK_Flush_Bookmarks},
|
|
|
|
{"EditNextBookmark", CK_Next_Bookmark},
|
|
|
|
{"EditPrevBookmark", CK_Prev_Bookmark},
|
|
|
|
{"EditPageUpHighlight", CK_Page_Up_Highlight},
|
|
|
|
{"EditPageDownHighlight", CK_Page_Down_Highlight},
|
|
|
|
{"EditLeftHighlight", CK_Left_Highlight},
|
|
|
|
{"EditRightHighlight", CK_Right_Highlight},
|
|
|
|
{"EditWordLeftHighlight", CK_Word_Left_Highlight},
|
|
|
|
{"EditWordRightHighlight", CK_Word_Right_Highlight},
|
|
|
|
{"EditUpHighlight", CK_Up_Highlight},
|
|
|
|
{"EditDownHighlight", CK_Down_Highlight},
|
|
|
|
{"EditHomeHighlight", CK_Home_Highlight},
|
|
|
|
{"EditEndHighlight", CK_End_Highlight},
|
|
|
|
{"EditBeginningOfTextHighlight", CK_Beginning_Of_Text_Highlight},
|
|
|
|
{"EditEndOfTextHighlight", CK_End_Of_Text_Highlight},
|
|
|
|
{"EditBeginPageHighlight", CK_Begin_Page_Highlight},
|
|
|
|
{"EditEndPageHighlight", CK_End_Page_Highlight},
|
|
|
|
{"EditScrollUpHighlight", CK_Scroll_Up_Highlight},
|
|
|
|
{"EditScrollDownHighlight", CK_Scroll_Down_Highlight},
|
|
|
|
{"EditParagraphUpHighlight", CK_Paragraph_Up_Highlight},
|
|
|
|
{"EditParagraphDownHighlight", CK_Paragraph_Down_Highlight},
|
|
|
|
|
|
|
|
{"EditPageUpAltHighlight", CK_Page_Up_Alt_Highlight},
|
|
|
|
{"EditPageDownAltHighlight", CK_Page_Down_Alt_Highlight},
|
|
|
|
{"EditLeftAltHighlight", CK_Left_Alt_Highlight},
|
|
|
|
{"EditRightAltHighlight", CK_Right_Alt_Highlight},
|
|
|
|
{"EditWordLeftAltHighlight", CK_Word_Left_Alt_Highlight},
|
|
|
|
{"EditWordRightAltHighlight", CK_Word_Right_Alt_Highlight},
|
|
|
|
{"EditUpAltHighlight", CK_Up_Alt_Highlight},
|
|
|
|
{"EditDownAltHighlight", CK_Down_Alt_Highlight},
|
|
|
|
{"EditHomeAltHighlight", CK_Home_Alt_Highlight},
|
|
|
|
{"EditEndAltHighlight", CK_End_Alt_Highlight},
|
|
|
|
{"EditBeginningOfTextAltHighlight", CK_Beginning_Of_Text_Alt_Highlight},
|
|
|
|
{"EditEndOfTextAltHighlight", CK_End_Of_Text_Alt_Highlight},
|
|
|
|
{"EditBeginPageAltHighlight", CK_Begin_Page_Alt_Highlight},
|
|
|
|
{"EditEndPageAltHighlight", CK_End_Page_Alt_Highlight},
|
|
|
|
{"EditScrollUpAltHighlight", CK_Scroll_Up_Alt_Highlight},
|
|
|
|
{"EditScrollDownAltHighlight", CK_Scroll_Down_Alt_Highlight},
|
|
|
|
{"EditParagraphUpAltHighlight", CK_Paragraph_Up_Alt_Highlight},
|
|
|
|
{"EditParagraphDownAltHighlight", CK_Paragraph_Down_Alt_Highlight},
|
|
|
|
|
|
|
|
{"EditShiftBlockLeft", CK_Shift_Block_Left},
|
|
|
|
{"EditShiftBlockRight", CK_Shift_Block_Right},
|
|
|
|
|
|
|
|
{"EditXStore", CK_XStore},
|
|
|
|
{"EditXCut", CK_XCut},
|
|
|
|
{"EditXPaste", CK_XPaste},
|
|
|
|
{"EditSelectionHistory", CK_Selection_History},
|
|
|
|
{"EditShell", CK_Shell},
|
|
|
|
{"EditInsertLiteral", CK_Insert_Literal},
|
|
|
|
{"EditExecuteMacro", CK_Execute_Macro},
|
|
|
|
{"EditBeginOrEndMacro", CK_Begin_End_Macro},
|
|
|
|
{"EditExtMode", CK_Ext_Mode},
|
|
|
|
{"EditToggleLineState", CK_Toggle_Line_State},
|
|
|
|
{"EditToggleTabTWS", CK_Toggle_Tab_TWS},
|
|
|
|
{"EditToggleSyntax", CK_Toggle_Syntax},
|
|
|
|
{"EditToggleShowMargin", CK_Toggle_Show_Margin},
|
|
|
|
{"EditFindDefinition", CK_Find_Definition},
|
|
|
|
{"EditLoadPrevFile", CK_Load_Prev_File},
|
|
|
|
{"EditLoadNextFile", CK_Load_Next_File},
|
|
|
|
{"EditOptions", CK_Edit_Options},
|
|
|
|
{"EditSaveMode", CK_Edit_Save_Mode},
|
|
|
|
{"EditChooseSyntax", CK_Choose_Syntax},
|
|
|
|
{"EditAbout", CK_About},
|
|
|
|
|
|
|
|
#if 0
|
|
|
|
{"EditFocusNext", CK_Focus_Next},
|
|
|
|
{"EditFocusPrev", CK_Focus_Prev},
|
|
|
|
{"EditHeightInc", CK_Height_Inc},
|
|
|
|
{"EditHeightDec", CK_Height_Dec},
|
|
|
|
{"EditMake", CK_Make},
|
|
|
|
{"EditErrorNext", CK_Error_Next},
|
|
|
|
{"EditErrorPrev", CK_Error_Prev},
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if 0
|
|
|
|
{"EditSaveDesktop", CK_Save_Desktop},
|
|
|
|
{"EditNewWindow", CK_New_Window},
|
|
|
|
{"EditCycle", CK_Cycle},
|
|
|
|
{"EditSaveAndQuit", CK_Save_And_Quit},
|
|
|
|
{"EditRunAnother", CK_Run_Another},
|
|
|
|
{"EditCheckSaveAndQuit", CK_Check_Save_And_Quit},
|
|
|
|
{"EditMaximize", CK_Maximize},
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif /* USE_INTERNAL_EDIT */
|
|
|
|
|
|
|
|
/* viewer */
|
|
|
|
{"ViewHelp", CK_ViewHelp},
|
|
|
|
{"ViewToggleWrapMode", CK_ViewToggleWrapMode},
|
|
|
|
{"ViewToggleHexEditMode", CK_ViewToggleHexEditMode},
|
|
|
|
{"ViewQuit", CK_ViewQuit},
|
|
|
|
{"ViewToggleHexMode", CK_ViewToggleHexMode},
|
|
|
|
{"ViewGoto", CK_ViewGoto},
|
|
|
|
{"ViewHexEditSave", CK_ViewHexEditSave},
|
|
|
|
{"ViewSearch", CK_ViewSearch},
|
|
|
|
{"ViewToggleMagicMode", CK_ViewToggleMagicMode},
|
|
|
|
{"ViewToggleNroffMode", CK_ViewToggleNroffMode},
|
|
|
|
{"ViewContinueSearch", CK_ViewContinueSearch},
|
|
|
|
{"ViewGotoBookmark", CK_ViewGotoBookmark},
|
|
|
|
{"ViewNewBookmark", CK_ViewNewBookmark},
|
|
|
|
{"ViewMoveUp", CK_ViewMoveUp},
|
|
|
|
{"ViewMoveDown", CK_ViewMoveDown},
|
|
|
|
{"ViewMoveLeft", CK_ViewMoveLeft},
|
|
|
|
{"ViewMoveRight", CK_ViewMoveRight},
|
|
|
|
{"ViewMoveLeft10", CK_ViewMoveLeft10},
|
|
|
|
{"ViewMoveRight10", CK_ViewMoveRight10},
|
|
|
|
{"ViewMovePgDn", CK_ViewMovePgDn},
|
|
|
|
{"ViewMovePgUp", CK_ViewMovePgUp},
|
|
|
|
{"ViewMoveHalfPgDn", CK_ViewMoveHalfPgDn},
|
|
|
|
{"ViewMoveHalfPgUp", CK_ViewMoveHalfPgUp},
|
|
|
|
{"ViewMoveToBol", CK_ViewMoveToBol},
|
|
|
|
{"ViewMoveToEol", CK_ViewMoveToEol},
|
|
|
|
{"ViewMoveTop", CK_ViewMoveTop},
|
|
|
|
{"ViewMoveBottom", CK_ViewMoveBottom},
|
|
|
|
{"ViewNextFile", CK_ViewNextFile},
|
|
|
|
{"ViewPrevFile", CK_ViewPrevFile},
|
|
|
|
{"ViewToggleRuler", CK_ViewToggleRuler},
|
|
|
|
{"ViewToggleHexNavMode", CK_ViewToggleHexNavMode},
|
|
|
|
|
|
|
|
/* help */
|
|
|
|
{"HelpHelp", CK_HelpHelp},
|
|
|
|
{"HelpIndex", CK_HelpIndex},
|
|
|
|
{"HelpBack", CK_HelpBack},
|
|
|
|
{"HelpQuit", CK_HelpQuit},
|
|
|
|
{"HelpMoveUp", CK_HelpMoveUp},
|
|
|
|
{"HelpMoveDown", CK_HelpMoveDown},
|
|
|
|
{"HelpMovePgDn", CK_HelpMovePgDn},
|
|
|
|
{"HelpMovePgUp", CK_HelpMovePgUp},
|
|
|
|
{"HelpMoveHalfPgDn", CK_HelpMoveHalfPgDn},
|
|
|
|
{"HelpMoveHalfPgUp", CK_HelpMoveHalfPgUp},
|
|
|
|
{"HelpMoveTop", CK_HelpMoveTop},
|
|
|
|
{"HelpMoveBottom", CK_HelpMoveBottom},
|
|
|
|
{"HelpSelectLink", CK_HelpSelectLink},
|
|
|
|
{"HelpNextLink", CK_HelpNextLink},
|
|
|
|
{"HelpPrevLink", CK_HelpPrevLink},
|
|
|
|
{"HelpNextNode", CK_HelpNextNode},
|
|
|
|
{"HelpPrevNode", CK_HelpPrevNode},
|
|
|
|
|
|
|
|
/* tree */
|
|
|
|
{"TreeHelp", CK_TreeHelp},
|
|
|
|
{"TreeForget", CK_TreeForget},
|
|
|
|
{"TreeToggleNav", CK_TreeToggleNav},
|
|
|
|
{"TreeCopy", CK_TreeCopy},
|
|
|
|
{"TreeMove", CK_TreeMove},
|
|
|
|
{"TreeMake", CK_TreeMake},
|
|
|
|
{"TreeMoveUp", CK_TreeMoveUp},
|
|
|
|
{"TreeMoveDown", CK_TreeMoveDown},
|
|
|
|
{"TreeMoveLeft", CK_TreeMoveLeft},
|
|
|
|
{"TreeMoveRight", CK_TreeMoveRight},
|
|
|
|
{"TreeMoveHome", CK_TreeMoveHome},
|
|
|
|
{"TreeMoveEnd", CK_TreeMoveEnd},
|
|
|
|
{"TreeMovePgUp", CK_TreeMovePgUp},
|
|
|
|
{"TreeMovePgDn", CK_TreeMovePgDn},
|
|
|
|
{"TreeOpen", CK_TreeOpen},
|
|
|
|
{"TreeRescan", CK_TreeRescan},
|
|
|
|
{"TreeStartSearch", CK_TreeStartSearch},
|
|
|
|
{"TreeRemove", CK_TreeRemove},
|
|
|
|
|
|
|
|
/* main commands */
|
|
|
|
{"CmdHelp", CK_HelpCmd},
|
|
|
|
{"CmdMenu", CK_MenuCmd},
|
|
|
|
{"CmdChmod", CK_ChmodCmd},
|
|
|
|
{"CmdMenuLastSelected", CK_MenuLastSelectedCmd},
|
|
|
|
{"CmdSingleDirsize", CK_SingleDirsizeCmd},
|
|
|
|
{"CmdCopyCurrentPathname", CK_CopyCurrentPathname},
|
|
|
|
{"CmdCopyOtherPathname", CK_CopyOtherPathname},
|
|
|
|
{"CmdSuspend", CK_SuspendCmd},
|
|
|
|
{"CmdToggleListing", CK_ToggleListingCmd},
|
|
|
|
{"CmdChownAdvanced", CK_ChownAdvancedCmd},
|
|
|
|
{"CmdChown", CK_ChownCmd},
|
|
|
|
{"CmdCompareDirs", CK_CompareDirsCmd},
|
|
|
|
{"CmdConfigureBox", CK_ConfigureBox},
|
|
|
|
{"CmdConfigureVfs", CK_ConfigureVfs},
|
|
|
|
{"CmdConfirmBox", CK_ConfirmBox},
|
|
|
|
{"CmdCopy", CK_CopyCmd},
|
|
|
|
{"CmdDelete", CK_DeleteCmd},
|
|
|
|
{"CmdDirsizes", CK_DirsizesCmd},
|
|
|
|
{"CmdDisplayBitsBox", CK_DisplayBitsBox},
|
|
|
|
{"CmdEdit", CK_EditCmd},
|
|
|
|
#ifdef USE_INTERNAL_EDIT
|
|
|
|
{"CmdEditForceInternal", CK_EditForceInternalCmd},
|
|
|
|
#endif
|
|
|
|
{"CmdEditExtFile", CK_EditExtFileCmd},
|
|
|
|
{"CmdEditFhlFile", CK_EditFhlFileCmd},
|
|
|
|
{"CmdEditMcMenu", CK_EditMcMenuCmd},
|
|
|
|
{"CmdEditSymlink", CK_EditSymlinkCmd},
|
|
|
|
{"CmdEditSyntax", CK_EditSyntaxCmd},
|
|
|
|
{"CmdEditUserMenu", CK_EditUserMenuCmd},
|
|
|
|
{"CmdExternalPanelize", CK_ExternalPanelize},
|
|
|
|
{"CmdFilter", CK_FilterCmd},
|
|
|
|
{"CmdFilteredView", CK_FilteredViewCmd},
|
|
|
|
{"CmdFind", CK_FindCmd},
|
|
|
|
#ifdef ENABLE_VFS_FISH
|
|
|
|
{"CmdFishlink", CK_FishlinkCmd},
|
|
|
|
#endif
|
|
|
|
#ifdef ENABLE_VFS_FTP
|
|
|
|
{"CmdFtplink", CK_FtplinkCmd},
|
|
|
|
#endif
|
|
|
|
{"CmdHistory", CK_HistoryCmd},
|
|
|
|
{"CmdInfo", CK_InfoCmd},
|
|
|
|
#ifdef WITH_BACKGROUND
|
|
|
|
{"CmdJobs", CK_JobsCmd},
|
|
|
|
#endif
|
|
|
|
{"CmdLayout", CK_LayoutBox},
|
|
|
|
{"CmdLearnKeys", CK_LearnKeys},
|
|
|
|
{"CmdLink", CK_LinkCmd},
|
|
|
|
{"CmdChangeListing", CK_ChangeListingCmd},
|
|
|
|
{"CmdListing", CK_ListingCmd},
|
|
|
|
#ifdef LISTMODE_EDITOR
|
|
|
|
{"CmdListmodeCmd", CK_ListmodeCmd}.
|
|
|
|
#endif
|
|
|
|
{"CmdMkdir", CK_MkdirCmd},
|
|
|
|
{"CmdPanelOptions", CK_PanelOptionsBox},
|
|
|
|
{"CmdQuickCd", CK_QuickCdCmd},
|
|
|
|
{"CmdQuickChdir", CK_QuickChdirCmd},
|
|
|
|
{"CmdQuickView", CK_QuickViewCmd},
|
|
|
|
{"CmdQuietQuit", CK_QuietQuitCmd},
|
|
|
|
{"CmdRelativeSymlink", CK_RelativeSymlinkCmd},
|
|
|
|
{"CmdRename", CK_RenameCmd},
|
|
|
|
{"CmdReread", CK_RereadCmd},
|
|
|
|
{"CmdReselectVfs", CK_ReselectVfs},
|
|
|
|
{"CmdReverseSelection", CK_ReverseSelectionCmd},
|
|
|
|
{"CmdSaveSetup", CK_SaveSetupCmd},
|
|
|
|
{"CmdSelect", CK_SelectCmd},
|
|
|
|
#ifdef ENABLE_VFS_SMB
|
|
|
|
{"CmdSmblinkCmd", CK_SmblinkCmd},
|
|
|
|
#endif
|
|
|
|
{"CmdSwapPanel", CK_SwapCmd},
|
|
|
|
{"CmdSymlink", CK_SymlinkCmd},
|
|
|
|
{"CmdTree", CK_TreeCmd},
|
|
|
|
{"CmdTreeBox", CK_TreeBoxCmd},
|
|
|
|
#ifdef ENABLE_VFS_UNDELFS
|
|
|
|
{"CmdUndelete", CK_UndeleteCmd},
|
|
|
|
#endif
|
|
|
|
{"CmdUnselect", CK_UnselectCmd},
|
|
|
|
{"CmdUserMenu", CK_UserMenuCmd},
|
|
|
|
{"CmdUserFileMenu", CK_UserFileMenuCmd},
|
|
|
|
{"CmdView", CK_ViewCmd},
|
|
|
|
{"CmdViewFile", CK_ViewFileCmd},
|
|
|
|
{"CmdCopyCurrentReadlink", CK_CopyCurrentReadlink},
|
|
|
|
{"CmdCopyOtherReadlink", CK_CopyOtherReadlink},
|
|
|
|
{"CmdAddHotlist", CK_AddHotlist},
|
|
|
|
{"CmdQuit", CK_QuitCmd},
|
|
|
|
{"CmdCopyCurrentTagged", CK_CopyCurrentTagged},
|
|
|
|
{"CmdCopyOtherTagged", CK_CopyOtherTagged},
|
|
|
|
{"CmdToggleShowHidden", CK_ToggleShowHidden},
|
|
|
|
{"CmdTogglePanelsSplit", CK_TogglePanelsSplit},
|
|
|
|
#ifdef USE_DIFF_VIEW
|
|
|
|
{"CmdDiffView", CK_DiffViewCmd},
|
|
|
|
#endif
|
|
|
|
{"CmdDialogList", CK_DialogListCmd},
|
|
|
|
{"CmdDialogNext", CK_DialogNextCmd},
|
|
|
|
{"CmdDialogPrev", CK_DialogPrevCmd},
|
|
|
|
|
|
|
|
/* panel */
|
|
|
|
{"PanelChdirOtherPanel", CK_PanelChdirOtherPanel},
|
|
|
|
{"PanelChdirToReadlink", CK_PanelChdirToReadlink},
|
|
|
|
{"PanelCopyLocal", CK_PanelCmdCopyLocal},
|
|
|
|
{"PanelDeleteLocal", CK_PanelCmdDeleteLocal},
|
|
|
|
{"PanelDoEnter", CK_PanelCmdDoEnter},
|
|
|
|
{"PanelEditNew", CK_PanelCmdEditNew},
|
|
|
|
{"PanelRenameLocal", CK_PanelCmdRenameLocal},
|
|
|
|
{"PanelReverseSelection", CK_PanelCmdReverseSelection},
|
|
|
|
{"PanelSelect", CK_PanelCmdSelect},
|
|
|
|
{"PanelUnselect", CK_PanelCmdUnselect},
|
|
|
|
{"PanelViewSimple", CK_PanelCmdViewSimple},
|
|
|
|
{"PanelCtrlNextPage", CK_PanelCtrlNextPage},
|
|
|
|
{"PanelCtrlPrevPage", CK_PanelCtrlPrevPage},
|
|
|
|
{"PanelDirectoryHistoryList", CK_PanelDirectoryHistoryList},
|
|
|
|
{"PanelDirectoryHistoryNext", CK_PanelDirectoryHistoryNext},
|
|
|
|
{"PanelDirectoryHistoryPrev", CK_PanelDirectoryHistoryPrev},
|
|
|
|
{"PanelGotoBottomFile", CK_PanelGotoBottomFile},
|
|
|
|
{"PanelGotoMiddleFile", CK_PanelGotoMiddleFile},
|
|
|
|
{"PanelGotoTopFile", CK_PanelGotoTopFile},
|
|
|
|
{"PanelMarkFile", CK_PanelMarkFile},
|
|
|
|
{"PanelMarkFileDown", CK_PanelMarkFileDown},
|
|
|
|
{"PanelMarkFileUp", CK_PanelMarkFileUp},
|
|
|
|
{"PanelMoveUp", CK_PanelMoveUp},
|
|
|
|
{"PanelMoveDown", CK_PanelMoveDown},
|
|
|
|
{"PanelMoveLeft", CK_PanelMoveLeft},
|
|
|
|
{"PanelMoveRight", CK_PanelMoveRight},
|
|
|
|
{"PanelMoveEnd", CK_PanelMoveEnd},
|
|
|
|
{"PanelMoveHome", CK_PanelMoveHome},
|
|
|
|
{"PanelNextPage", CK_PanelNextPage},
|
|
|
|
{"PanelPrevPage", CK_PanelPrevPage},
|
|
|
|
#ifdef HAVE_CHARSET
|
|
|
|
{"PanelSetPanelEncoding", CK_PanelSetPanelEncoding},
|
|
|
|
#endif
|
|
|
|
{"PanelStartSearch", CK_PanelStartSearch},
|
|
|
|
{"PanelSyncOtherPanel", CK_PanelSyncOtherPanel},
|
|
|
|
{"PanelToggleSortOrderNext", CK_PanelToggleSortOrderNext},
|
|
|
|
{"PanelToggleSortOrderPrev", CK_PanelToggleSortOrderPrev},
|
|
|
|
{"PanelSelectSortOrder", CK_PanelSelectSortOrder},
|
|
|
|
{"PanelReverseSort", CK_PanelReverseSort},
|
|
|
|
{"PanelSortOrderByName", CK_PanelSortOrderByName},
|
|
|
|
{"PanelSortOrderByExt", CK_PanelSortOrderByExt},
|
|
|
|
{"PanelSortOrderBySize", CK_PanelSortOrderBySize},
|
|
|
|
{"PanelSortOrderByMTime", CK_PanelSortOrderByMTime},
|
|
|
|
|
|
|
|
/* input line */
|
|
|
|
{"InputBol", CK_InputBol},
|
|
|
|
{"InputEol", CK_InputEol},
|
|
|
|
{"InputMoveLeft", CK_InputMoveLeft},
|
|
|
|
{"InputWordLeft", CK_InputWordLeft},
|
|
|
|
{"InputBackwardChar", CK_InputBackwardChar},
|
|
|
|
{"InputBackwardWord", CK_InputBackwardWord},
|
|
|
|
{"InputMoveRight", CK_InputMoveRight},
|
|
|
|
{"InputWordRight", CK_InputWordRight},
|
|
|
|
{"InputForwardChar", CK_InputForwardChar},
|
|
|
|
{"InputForwardWord", CK_InputForwardWord},
|
|
|
|
{"InputBackwardDelete", CK_InputBackwardDelete},
|
|
|
|
{"InputDeleteChar", CK_InputDeleteChar},
|
|
|
|
{"InputKillWord", CK_InputKillWord},
|
|
|
|
{"InputBackwardKillWord", CK_InputBackwardKillWord},
|
|
|
|
{"InputSetMark", CK_InputSetMark},
|
|
|
|
{"InputKillRegion", CK_InputKillRegion},
|
|
|
|
{"InputYank", CK_InputYank},
|
|
|
|
{"InputKillLine", CK_InputKillLine},
|
|
|
|
{"InputHistoryPrev", CK_InputHistoryPrev},
|
|
|
|
{"InputHistoryNext", CK_InputHistoryNext},
|
|
|
|
{"InputHistoryShow", CK_InputHistoryShow},
|
|
|
|
{"InputComplete", CK_InputComplete},
|
|
|
|
{"InputXStore", CK_InputKillSave},
|
|
|
|
{"InputXPaste", CK_InputPaste},
|
|
|
|
{"InputClearLine", CK_InputClearLine},
|
|
|
|
{"InputLeftHighlight", CK_InputLeftHighlight},
|
|
|
|
{"InputRightHighlight", CK_InputRightHighlight},
|
|
|
|
{"InputWordLeftHighlight", CK_InputWordLeftHighlight},
|
|
|
|
{"InputWordRightHighlight", CK_InputWordRightHighlight},
|
|
|
|
{"InputBolHighlight", CK_InputBolHighlight},
|
|
|
|
{"InputEolHighlight", CK_InputEolHighlight},
|
|
|
|
|
|
|
|
/* listbox */
|
|
|
|
{"ListboxMoveUp", CK_ListboxMoveUp},
|
|
|
|
{"ListboxMoveDown", CK_ListboxMoveDown},
|
|
|
|
{"ListboxMoveHome", CK_ListboxMoveHome},
|
|
|
|
{"ListboxMoveEnd", CK_ListboxMoveEnd},
|
|
|
|
{"ListboxMovePgUp", CK_ListboxMovePgUp},
|
|
|
|
{"ListboxMovePgDn", CK_ListboxMovePgDn},
|
|
|
|
{"ListboxDeleteItem", CK_ListboxDeleteItem},
|
|
|
|
{"ListboxDeleteAll", CK_ListboxDeleteAll},
|
|
|
|
|
|
|
|
/* common */
|
|
|
|
{"ExtMap1", CK_StartExtMap1},
|
|
|
|
{"ExtMap2", CK_StartExtMap2},
|
|
|
|
{"ShowCommandLine", CK_ShowCommandLine},
|
|
|
|
{"SelectCodepage", CK_SelectCodepage},
|
|
|
|
|
|
|
|
/* dialog */
|
|
|
|
{"DialogOK", CK_DialogOK},
|
|
|
|
{"DialogCancel", CK_DialogCancel},
|
|
|
|
{"DialogPrevItem", CK_DialogPrevItem},
|
|
|
|
{"DialogNextItem", CK_DialogNextItem},
|
|
|
|
{"DialogHelp", CK_DialogHelp},
|
|
|
|
{"DialogSuspend", CK_DialogSuspend},
|
|
|
|
{"DialogRefresh", CK_DialogRefresh},
|
|
|
|
|
|
|
|
#ifdef USE_DIFF_VIEW
|
|
|
|
/* diff viewer */
|
|
|
|
{"DiffDisplaySymbols", CK_DiffDisplaySymbols},
|
|
|
|
{"DiffDisplayNumbers", CK_DiffDisplayNumbers},
|
|
|
|
{"DiffFull", CK_DiffFull},
|
|
|
|
{"DiffEqual", CK_DiffEqual},
|
|
|
|
{"DiffSplitMore", CK_DiffSplitMore},
|
|
|
|
{"DiffSplitLess", CK_DiffSplitLess},
|
|
|
|
{"DiffShowDiff", CK_DiffShowDiff},
|
|
|
|
{"DiffSetTab2", CK_DiffSetTab2},
|
|
|
|
{"DiffSetTab3", CK_DiffSetTab3},
|
|
|
|
{"DiffSetTab4", CK_DiffSetTab4},
|
|
|
|
{"DiffSetTab8", CK_DiffSetTab8},
|
|
|
|
{"DiffSwapPanel", CK_DiffSwapPanel},
|
|
|
|
{"DiffRedo", CK_DiffRedo},
|
|
|
|
{"DiffNextHunk", CK_DiffNextHunk},
|
|
|
|
{"DiffPrevHunk", CK_DiffPrevHunk},
|
|
|
|
{"DiffGoto", CK_DiffGoto},
|
|
|
|
{"DiffEditCurrent", CK_DiffEditCurrent},
|
|
|
|
{"DiffEditOther", CK_DiffEditOther},
|
|
|
|
{"DiffSearch", CK_DiffSearch},
|
|
|
|
{"DiffContinueSearch", CK_DiffContinueSearch},
|
|
|
|
{"DiffEOF", CK_DiffEOF},
|
|
|
|
{"DiffBOF", CK_DiffBOF},
|
|
|
|
{"DiffDown", CK_DiffDown},
|
|
|
|
{"DiffUp", CK_DiffUp},
|
|
|
|
{"DiffLeft", CK_DiffLeft},
|
|
|
|
{"DiffRight", CK_DiffRight},
|
|
|
|
{"DiffPageDown", CK_DiffPageDown},
|
|
|
|
{"DiffPageUp", CK_DiffPageUp},
|
|
|
|
{"DiffHome", CK_DiffHome},
|
|
|
|
{"DiffEnd", CK_DiffEnd},
|
|
|
|
{"DiffQuit", CK_DiffQuit},
|
|
|
|
{"DiffHelp", CK_DiffHelp},
|
|
|
|
{"SelectCodepage", CK_SelectCodepage},
|
|
|
|
{"DiffMergeCurrentHunk", CK_DiffMergeCurrentHunk},
|
|
|
|
{"DiffSave", CK_DiffSave},
|
|
|
|
{"DiffOptions", CK_DiffOptions},
|
|
|
|
#endif
|
|
|
|
|
|
|
|
{NULL, CK_Ignore_Key}
|
|
|
|
};
|
|
|
|
|
|
|
|
static const size_t num_command_names = sizeof (command_names) / sizeof (command_names[0]) - 1;
|
|
|
|
|
|
|
|
/*** file scope functions ************************************************************************/
|
|
|
|
/* --------------------------------------------------------------------------------------------- */
|
|
|
|
|
2009-11-03 19:39:16 +03:00
|
|
|
static int
|
|
|
|
name_keymap_comparator (const void *p1, const void *p2)
|
|
|
|
{
|
|
|
|
const name_keymap_t *m1 = (const name_keymap_t *) p1;
|
|
|
|
const name_keymap_t *m2 = (const name_keymap_t *) p2;
|
|
|
|
|
|
|
|
return str_casecmp (m1->name, m2->name);
|
|
|
|
}
|
|
|
|
|
2010-11-10 13:09:42 +02:00
|
|
|
/* --------------------------------------------------------------------------------------------- */
|
|
|
|
|
2009-11-23 21:30:43 +03:00
|
|
|
static inline void
|
2009-11-03 19:39:16 +03:00
|
|
|
sort_command_names (void)
|
|
|
|
{
|
|
|
|
static gboolean has_been_sorted = FALSE;
|
|
|
|
|
2010-11-10 13:09:42 +02:00
|
|
|
if (!has_been_sorted)
|
|
|
|
{
|
|
|
|
qsort (command_names, num_command_names,
|
|
|
|
sizeof (command_names[0]), &name_keymap_comparator);
|
|
|
|
has_been_sorted = TRUE;
|
2009-11-03 19:39:16 +03:00
|
|
|
}
|
|
|
|
}
|
2009-09-17 10:47:56 +00:00
|
|
|
|
2010-11-10 13:09:42 +02:00
|
|
|
/* --------------------------------------------------------------------------------------------- */
|
|
|
|
|
2009-10-30 03:12:04 +02:00
|
|
|
static void
|
2010-11-10 13:09:42 +02:00
|
|
|
keymap_add (GArray * keymap, long key, unsigned long cmd, const char *caption)
|
2009-07-05 15:04:42 +00:00
|
|
|
{
|
2010-11-10 13:09:42 +02:00
|
|
|
if (key != 0 && cmd != CK_Ignore_Key)
|
|
|
|
{
|
2009-10-23 10:27:28 +04:00
|
|
|
global_keymap_t new_bind;
|
|
|
|
|
2009-09-11 14:13:17 +00:00
|
|
|
new_bind.key = key;
|
|
|
|
new_bind.command = cmd;
|
2009-10-09 15:46:08 +04:00
|
|
|
g_snprintf (new_bind.caption, sizeof (new_bind.caption), "%s", caption);
|
|
|
|
g_array_append_val (keymap, new_bind);
|
2009-09-10 15:21:08 +00:00
|
|
|
}
|
2009-07-05 15:04:42 +00:00
|
|
|
}
|
|
|
|
|
2010-11-10 13:09:42 +02:00
|
|
|
/* --------------------------------------------------------------------------------------------- */
|
|
|
|
/*** public functions ****************************************************************************/
|
|
|
|
/* --------------------------------------------------------------------------------------------- */
|
|
|
|
|
2009-07-05 15:04:42 +00:00
|
|
|
void
|
2010-11-10 13:09:42 +02:00
|
|
|
keybind_cmd_bind (GArray * keymap, const char *keybind, unsigned long action)
|
2009-07-05 15:04:42 +00:00
|
|
|
{
|
2009-10-09 15:46:08 +04:00
|
|
|
char *caption = NULL;
|
2009-11-06 14:41:54 +03:00
|
|
|
long key;
|
2009-10-09 15:46:08 +04:00
|
|
|
|
|
|
|
key = lookup_key (keybind, &caption);
|
|
|
|
keymap_add (keymap, key, action, caption);
|
|
|
|
g_free (caption);
|
2009-07-05 15:04:42 +00:00
|
|
|
}
|
2009-10-24 12:58:02 +04:00
|
|
|
|
2010-11-10 13:09:42 +02:00
|
|
|
/* --------------------------------------------------------------------------------------------- */
|
|
|
|
|
2009-11-06 14:41:54 +03:00
|
|
|
unsigned long
|
2010-11-18 10:43:23 +02:00
|
|
|
keybind_lookup_action (const char *name)
|
2009-11-06 14:41:54 +03:00
|
|
|
{
|
2010-02-02 10:48:08 +00:00
|
|
|
const name_keymap_t key = { name, 0 };
|
2009-11-06 14:41:54 +03:00
|
|
|
name_keymap_t *res;
|
|
|
|
|
|
|
|
sort_command_names ();
|
|
|
|
|
|
|
|
res = bsearch (&key, command_names, num_command_names,
|
2010-11-10 13:09:42 +02:00
|
|
|
sizeof (command_names[0]), name_keymap_comparator);
|
2009-11-06 14:41:54 +03:00
|
|
|
|
|
|
|
return (res != NULL) ? res->val : CK_Ignore_Key;
|
|
|
|
}
|
|
|
|
|
2010-11-10 13:09:42 +02:00
|
|
|
/* --------------------------------------------------------------------------------------------- */
|
|
|
|
|
2009-10-24 12:58:02 +04:00
|
|
|
const char *
|
2010-11-18 10:43:23 +02:00
|
|
|
keybind_lookup_keymap_shortcut (const global_keymap_t * keymap, unsigned long action)
|
2009-10-24 12:58:02 +04:00
|
|
|
{
|
2009-11-06 14:41:54 +03:00
|
|
|
size_t i;
|
2009-10-24 12:58:02 +04:00
|
|
|
|
|
|
|
for (i = 0; keymap[i].key != 0; i++)
|
2010-11-10 13:09:42 +02:00
|
|
|
if (keymap[i].command == action)
|
|
|
|
return (keymap[i].caption[0] != '\0') ? keymap[i].caption : NULL;
|
2009-10-24 12:58:02 +04:00
|
|
|
|
|
|
|
return NULL;
|
|
|
|
}
|
2009-11-07 14:17:38 +03:00
|
|
|
|
2010-11-10 13:09:42 +02:00
|
|
|
/* --------------------------------------------------------------------------------------------- */
|
|
|
|
|
2009-11-07 14:17:38 +03:00
|
|
|
unsigned long
|
2010-11-18 10:43:23 +02:00
|
|
|
keybind_lookup_keymap_command (const global_keymap_t * keymap, long key)
|
2009-11-07 14:17:38 +03:00
|
|
|
{
|
|
|
|
size_t i;
|
|
|
|
|
|
|
|
for (i = 0; keymap[i].key != 0; i++)
|
2010-11-10 13:09:42 +02:00
|
|
|
if (keymap[i].key == key)
|
|
|
|
return keymap[i].command;
|
2009-11-07 14:17:38 +03:00
|
|
|
|
|
|
|
return CK_Ignore_Key;
|
|
|
|
}
|
2010-11-10 13:09:42 +02:00
|
|
|
|
|
|
|
/* --------------------------------------------------------------------------------------------- */
|