keysym: Coding style cleanup

Mostly tab-to-space conversion plus a few style nits. Dropped the
register keywords as I'm pretty sure modern compilers can be trusted to
do the right thing.
master
Dan Nicholson 2009-03-19 11:34:54 -07:00
parent 83f198f1ae
commit 56c3e7440e
1 changed files with 84 additions and 67 deletions

View File

@ -36,123 +36,140 @@ authorization from the authors.
#include "ks_tables.h" #include "ks_tables.h"
char *XkbcKeysymToString(KeySym ks) char *
XkbcKeysymToString(KeySym ks)
{ {
register int i, n; int i, n, h, idx;
int h;
register int idx;
const unsigned char *entry; const unsigned char *entry;
unsigned char val1, val2, val3, val4; unsigned char val1, val2, val3, val4;
if (!ks || (ks & ((unsigned long) ~0x1fffffff)) != 0) if (!ks || (ks & ((unsigned long) ~0x1fffffff)) != 0)
return ((char *)NULL); return NULL;
if (ks == XK_VoidSymbol) if (ks == XK_VoidSymbol)
ks = 0; ks = 0;
if (ks <= 0x1fffffff)
{ if (ks <= 0x1fffffff) {
val1 = ks >> 24; val1 = ks >> 24;
val2 = (ks >> 16) & 0xff; val2 = (ks >> 16) & 0xff;
val3 = (ks >> 8) & 0xff; val3 = (ks >> 8) & 0xff;
val4 = ks & 0xff; val4 = ks & 0xff;
i = ks % VTABLESIZE; i = ks % VTABLESIZE;
h = i + 1; h = i + 1;
n = VMAXHASH; n = VMAXHASH;
while ((idx = hashKeysym[i]))
{ while ((idx = hashKeysym[i])) {
entry = &_XkeyTable[idx]; entry = &_XkeyTable[idx];
if ((entry[0] == val1) && (entry[1] == val2) &&
if ((entry[0] == val1) && (entry[1] == val2) &&
(entry[2] == val3) && (entry[3] == val4)) (entry[2] == val3) && (entry[3] == val4))
return ((char *)entry + 4); return ((char *)entry + 4);
if (!--n)
break; if (!--n)
i += h; break;
if (i >= VTABLESIZE)
i -= VTABLESIZE; i += h;
} if (i >= VTABLESIZE)
i -= VTABLESIZE;
}
} }
if (ks >= 0x01000100 && ks <= 0x0110ffff) { if (ks >= 0x01000100 && ks <= 0x0110ffff) {
KeySym val = ks & 0xffffff; KeySym val = ks & 0xffffff;
char *s; char *s;
int i; int i;
if (val & 0xff0000) if (val & 0xff0000)
i = 10; i = 10;
else else
i = 6; i = 6;
s = malloc(i); s = malloc(i);
if (s == NULL) if (!s)
return s; return s;
i--; i--;
s[i--] = '\0'; s[i--] = '\0';
for (; i; i--){ for (; i; i--) {
val1 = val & 0xf; val1 = val & 0xf;
val >>= 4; val >>= 4;
if (val1 < 10) if (val1 < 10)
s[i] = '0'+ val1; s[i] = '0' + val1;
else else
s[i] = 'A'+ val1 - 10; s[i] = 'A' + val1 - 10;
} }
s[i] = 'U'; s[i] = 'U';
return s; return s;
} }
return ((char *) NULL);
return NULL;
} }
KeySym KeySym
XkbcStringToKeysym(const char *s) XkbcStringToKeysym(const char *s)
{ {
register int i, n; int i, n, h, c, idx;
int h; unsigned long sig = 0;
register unsigned long sig = 0; const char *p = s;
register const char *p = s;
register int c;
register int idx;
const unsigned char *entry; const unsigned char *entry;
unsigned char sig1, sig2; unsigned char sig1, sig2;
KeySym val; KeySym val;
while ((c = *p++)) while ((c = *p++))
sig = (sig << 1) + c; sig = (sig << 1) + c;
i = sig % KTABLESIZE; i = sig % KTABLESIZE;
h = i + 1; h = i + 1;
sig1 = (sig >> 8) & 0xff; sig1 = (sig >> 8) & 0xff;
sig2 = sig & 0xff; sig2 = sig & 0xff;
n = KMAXHASH; n = KMAXHASH;
while ((idx = hashString[i]))
{ while ((idx = hashString[i])) {
entry = &_XkeyTable[idx]; entry = &_XkeyTable[idx];
if ((entry[0] == sig1) && (entry[1] == sig2) &&
!strcmp(s, (char *)entry + 6)) if ((entry[0] == sig1) && (entry[1] == sig2) &&
{ !strcmp(s, (char *)entry + 6))
val = (entry[2] << 24) | (entry[3] << 16) | {
(entry[4] << 8) | entry[5]; val = (entry[2] << 24) | (entry[3] << 16) |
if (!val) (entry[4] << 8) | entry[5];
val = XK_VoidSymbol; if (!val)
return val; val = XK_VoidSymbol;
} return val;
if (!--n) }
break;
i += h; if (!--n)
if (i >= KTABLESIZE) break;
i -= KTABLESIZE;
i += h;
if (i >= KTABLESIZE)
i -= KTABLESIZE;
} }
if (*s == 'U') { if (*s == 'U') {
val = 0; val = 0;
for (p = &s[1]; *p; p++) { for (p = &s[1]; *p; p++) {
c = *p; c = *p;
if ('0' <= c && c <= '9') val = (val<<4)+c-'0';
else if ('a' <= c && c <= 'f') val = (val<<4)+c-'a'+10; if ('0' <= c && c <= '9')
else if ('A' <= c && c <= 'F') val = (val<<4)+c-'A'+10; val = (val << 4) + c - '0';
else return NoSymbol; else if ('a' <= c && c <= 'f')
if (val > 0x10ffff) val = (val << 4) + c - 'a' + 10;
return NoSymbol; else if ('A' <= c && c <= 'F')
} val = (val << 4) + c - 'A' + 10;
if (val < 0x20 || (val > 0x7e && val < 0xa0)) else
return NoSymbol; return NoSymbol;
if (val < 0x100)
return val; if (val > 0x10ffff)
return NoSymbol;
}
if (val < 0x20 || (val > 0x7e && val < 0xa0))
return NoSymbol;
if (val < 0x100)
return val;
return val | 0x01000000; return val | 0x01000000;
} }
return NoSymbol; return NoSymbol;
} }