summaryrefslogtreecommitdiff
path: root/sys/arch/hp300/dev
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2007-01-07 15:12:51 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2007-01-07 15:12:51 +0000
commit7c44e6bafd9fb37edd184c8d4dcb2289cb9e4cc5 (patch)
tree371e9b454b98d4daa9ee0190101c9dda31871c29 /sys/arch/hp300/dev
parente867a672ddbcbeaec6543615bd586958e5184571 (diff)
Skip optional dash when parsing the layout code.
Diffstat (limited to 'sys/arch/hp300/dev')
-rw-r--r--sys/arch/hp300/dev/dnkbd.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/sys/arch/hp300/dev/dnkbd.c b/sys/arch/hp300/dev/dnkbd.c
index 59cab45630b..28902ad8220 100644
--- a/sys/arch/hp300/dev/dnkbd.c
+++ b/sys/arch/hp300/dev/dnkbd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: dnkbd.c,v 1.13 2007/01/06 20:09:12 miod Exp $ */
+/* $OpenBSD: dnkbd.c,v 1.14 2007/01/07 15:12:50 miod Exp $ */
/*
* Copyright (c) 2005, Miodrag Vallat
@@ -288,10 +288,8 @@ dnkbd_attach_subdevices(struct dnkbd_softc *sc)
/*
* If both hilkbd and dnkbd are configured, prefer the Domain
* keyboard as console (if we are here, we know the keyboard is
- * plugged). But if it's a late hotplug, the hil code will have
- * claimed the console keyboard, so don't claim it now.
- * Unfortunately, the hil code will claim the console keyboard
- * even if no HIL keyboard is connected...
+ * plugged), unless the console keyboard has been claimed already
+ * (i.e. late hotplug with hil keyboard plugged first).
*/
if (cn_tab == &wsdisplay_cons) {
#if NHILKBD > 0
@@ -417,7 +415,7 @@ dnkbd_probe(struct dnkbd_softc *sc)
rspbuf[i] = 0;
/*
- * Now display the identification strings, if it changed.
+ * Now display the identification strings, if they changed.
*/
if (i != sc->sc_identlen || bcmp(rspbuf, sc->sc_ident, i) != 0) {
sc->sc_layout = KB_US;
@@ -437,8 +435,10 @@ dnkbd_probe(struct dnkbd_softc *sc)
/*
* Parse the layout code if applicable
*/
- if (i == 1 && *word == '3')
- switch (*++word) {
+ if (i == 1 && *word++ == '3') {
+ if (*word == '-')
+ word++;
+ switch (*word) {
#if 0
default:
case ' ':
@@ -467,6 +467,7 @@ dnkbd_probe(struct dnkbd_softc *sc)
sc->sc_layout = KB_SG;
break;
}
+ }
word = end;
}
printf("\n");