X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fxkbcomp%2Fsymbols.c;h=4495270ecb98a5cc08eb193bb2de852fbd7c0e2f;hb=025ca5790532adfb187bc2508659b2fabb2c05a3;hp=c06afc8148b330d757dee483371d6a497dba7179;hpb=761b675cc3eaf34bb5b75a3f459e328b330bb551;p=platform%2Fupstream%2Flibxkbcommon.git diff --git a/src/xkbcomp/symbols.c b/src/xkbcomp/symbols.c index c06afc8..4495270 100644 --- a/src/xkbcomp/symbols.c +++ b/src/xkbcomp/symbols.c @@ -1193,47 +1193,47 @@ SetGroupName(SymbolsInfo *info, ExprDef *arrayNdx, ExprDef *value) static int HandleSymbolsVar(SymbolsInfo *info, VarDef *stmt) { - ExprResult elem, field; + const char *elem, *field; ExprDef *arrayNdx; bool ret; - if (ExprResolveLhs(info->keymap, stmt->name, &elem, &field, + if (ExprResolveLhs(info->keymap->ctx, stmt->name, &elem, &field, &arrayNdx) == 0) return 0; /* internal error, already reported */ - if (elem.str && istreq(elem.str, "key")) { - ret = SetSymbolsField(info, &info->dflt, field.str, arrayNdx, + if (elem && istreq(elem, "key")) { + ret = SetSymbolsField(info, &info->dflt, field, arrayNdx, stmt->value); } - else if (!elem.str && (istreq(field.str, "name") || - istreq(field.str, "groupname"))) { + else if (!elem && (istreq(field, "name") || + istreq(field, "groupname"))) { ret = SetGroupName(info, arrayNdx, stmt->value); } - else if (!elem.str && (istreq(field.str, "groupswrap") || - istreq(field.str, "wrapgroups"))) { + else if (!elem && (istreq(field, "groupswrap") || + istreq(field, "wrapgroups"))) { log_err(info->keymap->ctx, "Global \"groupswrap\" not supported; Ignored\n"); ret = true; } - else if (!elem.str && (istreq(field.str, "groupsclamp") || - istreq(field.str, "clampgroups"))) { + else if (!elem && (istreq(field, "groupsclamp") || + istreq(field, "clampgroups"))) { log_err(info->keymap->ctx, "Global \"groupsclamp\" not supported; Ignored\n"); ret = true; } - else if (!elem.str && (istreq(field.str, "groupsredirect") || - istreq(field.str, "redirectgroups"))) { + else if (!elem && (istreq(field, "groupsredirect") || + istreq(field, "redirectgroups"))) { log_err(info->keymap->ctx, "Global \"groupsredirect\" not supported; Ignored\n"); ret = true; } - else if (!elem.str && istreq(field.str, "allownone")) { + else if (!elem && istreq(field, "allownone")) { log_err(info->keymap->ctx, "Radio groups not supported; " "Ignoring \"allownone\" specification\n"); ret = true; } else { - ret = SetActionField(info->keymap, elem.str, field.str, arrayNdx, + ret = SetActionField(info->keymap, elem, field, arrayNdx, stmt->value, &info->action); } @@ -1244,7 +1244,7 @@ static bool HandleSymbolsBody(SymbolsInfo *info, VarDef *def, KeyInfo *keyi) { bool ok = true; - ExprResult tmp, field; + const char *elem, *field; ExprDef *arrayNdx; for (; def; def = (VarDef *) def->common.next) { @@ -1255,19 +1255,18 @@ HandleSymbolsBody(SymbolsInfo *info, VarDef *def, KeyInfo *keyi) if (!def->name) { if (!def->value || def->value->op == EXPR_KEYSYM_LIST) - field.str = "symbols"; + field = "symbols"; else - field.str = "actions"; + field = "actions"; arrayNdx = NULL; } else { - ok = ExprResolveLhs(info->keymap, def->name, &tmp, &field, + ok = ExprResolveLhs(info->keymap->ctx, def->name, &elem, &field, &arrayNdx); } if (ok) - ok = SetSymbolsField(info, keyi, field.str, arrayNdx, - def->value); + ok = SetSymbolsField(info, keyi, field, arrayNdx, def->value); } return ok;