terminal: Introduce macros for KBD_F1...KBD_F12 arithmetic. --- commit e36246f2dd33a9fe8d373c4245b1a00129ea6ea5 tree aeb37ebd1538a3c02fdbda12c3c9ff578874feb4 parent 1857d69c9c6b51ceee5ee8611a0fba8fb1f1777b author Kalle Olavi Niemitalo <[EMAIL PROTECTED]> Sat, 05 Aug 2006 12:15:11 +0300 committer Kalle Olavi Niemitalo <[EMAIL PROTECTED]> Sat, 05 Aug 2006 20:09:34 +0300
src/bfu/menu.c | 2 +-
src/terminal/kbd.c | 2 +-
src/terminal/kbd.h | 3 +++
3 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/bfu/menu.c b/src/bfu/menu.c
index c80bf4c..dfd9a66 100644
--- a/src/bfu/menu.c
+++ b/src/bfu/menu.c
@@ -950,7 +950,7 @@ menu_kbd_handler(struct menu *menu, stru
{
int key = get_kbd_key(ev);
- if ((key >= KBD_F1 && key <= KBD_F12)
+ if (is_kbd_fkey(key)
|| check_kbd_modifier(ev, KBD_MOD_ALT)) {
delete_window_ev(win, ev);
return;
diff --git a/src/terminal/kbd.c b/src/terminal/kbd.c
index 3d8d673..229cf4d 100644
--- a/src/terminal/kbd.c
+++ b/src/terminal/kbd.c
@@ -670,7 +670,7 @@ decode_terminal_escape_sequence(struct i
if (itrm->in.queue.len >= 4
&& itrm->in.queue.data[3] >= 'A'
&& itrm->in.queue.data[3] <= 'L') {
- kbd.key = KBD_F1 + itrm->in.queue.data[3] - 'A';
+ kbd.key = number_to_kbd_fkey(itrm->in.queue.data[3] - 'A' + 1);
set_kbd_interlink_event(ev, kbd.key, kbd.modifier);
return 4;
}
diff --git a/src/terminal/kbd.h b/src/terminal/kbd.h
index d8d5462..8c88d34 100644
--- a/src/terminal/kbd.h
+++ b/src/terminal/kbd.h
@@ -42,6 +42,9 @@ #define KBD_F9 0x128
#define KBD_F10 0x129
#define KBD_F11 0x12a
#define KBD_F12 0x12b
+static inline int is_kbd_fkey(int key) { return key >= KBD_F1 && key <= KBD_F12; }
+#define number_to_kbd_fkey(num) ((num) + KBD_F1 - 1)
+#define kbd_fkey_to_number(key) ((key) - KBD_F1 + 1)
#define KBD_CTRL_C 0x200
pgpOXY2uNmfIL.pgp
Description: PGP signature
_______________________________________________ elinks-dev mailing list [email protected] http://linuxfromscratch.org/mailman/listinfo/elinks-dev
