diff options
Diffstat (limited to 'sys/arch/i386/isa/pcvt/pcvt_kbd.c')
-rw-r--r-- | sys/arch/i386/isa/pcvt/pcvt_kbd.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/sys/arch/i386/isa/pcvt/pcvt_kbd.c b/sys/arch/i386/isa/pcvt/pcvt_kbd.c index 28ae3f9ee54..7342824cb41 100644 --- a/sys/arch/i386/isa/pcvt/pcvt_kbd.c +++ b/sys/arch/i386/isa/pcvt/pcvt_kbd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: pcvt_kbd.c,v 1.9 1996/09/06 08:40:49 mickey Exp $ */ +/* $OpenBSD: pcvt_kbd.c,v 1.10 1997/05/30 01:43:05 mickey Exp $ */ /* * Copyright (c) 1992, 1995 Hellmuth Michaelis and Joerg Wunsch. @@ -719,6 +719,9 @@ xlatkey2ascii(U_short key) #endif static Ovl_tbl thisdef; int n; + + static u_char altgr_shft_key[KBDMAXOVLKEYSIZE]; + void (*fnc)(void); if(key==0) /* ignore the NON-KEY */ @@ -754,7 +757,14 @@ xlatkey2ascii(U_short key) if(altgr_down) { - more_chars = (u_char *)thisdef.altgr; + if(shift_down) /* XXX this is hack to support simple + AltGr + Shift remapping. This should work + for KOI-8 keymap style */ + { + altgr_shft_key[0] = *(u_char*)thisdef.altgr+040; + more_chars = (u_char*)altgr_shft_key; + } + else more_chars = (u_char *)thisdef.altgr; } else if(!ctrl_down && (shift_down || vsp->shift_lock)) { |