summaryrefslogtreecommitdiff
path: root/src/xkbcomp/symbols.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/xkbcomp/symbols.c')
-rw-r--r--src/xkbcomp/symbols.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/xkbcomp/symbols.c b/src/xkbcomp/symbols.c
index 08b9bd7..0b225cc 100644
--- a/src/xkbcomp/symbols.c
+++ b/src/xkbcomp/symbols.c
@@ -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;
}