Lines Matching full:rules

604 CheckGroup(XkbRF_RulesPtr rules, const char *group_name, const char *name)  in CheckGroup()  argument
610 for (i = 0, group = rules->groups; i < rules->num_groups; i++, group++) { in CheckGroup()
615 if (i == rules->num_groups) in CheckGroup()
628 XkbComponentNamesPtr names, XkbRF_RulesPtr rules) in XkbRF_CheckApplyRule() argument
640 if (!CheckGroup(rules, rule->model, mdefs->model)) in XkbRF_CheckApplyRule()
665 if (!CheckGroup(rules, rule->layout, in XkbRF_CheckApplyRule()
684 if (!CheckGroup(rules, rule->variant, in XkbRF_CheckApplyRule()
705 XkbRF_ClearPartialMatches(XkbRF_RulesPtr rules) in XkbRF_ClearPartialMatches() argument
710 for (i = 0, rule = rules->rules; i < rules->num_rules; i++, rule++) { in XkbRF_ClearPartialMatches()
716 XkbRF_ApplyPartialMatches(XkbRF_RulesPtr rules, XkbComponentNamesPtr names) in XkbRF_ApplyPartialMatches() argument
721 for (rule = rules->rules, i = 0; i < rules->num_rules; i++, rule++) { in XkbRF_ApplyPartialMatches()
729 XkbRF_CheckApplyRules(XkbRF_RulesPtr rules, in XkbRF_CheckApplyRules() argument
737 for (rule = rules->rules, i = 0; i < rules->num_rules; rule++, i++) { in XkbRF_CheckApplyRules()
740 skip = XkbRF_CheckApplyRule(rule, mdefs, names, rules); in XkbRF_CheckApplyRules()
742 for (; (i < rules->num_rules) && (rule->number == skip); in XkbRF_CheckApplyRules()
858 XkbRF_GetComponents(XkbRF_RulesPtr rules, in XkbRF_GetComponents() argument
866 XkbRF_ClearPartialMatches(rules); in XkbRF_GetComponents()
867 XkbRF_CheckApplyRules(rules, &mdefs, names, XkbRF_Normal); in XkbRF_GetComponents()
868 XkbRF_ApplyPartialMatches(rules, names); in XkbRF_GetComponents()
869 XkbRF_CheckApplyRules(rules, &mdefs, names, XkbRF_Append); in XkbRF_GetComponents()
870 XkbRF_ApplyPartialMatches(rules, names); in XkbRF_GetComponents()
871 XkbRF_CheckApplyRules(rules, &mdefs, names, XkbRF_Option); in XkbRF_GetComponents()
872 XkbRF_ApplyPartialMatches(rules, names); in XkbRF_GetComponents()
891 XkbRF_AddRule(XkbRF_RulesPtr rules) in XkbRF_AddRule() argument
893 if (rules->sz_rules < 1) { in XkbRF_AddRule()
894 rules->sz_rules = 16; in XkbRF_AddRule()
895 rules->num_rules = 0; in XkbRF_AddRule()
896 rules->rules = calloc(rules->sz_rules, sizeof(XkbRF_RuleRec)); in XkbRF_AddRule()
898 else if (rules->num_rules >= rules->sz_rules) { in XkbRF_AddRule()
899 rules->sz_rules *= 2; in XkbRF_AddRule()
900 rules->rules = reallocarray(rules->rules, in XkbRF_AddRule()
901 rules->sz_rules, sizeof(XkbRF_RuleRec)); in XkbRF_AddRule()
903 if (!rules->rules) { in XkbRF_AddRule()
904 rules->sz_rules = rules->num_rules = 0; in XkbRF_AddRule()
908 memset((char *) &rules->rules[rules->num_rules], 0, sizeof(XkbRF_RuleRec)); in XkbRF_AddRule()
909 return &rules->rules[rules->num_rules++]; in XkbRF_AddRule()
913 XkbRF_AddGroup(XkbRF_RulesPtr rules) in XkbRF_AddGroup() argument
915 if (rules->sz_groups < 1) { in XkbRF_AddGroup()
916 rules->sz_groups = 16; in XkbRF_AddGroup()
917 rules->num_groups = 0; in XkbRF_AddGroup()
918 rules->groups = calloc(rules->sz_groups, sizeof(XkbRF_GroupRec)); in XkbRF_AddGroup()
920 else if (rules->num_groups >= rules->sz_groups) { in XkbRF_AddGroup()
921 rules->sz_groups *= 2; in XkbRF_AddGroup()
922 rules->groups = reallocarray(rules->groups, in XkbRF_AddGroup()
923 rules->sz_groups, sizeof(XkbRF_GroupRec)); in XkbRF_AddGroup()
925 if (!rules->groups) { in XkbRF_AddGroup()
926 rules->sz_groups = rules->num_groups = 0; in XkbRF_AddGroup()
930 memset((char *) &rules->groups[rules->num_groups], 0, in XkbRF_AddGroup()
932 return &rules->groups[rules->num_groups++]; in XkbRF_AddGroup()
936 XkbRF_LoadRules(FILE * file, XkbRF_RulesPtr rules) in XkbRF_LoadRules() argument
943 if (!(rules && file)) in XkbRF_LoadRules()
951 if ((group = XkbRF_AddGroup(rules)) != NULL) { in XkbRF_LoadRules()
957 if ((rule = XkbRF_AddRule(rules)) != NULL) { in XkbRF_LoadRules()
970 XkbRF_LoadRulesByName(char *base, char *locale, XkbRF_RulesPtr rules) in XkbRF_LoadRulesByName() argument
976 if ((!base) || (!rules)) in XkbRF_LoadRulesByName()
995 ok = XkbRF_LoadRules(file, rules); in XkbRF_LoadRulesByName()
1011 XkbRF_Free(XkbRF_RulesPtr rules, Bool freeRules) in XkbRF_Free() argument
1017 if (!rules) in XkbRF_Free()
1019 if (rules->rules) { in XkbRF_Free()
1020 for (i = 0, rule = rules->rules; i < rules->num_rules; i++, rule++) { in XkbRF_Free()
1032 free(rules->rules); in XkbRF_Free()
1033 rules->num_rules = rules->sz_rules = 0; in XkbRF_Free()
1034 rules->rules = NULL; in XkbRF_Free()
1037 if (rules->groups) { in XkbRF_Free()
1038 for (i = 0, group = rules->groups; i < rules->num_groups; i++, group++) { in XkbRF_Free()
1042 free(rules->groups); in XkbRF_Free()
1043 rules->num_groups = 0; in XkbRF_Free()
1044 rules->groups = NULL; in XkbRF_Free()
1047 free(rules); in XkbRF_Free()