Open-code a radio group SimpleLookup

Because, joke's on you, it wasn't actually looking up radio groups.
Just checking to see if it was a string that was "none", or an integer.

Lord give me strength.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
master
Daniel Stone 2012-02-20 16:04:37 +00:00
parent e314931e8f
commit d32822e60f
1 changed files with 10 additions and 8 deletions

View File

@ -1100,11 +1100,6 @@ static LookupEntry repeatEntries[] = {
{NULL, 0}
};
static LookupEntry rgEntries[] = {
{"none", 0},
{NULL, 0}
};
static Bool
SetSymbolsField(KeyInfo * key,
struct xkb_desc * xkb,
@ -1189,12 +1184,19 @@ SetSymbolsField(KeyInfo * key,
Bool permanent = False;
if (uStrCaseCmp(field, "permanentradiogroup") == 0)
permanent = True;
ok = ExprResolveInteger(value, &tmp, SimpleLookup,
(char *) rgEntries);
if (ExprResolveString(value, &tmp)) {
ok = (strcmp(tmp.str, "none") == 0);
free(tmp.str);
if (ok)
tmp.uval = 0;
}
else {
ok = ExprResolveInteger(value, &tmp, NULL, 0);
}
if (!ok)
{
ERROR("Illegal radio group specification for %s\n",
longText(key->name));
longText(key->name));
ACTION("Non-integer radio group ignored\n");
return False;
}