]> git.eshelyaron.com Git - emacs.git/commitdiff
(dos_set_keyboard): Test whether KEYB.COM is installed
authorRichard M. Stallman <rms@gnu.org>
Fri, 27 Dec 1996 02:11:22 +0000 (02:11 +0000)
committerRichard M. Stallman <rms@gnu.org>
Fri, 27 Dec 1996 02:11:22 +0000 (02:11 +0000)
for international keyboard support.
(dos_get_modifiers): If international keyboard support is NOT
required, make both Right and Left Alt key behave like Meta key.

src/msdos.c

index 7629b9c7f819026d74f0d7e94ca8f37cec3e298e..0b4cc858e168f055f309e3fe41f06a5da9504e25 100644 (file)
@@ -1137,6 +1137,7 @@ static struct keyboard_layout_list
 
 static struct dos_keyboard_map *keyboard;
 static int keyboard_map_all;
+static int international_keyboard;
 
 int
 dos_set_keyboard (code, always)
@@ -1144,6 +1145,13 @@ dos_set_keyboard (code, always)
      int always;
 {
   int i;
+  union REGS regs;
+
+  /* See if Keyb.Com is installed (for international keyboard support).  */
+  regs.x.ax = 0xad80;
+  int86 (0x2f, &regs, &regs);
+  if (regs.h.al == 0xff)
+    international_keyboard = 1;
 
   /* Initialize to US settings, for countries that don't have their own.  */
   keyboard = keyboard_layout_list[0].keyboard_map;
@@ -1451,6 +1459,13 @@ dos_get_modifiers (keymask)
              mask |= SUPER_P;
              modifiers |= super_modifier;
            }
+         else if (!international_keyboard)
+           {
+             /* If Keyb.Com is NOT installed, let Right Alt behave
+                like the Left Alt.  */
+             mask &= ~ALT_GR_P;
+             mask |= ALT_P;
+           }
        }
       
       if (regs.h.ah & 1)               /* Left CTRL pressed ? */