diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2007-01-07 15:12:51 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2007-01-07 15:12:51 +0000 |
commit | 7c44e6bafd9fb37edd184c8d4dcb2289cb9e4cc5 (patch) | |
tree | 371e9b454b98d4daa9ee0190101c9dda31871c29 /sys/arch/hp300/dev | |
parent | e867a672ddbcbeaec6543615bd586958e5184571 (diff) |
Skip optional dash when parsing the layout code.
Diffstat (limited to 'sys/arch/hp300/dev')
-rw-r--r-- | sys/arch/hp300/dev/dnkbd.c | 17 |
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"); |