[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
hurd/console-client ChangeLog pc-kbd.c
From: |
Marcus Brinkmann |
Subject: |
hurd/console-client ChangeLog pc-kbd.c |
Date: |
Thu, 21 Nov 2002 19:05:11 -0500 |
CVSROOT: /cvsroot/hurd
Module name: hurd
Changes by: Marcus Brinkmann <address@hidden> 02/11/21 19:05:11
Modified files:
console-client : ChangeLog pc-kbd.c
Log message:
2002-11-21 Marco Gerards <address@hidden>
* pc-kbd.c (IS_FUNC_KEY): New macro.
(input_loop): Replaced code for set1 for console switching by set2
code. Also accept F11 and F12.
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd/console-client/ChangeLog.diff?tr1=1.7&tr2=1.8&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/hurd/hurd/console-client/pc-kbd.c.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
Patches:
Index: hurd/console-client/ChangeLog
diff -u hurd/console-client/ChangeLog:1.7 hurd/console-client/ChangeLog:1.8
--- hurd/console-client/ChangeLog:1.7 Mon Nov 18 02:35:47 2002
+++ hurd/console-client/ChangeLog Thu Nov 21 19:05:11 2002
@@ -1,3 +1,9 @@
+2002-11-21 Marco Gerards <address@hidden>
+
+ * pc-kbd.c (IS_FUNC_KEY): New macro.
+ (input_loop): Replaced code for set1 for console switching by set2
+ code. Also accept F11 and F12.
+
2002-11-18 Marcus Brinkmann <address@hidden>
* console.c (main): Pass ERR to error invocation.
Index: hurd/console-client/pc-kbd.c
diff -u hurd/console-client/pc-kbd.c:1.5 hurd/console-client/pc-kbd.c:1.6
--- hurd/console-client/pc-kbd.c:1.5 Mon Nov 18 02:35:47 2002
+++ hurd/console-client/pc-kbd.c Thu Nov 21 19:05:11 2002
@@ -147,6 +147,11 @@
SC_FLAG_UP = 0xF000 /* ORed to basic scancode. */
};
+/* In set 2 function keys don't have a logical order. This macro can
+ determine if a function key was pressed. */
+#define IS_FUNC_KEY(c) ((sc >= SC_F9 && sc <= SC_F4 || \
+ sc == SC_F7 || sc == SC_F11)
+
/* Codes which can follow SC_EXTENDED1. */
enum scancode_x1
{
@@ -799,8 +804,60 @@
state.left_ctrl = down;
else if (sc == SC_LEFT_ALT)
state.left_alt = down;
- else if (state.left_alt && down && sc >= SC_F1 && sc <= SC_F10) /*
XXX */
- console_switch (1 + (sc - SC_F1), 0);
+ else if (state.left_alt && down && IS_FUNC_KEY (sc))
+ {
+ /* The virtual console to switch to. */
+ int vc = 0;
+
+ /* Check if a funtion key was pressed.
+ Choose the virtual console corresponding to that key. */
+ switch (sc)
+ {
+ case SC_F1:
+ vc = 1;
+ break;
+ case SC_F2:
+ vc = 2;
+ break;
+ case SC_F3:
+ vc = 3;
+ break;
+ case SC_F4:
+ vc = 4;
+ break;
+ case SC_F5:
+ vc = 5;
+ break;
+ case SC_F6:
+ vc = 6;
+ break;
+ case SC_F7:
+ vc = 7;
+ break;
+ case SC_F8:
+ vc = 8;
+ break;
+ case SC_F9:
+ vc = 9;
+ break;
+ case SC_F10:
+ vc = 10;
+ break;
+ case SC_F11:
+ vc = 11;
+ break;
+ case SC_F12:
+ vc = 12;
+ break;
+ /* No function key was pressed, don't
+ switch to another vc. */
+ default:
+ vc = 0;
+ }
+
+ if (vc)
+ console_switch (vc, 0);
+ }
else if (state.left_alt && state.left_ctrl && down && sc ==
SC_BACKSPACE)
console_exit ();
else if (state.right_alt && down && sc == SC_PAD_0) /* XXX */
- hurd/console-client ChangeLog pc-kbd.c,
Marcus Brinkmann <=