summaryrefslogtreecommitdiffstats
path: root/sys/isa
diff options
context:
space:
mode:
authoryokota <yokota@FreeBSD.org>1997-07-14 03:36:50 +0000
committeryokota <yokota@FreeBSD.org>1997-07-14 03:36:50 +0000
commit15a89c532df933482d55cecc073f051fa611ceec (patch)
tree8a65d411a6c9c46cbc28a55ddc63a10f9e8976f4 /sys/isa
parente3faa34d53e70df949da831b848a9c199c0d4cde (diff)
downloadFreeBSD-src-15a89c532df933482d55cecc073f051fa611ceec.zip
FreeBSD-src-15a89c532df933482d55cecc073f051fa611ceec.tar.gz
scgetc() referred to `spcl' in different ways when a key is pressed
and released. It should use `spcl' consistently in both cases, otherwise shift/control/alt state may not be correctly set/reset. (Even with this fix, you can still make syscons confused and fail to change internal state if you really want to, by installing a really arcane and artificial keymap.) PR: i386/4030 Reviewed by: sos
Diffstat (limited to 'sys/isa')
-rw-r--r--sys/isa/syscons.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/isa/syscons.c b/sys/isa/syscons.c
index 7b5cafb..71dc2b0 100644
--- a/sys/isa/syscons.c
+++ b/sys/isa/syscons.c
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: syscons.c,v 1.222 1997/07/08 13:38:58 brian Exp $
+ * $Id: syscons.c,v 1.223 1997/07/09 14:10:19 brian Exp $
*/
#include "sc.h"
@@ -3043,7 +3043,7 @@ next_code:
/* Check for make/break */
action = key->map[state];
if (scancode & 0x80) { /* key released */
- if (key->spcl & 0x80) {
+ if (key->spcl & (0x80>>state)) {
switch (action) {
case LSH:
shfts &= ~1;
OpenPOWER on IntegriCloud