commit-hurd
[Top][All Lists]
Advanced

[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 */




reply via email to

[Prev in Thread] Current Thread [Next in Thread]