Lines Matching defs:rule

417           XkbRF_RulePtr  rule,
486 rule->flags = 0;
487 rule->number = remap->number;
489 rule->flags |= XkbRF_Option;
491 rule->flags |= XkbRF_Append;
493 rule->flags |= XkbRF_Normal;
494 rule->model = _XkbDupString(tmp.name[MODEL]);
495 rule->layout = _XkbDupString(tmp.name[LAYOUT]);
496 rule->variant = _XkbDupString(tmp.name[VARIANT]);
497 rule->option = _XkbDupString(tmp.name[OPTION]);
499 rule->keycodes = _XkbDupString(tmp.name[KEYCODES]);
500 rule->symbols = _XkbDupString(tmp.name[SYMBOLS]);
501 rule->types = _XkbDupString(tmp.name[TYPES]);
502 rule->compat = _XkbDupString(tmp.name[COMPAT]);
503 rule->geometry = _XkbDupString(tmp.name[GEOMETRY]);
504 rule->keymap = _XkbDupString(tmp.name[KEYMAP]);
506 rule->layout_num = rule->variant_num = 0;
510 rule->layout_num = remap->remap[i].index;
512 rule->variant_num = remap->remap[i].index;
639 XkbRF_ApplyRule(XkbRF_RulePtr rule, XkbComponentNamesPtr names)
641 rule->flags &= ~XkbRF_PendingMatch; /* clear the flag because it's applied */
643 Apply(rule->keycodes, &names->keycodes);
644 Apply(rule->symbols, &names->symbols);
645 Apply(rule->types, &names->types);
646 Apply(rule->compat, &names->compat);
647 Apply(rule->geometry, &names->geometry);
648 Apply(rule->keymap, &names->keymap);
674 XkbRF_CheckApplyRule(XkbRF_RulePtr rule,
681 if (rule->model != NULL) {
684 if (strcmp(rule->model, "*") == 0) {
688 if (rule->model[0] == '$') {
689 if (!CheckGroup(rules, rule->model, mdefs->model))
693 if (strcmp(rule->model, mdefs->model) != 0)
698 if (rule->option != NULL) {
701 if ((!MatchOneOf(rule->option, mdefs->options)))
705 if (rule->layout != NULL) {
706 if (mdefs->layout[rule->layout_num] == NULL ||
707 *mdefs->layout[rule->layout_num] == '\0')
709 if (strcmp(rule->layout, "*") == 0) {
713 if (rule->layout[0] == '$') {
714 if (!CheckGroup(rules, rule->layout,
715 mdefs->layout[rule->layout_num]))
719 if (strcmp(rule->layout, mdefs->layout[rule->layout_num]) != 0)
724 if (rule->variant != NULL) {
725 if (mdefs->variant[rule->variant_num] == NULL ||
726 *mdefs->variant[rule->variant_num] == '\0')
728 if (strcmp(rule->variant, "*") == 0) {
732 if (rule->variant[0] == '$') {
733 if (!CheckGroup(rules, rule->variant,
734 mdefs->variant[rule->variant_num]))
738 if (strcmp(rule->variant,
739 mdefs->variant[rule->variant_num]) != 0)
745 rule->flags |= XkbRF_PendingMatch;
746 return rule->number;
749 XkbRF_ApplyRule(rule, names);
750 return rule->number;
757 XkbRF_RulePtr rule;
759 for (i = 0, rule = rules->rules; i < rules->num_rules; i++, rule++) {
760 rule->flags &= ~XkbRF_PendingMatch;
768 XkbRF_RulePtr rule;
770 for (rule = rules->rules, i = 0; i < rules->num_rules; i++, rule++) {
771 if ((rule->flags & XkbRF_PendingMatch) == 0)
773 XkbRF_ApplyRule(rule, names);
784 XkbRF_RulePtr rule;
787 for (rule = rules->rules, i = 0; i < rules->num_rules; rule++, i++) {
788 if ((rule->flags & flags) != flags)
790 skip = XkbRF_CheckApplyRule(rule, mdefs, names, rules);
792 for (; (i < rules->num_rules) && (rule->number == skip);
793 rule++, i++);
794 rule--;
994 XkbRF_RuleRec trule, *rule;
1011 if ((rule = XkbRF_AddRule(rules)) != NULL) {
1012 *rule = trule;
1335 XkbRF_RulePtr rule;
1353 for (i = 0, rule = rules->rules; i < rules->num_rules; i++, rule++) {
1354 if (rule->model)
1355 _XkbFree(rule->model);
1356 if (rule->layout)
1357 _XkbFree(rule->layout);
1358 if (rule->variant)
1359 _XkbFree(rule->variant);
1360 if (rule->option)
1361 _XkbFree(rule->option);
1362 if (rule->keycodes)
1363 _XkbFree(rule->keycodes);
1364 if (rule->symbols)
1365 _XkbFree(rule->symbols);
1366 if (rule->types)
1367 _XkbFree(rule->types);
1368 if (rule->compat)
1369 _XkbFree(rule->compat);
1370 if (rule->geometry)
1371 _XkbFree(rule->geometry);
1372 if (rule->keymap)
1373 _XkbFree(rule->keymap);
1374 bzero((char *) rule, sizeof(XkbRF_RuleRec));