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:


------------------------------------------------------------------------------