Lines Matching defs:rules

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