Subject: kern/214: PCVT treats ctrl-shift like shift
To: None <gnats-admin>
From: Mark Weaver <mhw@cs.brown.edu>
List: netbsd-bugs
Date: 04/07/1994 22:20:06
>Number: 214
>Category: kern
>Synopsis: PCVT treats ctrl-shift like shift
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: gnats-admin (Kernel Bug People)
>State: open
>Class: change-request
>Submitter-Id: mhw
>Arrival-Date: Thu Apr 7 22:20:02 1994
>Originator: Mark Weaver
>Organization:
--------------------------------------------------------------------
Email: Mark_Weaver@brown.edu | Brown University
PGP Key: finger mhw@cs.brown.edu | Dept of Computer Science
>Release: current-940407
>Environment:
System: NetBSD cis-ts3-slip7.cis.brown.edu 0.9a EXCELSIOR#1 i386
Gateway 2000 i486dx2/66 vlb, 16mb ram
>Description:
PCVT treats ctrl-shift exactly like shift for most characters.
Unfortunately, the keymapping table only includes entries for
normal, shift, and ctrl. Ideally, this would be fixed to
include an entry for ctrl-shift.
As an interim solution, I suggest treating ctrl-shift like ctrl
instead of like shift. In particular, I am used to typing
ctrl-shift-underscore to undo in emacs. Currently, that generates
an underscore instead of 0x1f.
>How-To-Repeat:
Type ctrl-shift-underscore and watch it print an underscore.
>Fix:
diff -c src/sys/arch/i386/isa/pcvt/pcvt_kbd.c.mhw1 src/sys/arch/i386/isa/pcvt/pcvt_kbd.c
*** src/sys/arch/i386/isa/pcvt/pcvt_kbd.c.mhw1 Mon Mar 28 21:40:01 1994
--- src/sys/arch/i386/isa/pcvt/pcvt_kbd.c Fri Apr 8 00:43:10 1994
***************
*** 863,876 ****
if(altgr_down)
more_chars = (u_char *)thisdef.altgr;
- else if(shift_down || vsp->shift_lock)
- {
- if(key2ascii[key].shift.subtype == STR)
- more_chars = (u_char *)thisdef.shift;
- else
- fnc = key2ascii[key].shift.what.func;
- }
-
else if(ctrl_down)
{
if(key2ascii[key].ctrl.subtype == STR)
--- 863,868 ----
***************
*** 879,884 ****
--- 871,884 ----
fnc = key2ascii[key].ctrl.what.func;
}
+ else if(shift_down || vsp->shift_lock)
+ {
+ if(key2ascii[key].shift.subtype == STR)
+ more_chars = (u_char *)thisdef.shift;
+ else
+ fnc = key2ascii[key].shift.what.func;
+ }
+
else
{
if(key2ascii[key].unshift.subtype == STR)
>Audit-Trail:
>Unformatted:
------------------------------------------------------------------------------