mirror of
https://github.com/MidnightCommander/mc
synced 2025-01-03 10:04:32 +03:00
* editcmddef.h: Split CK_No_Command into CK_Insert_Char and
CK_Ignore_Key. * editkeys.c (emacs_key_map): Ignore Ctrl-g. Requested by Paul Seelig <pseelig@uni-mainz.de> (edit_translate_key): Implement CK_Ignore_Key.
This commit is contained in:
parent
90ae5d102d
commit
603e2af580
@ -1,5 +1,11 @@
|
|||||||
2004-02-04 Pavel Roskin <proski@gnu.org>
|
2004-02-04 Pavel Roskin <proski@gnu.org>
|
||||||
|
|
||||||
|
* editcmddef.h: Split CK_No_Command into CK_Insert_Char and
|
||||||
|
CK_Ignore_Key.
|
||||||
|
* editkeys.c (emacs_key_map): Ignore Ctrl-g. Requested by
|
||||||
|
Paul Seelig <pseelig@uni-mainz.de>
|
||||||
|
(edit_translate_key): Implement CK_Ignore_Key.
|
||||||
|
|
||||||
* edit.c (edit_execute_key_command): Return void, the result is
|
* edit.c (edit_execute_key_command): Return void, the result is
|
||||||
never used.
|
never used.
|
||||||
(edit_execute_cmd): Likewise.
|
(edit_execute_cmd): Likewise.
|
||||||
|
@ -4,8 +4,11 @@
|
|||||||
/* in the distant future, keyboards will be invented with a
|
/* in the distant future, keyboards will be invented with a
|
||||||
separate key for each one of these commands *sigh* */
|
separate key for each one of these commands *sigh* */
|
||||||
|
|
||||||
|
/* special commands */
|
||||||
|
#define CK_Insert_Char -1
|
||||||
|
#define CK_Ignore_Key 0
|
||||||
|
|
||||||
/* cursor movements */
|
/* cursor movements */
|
||||||
#define CK_No_Command -1
|
|
||||||
#define CK_BackSpace 1
|
#define CK_BackSpace 1
|
||||||
#define CK_Delete 2
|
#define CK_Delete 2
|
||||||
#define CK_Enter 3
|
#define CK_Enter 3
|
||||||
|
@ -56,6 +56,7 @@ static long const emacs_key_map[] = {
|
|||||||
XCTRL ('b'), CK_Left,
|
XCTRL ('b'), CK_Left,
|
||||||
XCTRL ('e'), CK_End,
|
XCTRL ('e'), CK_End,
|
||||||
XCTRL ('f'), CK_Right,
|
XCTRL ('f'), CK_Right,
|
||||||
|
XCTRL ('g'), CK_Ignore_Key,
|
||||||
XCTRL ('n'), CK_Down,
|
XCTRL ('n'), CK_Down,
|
||||||
XCTRL ('p'), CK_Up,
|
XCTRL ('p'), CK_Up,
|
||||||
XCTRL ('s'), CK_Find,
|
XCTRL ('s'), CK_Find,
|
||||||
@ -163,7 +164,7 @@ static long const common_key_map[] = {
|
|||||||
int
|
int
|
||||||
edit_translate_key (WEdit *edit, long x_key, int *cmd, int *ch)
|
edit_translate_key (WEdit *edit, long x_key, int *cmd, int *ch)
|
||||||
{
|
{
|
||||||
int command = -1;
|
int command = CK_Insert_Char;
|
||||||
int char_for_insertion = -1;
|
int char_for_insertion = -1;
|
||||||
int i = 0;
|
int i = 0;
|
||||||
static const long *key_map;
|
static const long *key_map;
|
||||||
@ -194,7 +195,7 @@ edit_translate_key (WEdit *edit, long x_key, int *cmd, int *ch)
|
|||||||
(_(" Execute Macro "),
|
(_(" Execute Macro "),
|
||||||
_(" Press macro hotkey: "), 1));
|
_(" Press macro hotkey: "), 1));
|
||||||
if (command == CK_Macro (0))
|
if (command == CK_Macro (0))
|
||||||
command = -1;
|
command = CK_Insert_Char;
|
||||||
goto fin;
|
goto fin;
|
||||||
}
|
}
|
||||||
goto fin;
|
goto fin;
|
||||||
@ -225,7 +226,7 @@ edit_translate_key (WEdit *edit, long x_key, int *cmd, int *ch)
|
|||||||
(_(" Execute Macro "), _(" Press macro hotkey: "),
|
(_(" Execute Macro "), _(" Press macro hotkey: "),
|
||||||
1));
|
1));
|
||||||
if (command == CK_Macro (0))
|
if (command == CK_Macro (0))
|
||||||
command = -1;
|
command = CK_Insert_Char;
|
||||||
goto fin;
|
goto fin;
|
||||||
}
|
}
|
||||||
/* edit is a pointer to the widget */
|
/* edit is a pointer to the widget */
|
||||||
@ -250,20 +251,22 @@ edit_translate_key (WEdit *edit, long x_key, int *cmd, int *ch)
|
|||||||
|
|
||||||
/* Commands specific to the key emulation */
|
/* Commands specific to the key emulation */
|
||||||
i = 0;
|
i = 0;
|
||||||
while (key_map[i] != x_key && (key_map[i] || key_map[i + 1]))
|
while (key_map[i] && (key_map[i] != x_key))
|
||||||
i += 2;
|
i += 2;
|
||||||
command = key_map[i + 1];
|
if (key_map[i]) {
|
||||||
if (command)
|
command = key_map[i + 1];
|
||||||
goto fin;
|
goto fin;
|
||||||
|
}
|
||||||
|
|
||||||
/* Commands common for the key emulations */
|
/* Commands common for the key emulations */
|
||||||
key_map = common_key_map;
|
key_map = common_key_map;
|
||||||
i = 0;
|
i = 0;
|
||||||
while (key_map[i] != x_key && (key_map[i] || key_map[i + 1]))
|
while (key_map[i] && (key_map[i] != x_key))
|
||||||
i += 2;
|
i += 2;
|
||||||
command = key_map[i + 1];
|
if (key_map[i]) {
|
||||||
if (command)
|
command = key_map[i + 1];
|
||||||
goto fin;
|
goto fin;
|
||||||
|
}
|
||||||
|
|
||||||
/* Function still not found for this key, so try macros */
|
/* Function still not found for this key, so try macros */
|
||||||
/* This allows the same macro to be
|
/* This allows the same macro to be
|
||||||
@ -282,7 +285,7 @@ edit_translate_key (WEdit *edit, long x_key, int *cmd, int *ch)
|
|||||||
*cmd = command;
|
*cmd = command;
|
||||||
*ch = char_for_insertion;
|
*ch = char_for_insertion;
|
||||||
|
|
||||||
if ((command == -1 || command == 0) && char_for_insertion == -1) {
|
if (command == CK_Insert_Char && char_for_insertion == -1) {
|
||||||
/* unchanged, key has no function here */
|
/* unchanged, key has no function here */
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user