Lines Matching full:rule

372           RemapSpec * remap, XkbRF_RulePtr rule, XkbRF_GroupPtr group)  in CheckLine()  argument
440 rule->flags = 0; in CheckLine()
441 rule->number = remap->number; in CheckLine()
443 rule->flags |= XkbRF_Option; in CheckLine()
445 rule->flags |= XkbRF_Append; in CheckLine()
447 rule->flags |= XkbRF_Normal; in CheckLine()
448 rule->model = Xstrdup(tmp.name[MODEL]); in CheckLine()
449 rule->layout = Xstrdup(tmp.name[LAYOUT]); in CheckLine()
450 rule->variant = Xstrdup(tmp.name[VARIANT]); in CheckLine()
451 rule->option = Xstrdup(tmp.name[OPTION]); in CheckLine()
453 rule->keycodes = Xstrdup(tmp.name[KEYCODES]); in CheckLine()
454 rule->symbols = Xstrdup(tmp.name[SYMBOLS]); in CheckLine()
455 rule->types = Xstrdup(tmp.name[TYPES]); in CheckLine()
456 rule->compat = Xstrdup(tmp.name[COMPAT]); in CheckLine()
457 rule->geometry = Xstrdup(tmp.name[GEOMETRY]); in CheckLine()
459 rule->layout_num = rule->variant_num = 0; in CheckLine()
463 rule->layout_num = remap->remap[i].index; in CheckLine()
465 rule->variant_num = remap->remap[i].index; in CheckLine()
592 XkbRF_ApplyRule(XkbRF_RulePtr rule, XkbComponentNamesPtr names) in XkbRF_ApplyRule() argument
594 rule->flags &= ~XkbRF_PendingMatch; /* clear the flag because it's applied */ in XkbRF_ApplyRule()
596 Apply(rule->keycodes, &names->keycodes); in XkbRF_ApplyRule()
597 Apply(rule->symbols, &names->symbols); in XkbRF_ApplyRule()
598 Apply(rule->types, &names->types); in XkbRF_ApplyRule()
599 Apply(rule->compat, &names->compat); in XkbRF_ApplyRule()
600 Apply(rule->geometry, &names->geometry); in XkbRF_ApplyRule()
626 XkbRF_CheckApplyRule(XkbRF_RulePtr rule, in XkbRF_CheckApplyRule() argument
632 if (rule->model != NULL) { in XkbRF_CheckApplyRule()
635 if (strcmp(rule->model, "*") == 0) { in XkbRF_CheckApplyRule()
639 if (rule->model[0] == '$') { in XkbRF_CheckApplyRule()
640 if (!CheckGroup(rules, rule->model, mdefs->model)) in XkbRF_CheckApplyRule()
644 if (strcmp(rule->model, mdefs->model) != 0) in XkbRF_CheckApplyRule()
649 if (rule->option != NULL) { in XkbRF_CheckApplyRule()
652 if ((!MatchOneOf(rule->option, mdefs->options))) in XkbRF_CheckApplyRule()
656 if (rule->layout != NULL) { in XkbRF_CheckApplyRule()
657 if (mdefs->layout[rule->layout_num] == NULL || in XkbRF_CheckApplyRule()
658 *mdefs->layout[rule->layout_num] == '\0') in XkbRF_CheckApplyRule()
660 if (strcmp(rule->layout, "*") == 0) { in XkbRF_CheckApplyRule()
664 if (rule->layout[0] == '$') { in XkbRF_CheckApplyRule()
665 if (!CheckGroup(rules, rule->layout, in XkbRF_CheckApplyRule()
666 mdefs->layout[rule->layout_num])) in XkbRF_CheckApplyRule()
670 if (strcmp(rule->layout, mdefs->layout[rule->layout_num]) != 0) in XkbRF_CheckApplyRule()
675 if (rule->variant != NULL) { in XkbRF_CheckApplyRule()
676 if (mdefs->variant[rule->variant_num] == NULL || in XkbRF_CheckApplyRule()
677 *mdefs->variant[rule->variant_num] == '\0') in XkbRF_CheckApplyRule()
679 if (strcmp(rule->variant, "*") == 0) { in XkbRF_CheckApplyRule()
683 if (rule->variant[0] == '$') { in XkbRF_CheckApplyRule()
684 if (!CheckGroup(rules, rule->variant, in XkbRF_CheckApplyRule()
685 mdefs->variant[rule->variant_num])) in XkbRF_CheckApplyRule()
689 if (strcmp(rule->variant, in XkbRF_CheckApplyRule()
690 mdefs->variant[rule->variant_num]) != 0) in XkbRF_CheckApplyRule()
696 rule->flags |= XkbRF_PendingMatch; in XkbRF_CheckApplyRule()
697 return rule->number; in XkbRF_CheckApplyRule()
700 XkbRF_ApplyRule(rule, names); in XkbRF_CheckApplyRule()
701 return rule->number; in XkbRF_CheckApplyRule()
708 XkbRF_RulePtr rule; in XkbRF_ClearPartialMatches() local
710 for (i = 0, rule = rules->rules; i < rules->num_rules; i++, rule++) { in XkbRF_ClearPartialMatches()
711 rule->flags &= ~XkbRF_PendingMatch; in XkbRF_ClearPartialMatches()
719 XkbRF_RulePtr rule; in XkbRF_ApplyPartialMatches() local
721 for (rule = rules->rules, i = 0; i < rules->num_rules; i++, rule++) { in XkbRF_ApplyPartialMatches()
722 if ((rule->flags & XkbRF_PendingMatch) == 0) in XkbRF_ApplyPartialMatches()
724 XkbRF_ApplyRule(rule, names); in XkbRF_ApplyPartialMatches()
734 XkbRF_RulePtr rule; in XkbRF_CheckApplyRules() local
737 for (rule = rules->rules, i = 0; i < rules->num_rules; rule++, i++) { in XkbRF_CheckApplyRules()
738 if ((rule->flags & flags) != flags) 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()
743 rule++, i++); in XkbRF_CheckApplyRules()
744 rule--; in XkbRF_CheckApplyRules()
940 XkbRF_RuleRec trule, *rule; in XkbRF_LoadRules() local
957 if ((rule = XkbRF_AddRule(rules)) != NULL) { in XkbRF_LoadRules()
958 *rule = trule; in XkbRF_LoadRules()
1014 XkbRF_RulePtr rule; in XkbRF_Free() local
1020 for (i = 0, rule = rules->rules; i < rules->num_rules; i++, rule++) { in XkbRF_Free()
1021 free((void *) rule->model); in XkbRF_Free()
1022 free((void *) rule->layout); in XkbRF_Free()
1023 free((void *) rule->variant); in XkbRF_Free()
1024 free((void *) rule->option); in XkbRF_Free()
1025 free((void *) rule->keycodes); in XkbRF_Free()
1026 free((void *) rule->symbols); in XkbRF_Free()
1027 free((void *) rule->types); in XkbRF_Free()
1028 free((void *) rule->compat); in XkbRF_Free()
1029 free((void *) rule->geometry); in XkbRF_Free()
1030 memset((char *) rule, 0, sizeof(XkbRF_RuleRec)); in XkbRF_Free()