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>
-static LookupEntry rgEntries[] = {
- {"none", 0},
- {NULL, 0}
-};
-
static Bool
SetSymbolsField(KeyInfo * key,
struct xkb_desc * xkb,
static Bool
SetSymbolsField(KeyInfo * key,
struct xkb_desc * xkb,
Bool permanent = False;
if (uStrCaseCmp(field, "permanentradiogroup") == 0)
permanent = True;
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",
if (!ok)
{
ERROR("Illegal radio group specification for %s\n",
ACTION("Non-integer radio group ignored\n");
return False;
}
ACTION("Non-integer radio group ignored\n");
return False;
}