Sorry to bother you again, I forgot to attach the patch.

Cheers, Chris.

> We recently needed to use DOSEMU to provide access to a legacy 
> application, System 505 (a DOS database frontend). It worked very well 
> except for one small problem: our UK keyboards were not fully supported. 
> It seems that when DOSEMU is using slang as the user interface, the 
> keyboard layout is hardcoded to US and cannot be changed.
-- 
   ___ __     _
 / __// / ,__(_)_  | Chris Wilson -- UNIX Firewall Lead Developer |
/ (_ / ,\/ _/ /_ \ | NetServers.co.uk http://www.netservers.co.uk |
\ _//_/_/_//_/___/ | 21 Signet Court, Cambridge, UK. 01223 576516 |
diff -ru2 dosemu-1.1.3/src/plugin/keyboard/include/keymaps.h 
dosemu-pound/src/plugin/keyboard/include/keymaps.h
--- dosemu-1.1.3/src/plugin/keyboard/include/keymaps.h  Mon Mar 18 21:58:18 2002
+++ dosemu-pound/src/plugin/keyboard/include/keymaps.h  Mon Sep  2 16:28:16 2002
@@ -56,5 +56,5 @@
 
 extern unsigned char key_map_us[];
-extern unsigned char shift_map_us[];
+extern unsigned char shift_map_uk[];
 extern unsigned char alt_map_us[];
 
diff -ru2 dosemu-1.1.3/src/plugin/keyboard/keyb_slang.c 
dosemu-pound/src/plugin/keyboard/keyb_slang.c
--- dosemu-1.1.3/src/plugin/keyboard/keyb_slang.c       Mon Mar 18 21:58:15 2002
+++ dosemu-pound/src/plugin/keyboard/keyb_slang.c       Mon Sep  2 16:49:01 2002
@@ -767,5 +767,5 @@
 
   define_key_from_keymap(key_map_us,   0, 1);
-  define_key_from_keymap(shift_map_us, SHIFT_MASK, 1);
+  define_key_from_keymap(shift_map_uk, SHIFT_MASK, 1);
   define_key_from_keymap(alt_map_us,   ALT_MASK, 0);
 
@@ -1104,4 +1114,9 @@
 #endif
 
+    if (scan == 0x00010004) {
+      k_printf("KBD: remapping pound sign\n");
+      key->str[1] = 156;
+    }
+
     k_printf("KBD: scan=%08lx Shift_Flags=%08lx str[0]=%d str='%s' len=%d\n",
              scan,Shift_Flags,key->str[0],strprintable(key->str+1),Keystr_Len);
diff -ru2 dosemu-1.1.3/src/plugin/keyboard/keymaps.c 
dosemu-pound/src/plugin/keyboard/keymaps.c
--- dosemu-1.1.3/src/plugin/keyboard/keymaps.c  Mon Mar 18 21:58:18 2002
+++ dosemu-pound/src/plugin/keyboard/keymaps.c  Mon Sep  2 16:30:37 2002
@@ -292,5 +292,5 @@
 CONST unsigned char shift_map_uk[] =
 {
-  0, 27, '!', '"', 156, '$', '%', '^',
+  0, 27, '!', '"', 163, '$', '%', '^',
   '&', '*', '(', ')', '_', '+', 127, 9,
   'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I',

Reply via email to