Conditionalize x32 keyboard according to environment variable.
authorGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Mon, 23 Nov 1992 04:14:32 +0000 (04:14 +0000)
committerGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Mon, 23 Nov 1992 04:14:32 +0000 (04:14 +0000)
v7/src/microcode/doskbd.c

index 953e2cb2ebc5e3f04483bf4be59872dbc2a35215..cb1bc2c5a0ab05d4564f8b8a20d477b4f438d08e 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Id: doskbd.c,v 1.11 1992/10/17 23:07:22 jinx Exp $
+$Id: doskbd.c,v 1.12 1992/11/23 04:14:32 gjr Exp $
 
 Copyright (c) 1992 Massachusetts Institute of Technology
 
@@ -1409,6 +1409,8 @@ under_DOSX_p (void)
    Here is alternative lower-level code.
  */
 
+static char * X32_env_var = "MITSCHEME_X32_EXT_KBD";
+
 extern dos_boolean EXFUN (under_X32_p, (void));
 
 static int
@@ -1419,6 +1421,9 @@ X32_install_kbd_hook (void)
   extern PTR X32_kbd_interrupt_pointers[];
   extern int X32_kbd_interrupt_previous;
 
+  if (!(install_kbd_hook_p (X32_env_var)))
+    return (DOS_FAILURE);
+
   X32_kbd_interrupt_pointers[0] = ((PTR) &modifier_mask);
   X32_kbd_interrupt_pointers[1] = ((PTR) &unshifted_scan_code_to_ascii[0]);
   X32_kbd_interrupt_pointers[2] = ((PTR) &shifted_scan_code_to_ascii[0]);
@@ -1437,7 +1442,8 @@ X32_restore_kbd_hook (void)
 {
   extern int EXFUN (X32_interrupt_restore, (unsigned));
 
-  if ((X32_interrupt_restore (DOS_INTVECT_SYSTEM_SERVICES)) != 0)
+  if ((!(install_kbd_hook_p (X32_env_var)))
+      || (X32_interrupt_restore (DOS_INTVECT_SYSTEM_SERVICES)) != 0)
     return (DOS_FAILURE);
   return (DOS_SUCCESS);
 }