Subject: port-hp300/4689: CAPS LOCK keymap on hp300 wrong
To: None <gnats-bugs@gnats.netbsd.org>
From: David Jones <dej@inode.org>
List: netbsd-bugs
Date: 12/14/1997 18:41:36
>Number: 4689
>Category: port-hp300
>Synopsis: CAPS LOCK behaves as if SHIFT were pressed
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: gnats-admin (GNATS administrator)
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sun Dec 14 16:05:01 1997
>Last-Modified:
>Originator: David Jones
>Organization:
INODE Community Networking
>Release: NetBSD-current Oct 4, 1997
>Environment:
System: NetBSD endplay 1.2G NetBSD 1.2G (ENDPLAY) #3: Sat Jun 21 19:01:21 EDT 1997 dej@endplay:/usr/src/sys/arch/hp300/compile/ENDPLAY hp300
>Description:
When the CAPS LOCK key is depressed, the machine behaves as if the SHIFT
key were held down. This is not correct for non-alphabetic keys.
For non-alphabetic keys, CAPS LOCK should have no effect.
(At least this is my opinion, and this is how machines have worked with the
exception of the Commodore 64 :-)
>How-To-Repeat:
Engage CAPS LOCK and type "l;". It comes out as "L:" but it should be
"L;"
>Fix:
Line 555 of ite.c reads:
case KBD_KEY:
if (!capsmode) {
code = kbd_keymap[c];
break;
}
/* FALLTHROUGH */
case KBD_SHIFT:
code = kbd_shiftmap[c];
break;
You need to replace the /* FALLTHROUGH */ with code that does the
equivalent of toupper(kbd_keymap[c]). Doing this in a local-aware
manner is not trivial.
>Audit-Trail:
>Unformatted: