Hey all interested,

while writing a small wscons(4) keycode utility i asked myself
why KS_GROUP_Ascii is named the way it is, since the (lower) byte
carries more information, at least eventually.

I looked around a bit, and found out that NetBSD did change the
name to KS_GROUP_Plain, which is in my view less misleading than
the current naming scheme.
So the diff below changes all occurrences in todays src/ (no
change at all in xenocara) to _Plain.

And i've also missed a macro which tells an application wether
a second byte is necessary to complete the current raw keycode.
I.e., currently i hardcode

    ((rc & 0xF0) == 0xE0 || (rc & 0xF8) == 0xF0)

but can/could use KS_GROUP()/KS_VALUE() to separate the components
after i finally have read the complete keysym.
This is not part of the diff, however.
Ciao,

--steffen

Index: sbin/wsconsctl/keysym.c
===================================================================
RCS file: /cvs/src/sbin/wsconsctl/keysym.c,v
retrieving revision 1.6
diff -a -p -u -r1.6 keysym.c
--- sbin/wsconsctl/keysym.c     28 Jun 2010 20:40:39 -0000      1.6
+++ sbin/wsconsctl/keysym.c     29 Jan 2012 17:37:04 -0000
@@ -229,7 +229,7 @@ ksym_upcase(keysym_t ksym)
        if (ksym >= KS_f1 && ksym <= KS_f20)
                return(KS_F1 - KS_f1 + ksym);
 
-       if (KS_GROUP(ksym) == KS_GROUP_Ascii && ksym <= 0xff &&
+       if (KS_GROUP(ksym) == KS_GROUP_Plain && ksym <= 0xff &&
            latin1_to_upper[ksym] != 0x00)
                return(latin1_to_upper[ksym]);
 
Index: sys/dev/wscons/wsdisplay.c
===================================================================
RCS file: /cvs/src/sys/dev/wscons/wsdisplay.c,v
retrieving revision 1.105
diff -a -p -u -r1.105 wsdisplay.c
--- sys/dev/wscons/wsdisplay.c  3 Jul 2011 18:11:21 -0000       1.105
+++ sys/dev/wscons/wsdisplay.c  29 Jan 2012 17:38:44 -0000
@@ -1594,7 +1594,7 @@ wsdisplay_kbdinput(struct device *dev, k
 
        tp = scr->scr_tty;
        for (; num > 0; num--, ks++) {
-               if (KS_GROUP(*ks) == KS_GROUP_Ascii)
+               if (KS_GROUP(*ks) == KS_GROUP_Plain)
                        (*linesw[tp->t_line].l_rint)(KS_VALUE(*ks), tp);
                else {
                        count = (*scr->scr_dconf->wsemul->translate)
Index: sys/dev/wscons/wskbd.c
===================================================================
RCS file: /cvs/src/sys/dev/wscons/wskbd.c,v
retrieving revision 1.70
diff -a -p -u -r1.70 wskbd.c
--- sys/dev/wscons/wskbd.c      9 Nov 2011 14:27:52 -0000       1.70
+++ sys/dev/wscons/wskbd.c      29 Jan 2012 17:38:16 -0000
@@ -1265,7 +1265,7 @@ wskbd_cngetc(dev_t dev)
        for(;;) {
                if (num-- > 0) {
                        ks = wskbd_console_data.t_symbols[pos++];
-                       if (KS_GROUP(ks) == KS_GROUP_Ascii)
+                       if (KS_GROUP(ks) == KS_GROUP_Plain)
                                return (KS_VALUE(ks));  
                } else {
                        (*wskbd_console_data.t_consops->getc)
@@ -1667,7 +1667,7 @@ wskbd_translate(struct wskbd_internal *i
        res = KS_voidSymbol;
 
        switch (KS_GROUP(ksym)) {
-       case KS_GROUP_Ascii:
+       case KS_GROUP_Plain:
        case KS_GROUP_Keypad:
        case KS_GROUP_Function:
                res = ksym;
@@ -1716,7 +1716,7 @@ wskbd_translate(struct wskbd_internal *i
        }
 
        /* We are done, return the symbol */
-       if (KS_GROUP(res) == KS_GROUP_Ascii) {
+       if (KS_GROUP(res) == KS_GROUP_Plain) {
                if (MOD_ONESET(id, MOD_ANYCONTROL)) {
                        if ((res >= KS_at && res <= KS_z) || res == KS_space)
                                res = res & 0x1f;
Index: sys/dev/wscons/wskbdutil.c
===================================================================
RCS file: /cvs/src/sys/dev/wscons/wskbdutil.c,v
retrieving revision 1.9
diff -a -p -u -r1.9 wskbdutil.c
--- sys/dev/wscons/wskbdutil.c  28 Aug 2010 12:48:14 -0000      1.9
+++ sys/dev/wscons/wskbdutil.c  29 Jan 2012 17:37:44 -0000
@@ -268,7 +268,7 @@ ksym_upcase(keysym_t ksym)
        if (ksym >= KS_f1 && ksym <= KS_f20)
                return(KS_F1 - KS_f1 + ksym);
 
-       if (KS_GROUP(ksym) == KS_GROUP_Ascii && ksym <= 0xff &&
+       if (KS_GROUP(ksym) == KS_GROUP_Plain && ksym <= 0xff &&
            latin1_to_upper[ksym] != 0x00)
                return(latin1_to_upper[ksym]);
 
Index: sys/dev/wscons/wsksymdef.h
===================================================================
RCS file: /cvs/src/sys/dev/wscons/wsksymdef.h,v
retrieving revision 1.34
diff -a -p -u -r1.34 wsksymdef.h
--- sys/dev/wscons/wsksymdef.h  5 Apr 2011 19:12:13 -0000       1.34
+++ sys/dev/wscons/wsksymdef.h  29 Jan 2012 17:45:41 -0000
@@ -684,7 +684,7 @@
 #define KS_GROUP_Command       0xf400
 #define KS_GROUP_Internal      0xf500
 #define KS_GROUP_Dead          0xf801          /* not encoded in keysym */
-#define KS_GROUP_Ascii         0xf802          /* not encoded in keysym */
+#define KS_GROUP_Plain         0xf802          /* not encoded in keysym */
 #define KS_GROUP_Keycode       0xf803          /* not encoded in keysym */
 
 #define KS_NUMKEYCODES 0x1000
@@ -693,7 +693,7 @@
 #define KS_GROUP(k)    ((k) >= 0x0300 && (k) < 0x0370 ? KS_GROUP_Dead : \
                            (((k) & 0xf000) == 0xe000 ? KS_GROUP_Keycode : \
                              (((k) & 0xf800) == 0xf000 ? ((k) & 0xff00) : \
-                               KS_GROUP_Ascii)))
+                               KS_GROUP_Plain)))
 
 #define KS_VALUE(k)    (((k) & 0xf000) == 0xe000 ? ((k) & 0x0fff) : \
                            (((k) & 0xf800) == 0xf000 ? ((k) & 0x00ff) : (k)))

Reply via email to