Lines Matching defs:rule
371 XkbRF_RulePtr rule,
438 rule->flags= 0;
439 rule->number = remap->number;
441 rule->flags|= XkbRF_Option;
443 rule->flags|= XkbRF_Append;
445 rule->flags|= XkbRF_Normal;
446 rule->model= _XkbDupString(tmp.name[MODEL]);
447 rule->layout= _XkbDupString(tmp.name[LAYOUT]);
448 rule->variant= _XkbDupString(tmp.name[VARIANT]);
449 rule->option= _XkbDupString(tmp.name[OPTION]);
451 rule->keycodes= _XkbDupString(tmp.name[KEYCODES]);
452 rule->symbols= _XkbDupString(tmp.name[SYMBOLS]);
453 rule->types= _XkbDupString(tmp.name[TYPES]);
454 rule->compat= _XkbDupString(tmp.name[COMPAT]);
455 rule->geometry= _XkbDupString(tmp.name[GEOMETRY]);
457 rule->layout_num = rule->variant_num = 0;
461 rule->layout_num = remap->remap[i].index;
463 rule->variant_num = remap->remap[i].index;
575 XkbRF_ApplyRule( XkbRF_RulePtr rule,
578 rule->flags&= ~XkbRF_PendingMatch; /* clear the flag because it's applied */
580 Apply(rule->keycodes, &names->keycodes);
581 Apply(rule->symbols, &names->symbols);
582 Apply(rule->types, &names->types);
583 Apply(rule->compat, &names->compat);
584 Apply(rule->geometry, &names->geometry);
612 XkbRF_CheckApplyRule( XkbRF_RulePtr rule,
619 if (rule->model != NULL) {
622 if (strcmp(rule->model, "*") == 0) {
625 if (rule->model[0] == '$') {
626 if (!CheckGroup(rules, rule->model, mdefs->model))
629 if (strcmp(rule->model, mdefs->model) != 0)
634 if (rule->option != NULL) {
637 if ((!MatchOneOf(rule->option,mdefs->options)))
641 if (rule->layout != NULL) {
642 if(mdefs->layout[rule->layout_num] == NULL ||
643 *mdefs->layout[rule->layout_num] == '\0')
645 if (strcmp(rule->layout, "*") == 0) {
648 if (rule->layout[0] == '$') {
649 if (!CheckGroup(rules, rule->layout,
650 mdefs->layout[rule->layout_num]))
653 if (strcmp(rule->layout, mdefs->layout[rule->layout_num]) != 0)
658 if (rule->variant != NULL) {
659 if (mdefs->variant[rule->variant_num] == NULL ||
660 *mdefs->variant[rule->variant_num] == '\0')
662 if (strcmp(rule->variant, "*") == 0) {
665 if (rule->variant[0] == '$') {
666 if (!CheckGroup(rules, rule->variant,
667 mdefs->variant[rule->variant_num]))
670 if (strcmp(rule->variant,
671 mdefs->variant[rule->variant_num]) != 0)
677 rule->flags|= XkbRF_PendingMatch;
678 return rule->number;
681 XkbRF_ApplyRule(rule,names);
682 return rule->number;
689 XkbRF_RulePtr rule;
691 for (i=0,rule=rules->rules;i<rules->num_rules;i++,rule++) {
692 rule->flags&= ~XkbRF_PendingMatch;
700 XkbRF_RulePtr rule;
702 for (rule = rules->rules, i = 0; i < rules->num_rules; i++, rule++) {
703 if ((rule->flags&XkbRF_PendingMatch)==0)
705 XkbRF_ApplyRule(rule,names);
716 XkbRF_RulePtr rule;
719 for (rule = rules->rules, i=0; i < rules->num_rules; rule++, i++) {
720 if ((rule->flags & flags) != flags)
722 skip = XkbRF_CheckApplyRule(rule, mdefs, names, rules);
724 for ( ;(i < rules->num_rules) && (rule->number == skip);
725 rule++, i++);
726 rule--; i--;
910 XkbRF_RuleRec trule,*rule;
926 if ((rule= XkbRF_AddRule(rules))!=NULL) {
927 *rule= trule;
984 XkbRF_RulePtr rule;
990 for (i=0,rule=rules->rules;i<rules->num_rules;i++,rule++) {
991 free(rule->model);
992 free(rule->layout);
993 free(rule->variant);
994 free(rule->option);
995 free(rule->keycodes);
996 free(rule->symbols);
997 free(rule->types);
998 free(rule->compat);
999 free(rule->geometry);
1000 memset((char *)rule, 0, sizeof(XkbRF_RuleRec));