Lines Matching defs:rules

652 CheckGroup(XkbRF_RulesPtr rules, char *group_name, char *name)
658 for (i = 0, group = rules->groups; i < rules->num_groups; i++, group++) {
663 if (i == rules->num_groups)
677 XkbRF_RulesPtr rules)
689 if (!CheckGroup(rules, rule->model, mdefs->model))
714 if (!CheckGroup(rules, rule->layout,
733 if (!CheckGroup(rules, rule->variant,
754 XkbRF_ClearPartialMatches(XkbRF_RulesPtr rules)
759 for (i = 0, rule = rules->rules; i < rules->num_rules; i++, rule++) {
765 XkbRF_ApplyPartialMatches(XkbRF_RulesPtr rules, XkbComponentNamesPtr names)
770 for (rule = rules->rules, i = 0; i < rules->num_rules; i++, rule++) {
778 XkbRF_CheckApplyRules(XkbRF_RulesPtr rules,
787 for (rule = rules->rules, i = 0; i < rules->num_rules; rule++, i++) {
790 skip = XkbRF_CheckApplyRule(rule, mdefs, names, rules);
792 for (; (i < rules->num_rules) && (rule->number == skip);
908 XkbRF_GetComponents(XkbRF_RulesPtr rules,
917 XkbRF_ClearPartialMatches(rules);
918 XkbRF_CheckApplyRules(rules, &mdefs, names, XkbRF_Normal);
919 XkbRF_ApplyPartialMatches(rules, names);
920 XkbRF_CheckApplyRules(rules, &mdefs, names, XkbRF_Append);
921 XkbRF_ApplyPartialMatches(rules, names);
922 XkbRF_CheckApplyRules(rules, &mdefs, names, XkbRF_Option);
923 XkbRF_ApplyPartialMatches(rules, names);
944 XkbRF_AddRule(XkbRF_RulesPtr rules)
946 if (rules->sz_rules < 1) {
947 rules->sz_rules = 16;
948 rules->num_rules = 0;
949 rules->rules = _XkbTypedCalloc(rules->sz_rules, XkbRF_RuleRec);
951 else if (rules->num_rules >= rules->sz_rules) {
952 rules->sz_rules *= 2;
953 rules->rules = _XkbTypedRealloc(rules->rules, rules->sz_rules,
956 if (!rules->rules) {
957 rules->sz_rules = rules->num_rules = 0;
963 bzero((char *) &rules->rules[rules->num_rules], sizeof(XkbRF_RuleRec));
964 return &rules->rules[rules->num_rules++];
968 XkbRF_AddGroup(XkbRF_RulesPtr rules)
970 if (rules->sz_groups < 1) {
971 rules->sz_groups = 16;
972 rules->num_groups = 0;
973 rules->groups = _XkbTypedCalloc(rules->sz_groups, XkbRF_GroupRec);
975 else if (rules->num_groups >= rules->sz_groups) {
976 rules->sz_groups *= 2;
977 rules->groups = _XkbTypedRealloc(rules->groups, rules->sz_groups,
980 if (!rules->groups) {
981 rules->sz_groups = rules->num_groups = 0;
985 bzero((char *) &rules->groups[rules->num_groups], sizeof(XkbRF_GroupRec));
986 return &rules->groups[rules->num_groups++];
990 XkbRF_LoadRules(FILE *file, XkbRF_RulesPtr rules)
997 if (!(rules && file))
1005 if ((group = XkbRF_AddGroup(rules)) != NULL) {
1011 if ((rule = XkbRF_AddRule(rules)) != NULL) {
1024 XkbRF_LoadRulesByName(char *base, char *locale, XkbRF_RulesPtr rules)
1030 if ((!base) || (!rules))
1050 ok = XkbRF_LoadRules(file, rules);
1100 XkbRF_AddVarToDescribe(XkbRF_RulesPtr rules, char *name)
1102 if (rules->sz_extra < 1) {
1103 rules->num_extra = 0;
1104 rules->sz_extra = 1;
1105 rules->extra_names = _XkbTypedCalloc(rules->sz_extra, char *);
1107 rules->extra = _XkbTypedCalloc(rules->sz_extra, XkbRF_DescribeVarsRec);
1109 else if (rules->num_extra >= rules->sz_extra) {
1110 rules->sz_extra *= 2;
1111 rules->extra_names =
1112 _XkbTypedRealloc(rules->extra_names, rules->sz_extra, char *);
1113 rules->extra =
1114 _XkbTypedRealloc(rules->extra, rules->sz_extra,
1117 if ((!rules->extra_names) || (!rules->extra)) {
1119 rules->sz_extra = rules->num_extra = 0;
1120 rules->extra_names = NULL;
1121 rules->extra = NULL;
1124 rules->extra_names[rules->num_extra] = _XkbDupString(name);
1125 bzero(&rules->extra[rules->num_extra], sizeof(XkbRF_DescribeVarsRec));
1126 return &rules->extra[rules->num_extra++];
1130 XkbRF_LoadDescriptions(FILE *file, XkbRF_RulesPtr rules)
1156 for (i = 0; (i < rules->num_extra) && (extra_ndx < 0); i++) {
1157 if (_XkbStrCaseCmp(tok, rules->extra_names[i]))
1164 var = XkbRF_AddVarToDescribe(rules, tok);
1166 extra_ndx = var - rules->extra;
1203 XkbRF_AddVarDescCopy(&rules->models, &tmp);
1206 XkbRF_AddVarDescCopy(&rules->layouts, &tmp);
1209 XkbRF_AddVarDescCopy(&rules->variants, &tmp);
1212 XkbRF_AddVarDescCopy(&rules->options, &tmp);
1215 XkbRF_AddVarDescCopy(&rules->extra[extra_ndx], &tmp);
1220 if ((rules->models.num_desc == 0) && (rules->layouts.num_desc == 0) &&
1221 (rules->variants.num_desc == 0) && (rules->options.num_desc == 0) &&
1222 (rules->num_extra == 0)) {
1229 XkbRF_LoadDescriptionsByName(char *base, char *locale, XkbRF_RulesPtr rules)
1235 if ((!base) || (!rules))
1256 ok = XkbRF_LoadDescriptions(file, rules);
1266 XkbRF_RulesPtr rules;
1270 if ((rules = _XkbTypedCalloc(1, XkbRF_RulesRec)) == NULL)
1272 if (wantDesc && (!XkbRF_LoadDescriptionsByName(base, locale, rules))) {
1273 XkbRF_Free(rules, True);
1276 if (wantRules && (!XkbRF_LoadRulesByName(base, locale, rules))) {
1277 XkbRF_Free(rules, True);
1280 return rules;
1286 XkbRF_RulesPtr rules;
1288 if ((rules = _XkbTypedCalloc(1, XkbRF_RulesRec)) == NULL)
1291 rules->sz_rules = szRules;
1292 rules->rules = _XkbTypedCalloc(rules->sz_rules, XkbRF_RuleRec);
1293 if (!rules->rules) {
1294 _XkbFree(rules);
1299 rules->sz_extra = szExtra;
1300 rules->extra = _XkbTypedCalloc(rules->sz_extra, XkbRF_DescribeVarsRec);
1301 if (!rules->extra) {
1302 if (rules->rules)
1303 _XkbFree(rules->rules);
1304 _XkbFree(rules);
1308 return rules;
1332 XkbRF_Free(XkbRF_RulesPtr rules, Bool freeRules)
1338 if (!rules)
1340 XkbRF_ClearVarDescriptions(&rules->models);
1341 XkbRF_ClearVarDescriptions(&rules->layouts);
1342 XkbRF_ClearVarDescriptions(&rules->variants);
1343 XkbRF_ClearVarDescriptions(&rules->options);
1344 if (rules->extra) {
1345 for (i = 0; i < rules->num_extra; i++) {
1346 XkbRF_ClearVarDescriptions(&rules->extra[i]);
1348 _XkbFree(rules->extra);
1349 rules->num_extra = rules->sz_extra = 0;
1350 rules->extra = NULL;
1352 if (rules->rules) {
1353 for (i = 0, rule = rules->rules; i < rules->num_rules; i++, rule++) {
1376 _XkbFree(rules->rules);
1377 rules->num_rules = rules->sz_rules = 0;
1378 rules->rules = NULL;
1381 if (rules->groups) {
1382 for (i = 0, group = rules->groups; i < rules->num_groups; i++, group++) {
1388 _XkbFree(rules->groups);
1389 rules->num_groups = 0;
1390 rules->groups = NULL;
1393 _XkbFree(rules);