Home | History | Annotate | Download | only in xkbcomp

Lines Matching refs:info

188 InitSymbolsInfo(SymbolsInfo *info, const struct xkb_keymap *keymap,
191 memset(info, 0, sizeof(*info));
192 info->ctx = keymap->ctx;
193 info->keymap = keymap;
194 info->merge = MERGE_OVERRIDE;
195 InitKeyInfo(keymap->ctx, &info->default_key);
196 info->actions = actions;
197 info->mods = *mods;
198 info->explicit_group = XKB_LAYOUT_INVALID;
202 ClearSymbolsInfo(SymbolsInfo *info)
205 free(info->name);
206 darray_foreach(keyi, info->keys)
208 darray_free(info->keys);
209 darray_free(info->group_names);
210 darray_free(info->modmaps);
211 ClearKeyInfo(&info->default_key);
215 KeyInfoText(SymbolsInfo *info, KeyInfo *keyi)
217 return KeyNameText(info->ctx, keyi->name);
234 MergeGroups(SymbolsInfo *info, GroupInfo *into, GroupInfo *from, bool clobber,
252 log_warn(info->ctx,
255 group + 1, KeyNameText(info->ctx, key_name),
256 xkb_atom_text(info->ctx, use),
257 xkb_atom_text(info->ctx, ignore));
295 log_warn(info->ctx,
298 i + 1, group + 1, KeyNameText(info->ctx, key_name),
317 log_warn(info->ctx,
320 i + 1, group + 1, KeyNameText(info->ctx, key_name),
365 MergeKeys(SymbolsInfo *info, KeyInfo *into, KeyInfo *from, bool same_file)
370 const int verbosity = xkb_context_get_log_verbosity(info->ctx);
377 InitKeyInfo(info->ctx, from);
383 MergeGroups(info,
416 log_warn(info->ctx,
419 KeyNameText(info->ctx, into->name),
423 InitKeyInfo(info->ctx, from);
429 AddKeySymbols(SymbolsInfo *info, KeyInfo *keyi, bool same_file)
440 real_name = XkbResolveKeyAlias(info->keymap, keyi->name);
444 darray_foreach(iter, info->keys)
446 return MergeKeys(info, iter, keyi, same_file);
448 darray_append(info->keys, *keyi);
449 InitKeyInfo(info->ctx, keyi);
454 AddModMapEntry(SymbolsInfo *info, ModMapEntry *new)
459 darray_foreach(old, info->modmaps) {
474 log_err(info->ctx,
477 KeysymText(info->ctx, new->u.keySym),
478 ModIndexText(info->ctx, &info->mods, use),
479 ModIndexText(info->ctx, &info->mods, ignore));
481 log_err(info->ctx,
484 KeyNameText(info->ctx, new->u.keyName),
485 ModIndexText(info->ctx, &info->mods, use),
486 ModIndexText(info->ctx, &info->mods, ignore));
492 darray_append(info->modmaps, *new);
560 HandleSymbolsFile(SymbolsInfo *info, XkbFile *file, enum merge_mode merge);
563 HandleIncludeSymbols(SymbolsInfo *info, IncludeStmt *include)
567 InitSymbolsInfo(&included, info->keymap, info->actions, &info->mods);
575 file = ProcessIncludeFile(info->ctx, stmt, FILE_TYPE_SYMBOLS);
577 info->errorCount += 10;
582 InitSymbolsInfo(&next_incl, info->keymap, info->actions,
587 log_err(info->ctx,
591 next_incl.explicit_group = info->explicit_group;
595 next_incl.explicit_group = info->explicit_group;
606 MergeIncludedSymbols(info, &included, include->merge);
609 return (info->errorCount == 0);
616 GetGroupIndex(SymbolsInfo *info, KeyInfo *keyi, ExprDef *arrayNdx,
635 log_err(info->ctx,
638 name, KeyInfoText(info, keyi), XKB_MAX_GROUPS, name);
647 if (!ExprResolveGroup(info->ctx, arrayNdx, ndx_rtrn)) {
648 log_err(info->ctx,
651 name, KeyInfoText(info, keyi));
663 AddSymbolsToKey(SymbolsInfo *info, KeyInfo *keyi, ExprDef *arrayNdx,
670 if (!GetGroupIndex(info, keyi, arrayNdx, SYMBOLS, &ndx))
681 log_err(info->ctx,
685 KeyInfoText(info, keyi));
690 log_err(info->ctx,
693 KeyInfoText(info, keyi), ndx + 1);
732 AddActionsToKey(SymbolsInfo *info, KeyInfo *keyi, ExprDef *arrayNdx,
740 if (!GetGroupIndex(info, keyi, arrayNdx, ACTIONS, &ndx))
751 log_wsgo(info->ctx,
754 value->expr.op, ndx, KeyInfoText(info, keyi));
759 log_wsgo(info->ctx,
761 KeyInfoText(info, keyi), ndx);
778 if (!HandleActionDef(info->ctx, info->actions, &info->mods, act, toAct))
779 log_err(info->ctx,
782 KeyInfoText(info, keyi), ndx + 1, i + 1);
802 SetSymbolsField(SymbolsInfo *info, KeyInfo *keyi, const char *field,
809 if (!ExprResolveString(info->ctx, value, &val)) {
810 log_err(info->ctx,
820 else if (!ExprResolveGroup(info->ctx, arrayNdx, &ndx)) {
821 log_err(info->ctx,
824 KeyInfoText(info, keyi));
836 return AddSymbolsToKey(info, keyi, arrayNdx, value);
839 return AddActionsToKey(info, keyi, arrayNdx, value);
846 if (!ExprResolveModMask(info->ctx, value, MOD_VIRT, &info->mods,
848 log_err(info->ctx,
852 KeyInfoText(info, keyi));
862 log_vrb(info->ctx, 1,
865 KeyInfoText(info, keyi));
870 log_vrb(info->ctx, 1,
873 KeyInfoText(info, keyi));
877 log_vrb(info->ctx, 1,
880 KeyInfoText(info, keyi));
887 if (!ExprResolveEnum(info->ctx, value, &val, repeatEntries)) {
888 log_err(info->ctx,
891 KeyInfoText(info, keyi));
902 if (!ExprResolveBoolean(info->ctx, value, &set)) {
903 log_err(info->ctx,
906 KeyInfoText(info, keyi));
917 if (!ExprResolveBoolean(info->ctx, value, &set)) {
918 log_err(info->ctx,
921 KeyInfoText(info, keyi));
932 if (!ExprResolveGroup(info->ctx, value, &grp)) {
933 log_err(info->ctx,
936 KeyInfoText(info, keyi));
945 log_err(info->ctx,
956 SetGroupName(SymbolsInfo *info, ExprDef *arrayNdx, ExprDef *value)
962 log_vrb(info->ctx, 1,
968 if (!ExprResolveGroup(info->ctx, arrayNdx, &group)) {
969 log_err(info->ctx,
975 if (!ExprResolveString(info->ctx, value, &name)) {
976 log_err(info->ctx,
982 if (info->explicit_group == XKB_LAYOUT_INVALID) {
986 group_to_use = info->explicit_group;
989 log_warn(info->ctx,
993 info->name, group,
994 xkb_atom_text(info->ctx, name));
998 if (group_to_use >= darray_size(info->group_names))
999 darray_resize0(info->group_names, group_to_use + 1);
1000 darray_item(info->group_names, group_to_use) = name;
1006 HandleGlobalVar(SymbolsInfo *info, VarDef *stmt)
1012 if (!ExprResolveLhs(info->ctx, stmt->name, &elem, &field, &arrayNdx))
1016 ret = SetSymbolsField(info, &info->default_key, field, arrayNdx,
1021 ret = SetGroupName(info, arrayNdx, stmt->value);
1025 log_err(info->ctx,
1031 log_err(info->ctx,
1037 log_err(info->ctx,
1042 log_err(info->ctx,
1048 ret = SetActionField(info->ctx, info->actions, &info->mods,
1056 HandleSymbolsBody(SymbolsInfo *info, VarDef *def, KeyInfo *keyi)
1064 log_err(info->ctx,
1078 ok = ExprResolveLhs(info->ctx, def->name, &elem, &field,
1083 ok = SetSymbolsField(info, keyi, field, arrayNdx, def->value);
1090 SetExplicitGroup(SymbolsInfo *info, KeyInfo *keyi)
1096 if (info->explicit_group == XKB_LAYOUT_INVALID)
1108 log_warn(info->ctx,
1112 info->name, KeyInfoText(info, keyi));
1114 darray_resize0(keyi->groups, info->explicit_group + 1);
1115 if (info->explicit_group > 0) {
1116 darray_item(keyi->groups, info->explicit_group) =
1125 HandleSymbolsDef(SymbolsInfo *info, SymbolsDef *stmt)
1129 keyi = info->default_key;
1131 darray_copy(keyi.groups, info->default_key.groups);
1134 &darray_item(info->default_key.groups, i));
1138 if (!HandleSymbolsBody(info, stmt->symbols, &keyi)) {
1139 info->errorCount++;
1143 if (!SetExplicitGroup(info, &keyi)) {
1144 info->errorCount++;
1148 if (!AddKeySymbols(info, &keyi, true)) {
1149 info->errorCount++;
1157 HandleModMapDef(SymbolsInfo *info, ModMapDef *def)
1162 struct xkb_context *ctx = info->ctx;
1164 ndx = XkbModNameToIndex(&info->mods, def->modifier, MOD_REAL);
1166 log_err(info->ctx,
1190 log_err(info->ctx,
1193 ModIndexText(info->ctx, &info->mods, tmp.modifier));
1197 ok = AddModMapEntry(info, &tmp) && ok;
1203 HandleSymbolsFile(SymbolsInfo *info, XkbFile *file, enum merge_mode merge)
1207 free(info->name);
1208 info->name = strdup_safe(file->name);
1213 ok = HandleIncludeSymbols(info, (IncludeStmt *) stmt);
1216 ok = HandleSymbolsDef(info, (SymbolsDef *) stmt);
1219 ok = HandleGlobalVar(info, (VarDef *) stmt);
1222 ok = HandleVModDef(info->ctx, &info->mods, (VModDef *) stmt, merge);
1225 ok = HandleModMapDef(info, (ModMapDef *) stmt);
1228 log_err(info->ctx,
1236 info->errorCount++;
1238 if (info->errorCount > 10) {
1239 log_err(info->ctx, "Abandoning symbols file \"%s\"\n",
1405 CopySymbolsDefToKeymap(struct xkb_keymap *keymap, SymbolsInfo *info,
1419 log_vrb(info->ctx, 5,
1421 KeyInfoText(info, keyi));
1462 log_vrb(info->ctx, 1,
1466 KeyInfoText(info, keyi),
1506 CopyModMapDefToKeymap(struct xkb_keymap *keymap, SymbolsInfo *info,
1514 log_vrb(info->ctx, 5,
1517 KeyNameText(info->ctx, entry->u.keyName),
1518 ModIndexText(info->ctx, &info->mods, entry->modifier));
1525 log_vrb(info->ctx, 5,
1528 KeysymText(info->ctx, entry->u.keySym),
1529 ModIndexText(info->ctx, &info->mods, entry->modifier));
1539 CopySymbolsToKeymap(struct xkb_keymap *keymap, SymbolsInfo *info)
1544 keymap->symbols_section_name = strdup_safe(info->name);
1547 keymap->mods = info->mods;
1549 darray_steal(info->group_names,
1552 darray_foreach(keyi, info->keys)
1553 if (!CopySymbolsDefToKeymap(keymap, info, keyi))
1554 info->errorCount++;
1564 info->ctx,
1566 KeyNameText(info->ctx, key->name));
1570 darray_foreach(mm, info->modmaps)
1571 if (!CopyModMapDefToKeymap(keymap, info, mm))
1572 info->errorCount++;
1582 SymbolsInfo info;
1589 InitSymbolsInfo(&info, keymap, actions, &keymap->mods);
1590 info.default_key.merge = merge;
1592 HandleSymbolsFile(&info, file, merge);
1594 if (info.errorCount != 0)
1597 if (!CopySymbolsToKeymap(keymap, &info))
1600 ClearSymbolsInfo(&info);
1606 ClearSymbolsInfo(&info);