rules: reformat CheckApplyRules and ApplyPartialMatches Signed-off-by: Ran Benita <ran234@gmail.com>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
diff --git a/src/xkbcomp/rules.c b/src/xkbcomp/rules.c
index c6e22e0..9b9bf73 100644
--- a/src/xkbcomp/rules.c
+++ b/src/xkbcomp/rules.c
@@ -853,47 +853,42 @@ apply_rule_if_matches(struct rules *rules, struct rule *rule,
}
static void
-XkbRF_ClearPartialMatches(struct rules *rules)
+clear_partial_matches(struct rules *rules)
{
int i;
- struct rule *rule;
- for (i=0,rule=rules->rules;i<rules->num_rules;i++,rule++) {
- rule->flags &= ~RULE_FLAG_PENDING_MATCH;
- }
+ for (i = 0; i < rules->num_rules; i++)
+ rules->rules[i].flags &= ~RULE_FLAG_PENDING_MATCH;
}
static void
-XkbRF_ApplyPartialMatches(struct rules *rules,
- struct xkb_component_names *names)
+apply_partial_matches(struct rules *rules, struct xkb_component_names *kccgst)
{
int i;
- struct rule *rule;
- for (rule = rules->rules, i = 0; i < rules->num_rules; i++, rule++) {
- if ((rule->flags & RULE_FLAG_PENDING_MATCH)==0)
- continue;
- apply_rule(rule, names);
- }
+ for (i = 0; i < rules->num_rules; i++)
+ if (rules->rules[i].flags & RULE_FLAG_PENDING_MATCH)
+ apply_rule(&rules->rules[i], kccgst);
}
static void
-XkbRF_CheckApplyRules(struct rules *rules, struct multi_defs *mdefs,
- struct xkb_component_names *names, unsigned int flags)
+apply_matching_rules(struct rules *rules, struct multi_defs *mdefs,
+ struct xkb_component_names *kccgst, unsigned int flags)
{
int i;
+ int skip = -1;
struct rule *rule;
- int skip;
- for (rule = rules->rules, i=0; i < rules->num_rules; rule++, i++) {
- if ((rule->flags & flags) != flags)
- continue;
- skip = apply_rule_if_matches(rules, rule, mdefs, names);
- if (skip && !(flags & RULE_FLAG_OPTION)) {
- for ( ;(i < rules->num_rules) && (rule->number == skip);
- rule++, i++);
- rule--; i--;
- }
+ for (i = 0; i < rules->num_rules; i++) {
+ rule = &rules->rules[i];
+
+ if ((rule->flags & flags) != flags)
+ continue;
+
+ if ((flags & RULE_FLAG_OPTION) == 0 && rule->number == skip)
+ continue;
+
+ skip = apply_rule_if_matches(rules, rule, mdefs, kccgst);
}
}
@@ -1007,13 +1002,16 @@ XkbcRF_GetComponents(struct rules *rules, struct var_defs *defs,
make_multi_defs(&mdefs, defs);
memset(names, 0, sizeof(struct xkb_component_names));
- XkbRF_ClearPartialMatches(rules);
- XkbRF_CheckApplyRules(rules, &mdefs, names, RULE_FLAG_NORMAL);
- XkbRF_ApplyPartialMatches(rules, names);
- XkbRF_CheckApplyRules(rules, &mdefs, names, RULE_FLAG_APPEND);
- XkbRF_ApplyPartialMatches(rules, names);
- XkbRF_CheckApplyRules(rules, &mdefs, names, RULE_FLAG_OPTION);
- XkbRF_ApplyPartialMatches(rules, names);
+ clear_partial_matches(rules);
+
+ apply_matching_rules(rules, &mdefs, names, RULE_FLAG_NORMAL);
+ apply_partial_matches(rules, names);
+
+ apply_matching_rules(rules, &mdefs, names, RULE_FLAG_APPEND);
+ apply_partial_matches(rules, names);
+
+ apply_matching_rules(rules, &mdefs, names, RULE_FLAG_OPTION);
+ apply_partial_matches(rules, names);
names->keycodes = XkbRF_SubstituteVars(names->keycodes, &mdefs);
names->symbols = XkbRF_SubstituteVars(names->symbols, &mdefs);