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
 

Attachment: pgpOXY2uNmfIL.pgp
Description: PGP signature

_______________________________________________
elinks-dev mailing list
[email protected]
http://linuxfromscratch.org/mailman/listinfo/elinks-dev

Reply via email to