} FileSpec;
typedef struct {
- char *model;
- char *layout[XkbNumKbdGroups + 1];
- char *variant[XkbNumKbdGroups + 1];
- char *options;
+ const char *model;
+ const char *layout[XkbNumKbdGroups + 1];
+ const char *variant[XkbNumKbdGroups + 1];
+ const char *options;
} XkbRF_MultiDefsRec, *XkbRF_MultiDefsPtr;
#define NDX_BUFF_SIZE 4
}
static Bool
-MatchOneOf(char *wanted, char *vals_defined)
+MatchOneOf(const char *wanted, const char *vals_defined)
{
- char *str, *next;
+ const char *str, *next;
int want_len = strlen(wanted);
for (str = vals_defined, next = NULL; str != NULL; str = next) {
}
static char *
-_Concat(char *str1, char *str2)
+_Concat(char *str1, const char *str2)
{
int len;
static Bool
MakeMultiDefs(XkbRF_MultiDefsPtr mdefs, XkbRF_VarDefsPtr defs)
{
-
+ char *options;
memset((char *) mdefs, 0, sizeof(XkbRF_MultiDefsRec));
mdefs->model = defs->model;
- mdefs->options = Xstrdup(defs->options);
- if (mdefs->options)
- squeeze_spaces(mdefs->options);
+ options = Xstrdup(defs->options);
+ if (options)
+ squeeze_spaces(options);
+ mdefs->options = options;
if (defs->layout) {
if (!strchr(defs->layout, ',')) {
}
else {
char *p;
+ char *layout;
int i;
- mdefs->layout[1] = Xstrdup(defs->layout);
- if (mdefs->layout[1] == NULL)
+ layout = Xstrdup(defs->layout);
+ if (layout == NULL)
return FALSE;
- squeeze_spaces(mdefs->layout[1]);
- p = mdefs->layout[1];
+ squeeze_spaces(layout);
+ mdefs->layout[1] = layout;
+ p = layout;
for (i = 2; i <= XkbNumKbdGroups; i++) {
if ((p = strchr(p, ','))) {
*p++ = '\0';
}
else {
char *p;
+ char *variant;
int i;
- mdefs->variant[1] = Xstrdup(defs->variant);
- if (mdefs->variant[1] == NULL)
+ variant = Xstrdup(defs->variant);
+ if (variant == NULL)
return FALSE;
- squeeze_spaces(mdefs->variant[1]);
- p = mdefs->variant[1];
+ squeeze_spaces(variant);
+ mdefs->variant[1] = variant;
+ p = variant;
for (i = 2; i <= XkbNumKbdGroups; i++) {
if ((p = strchr(p, ','))) {
*p++ = '\0';
static void
FreeMultiDefs(XkbRF_MultiDefsPtr defs)
{
- free(defs->options);
- free(defs->layout[1]);
- free(defs->variant[1]);
+ free((void *) defs->options);
+ free((void *) defs->layout[1]);
+ free((void *) defs->variant[1]);
}
static void
-Apply(char *src, char **dst)
+Apply(const char *src, char **dst)
{
if (src) {
if (*src == '+' || *src == '!') {
}
static Bool
-CheckGroup(XkbRF_RulesPtr rules, char *group_name, char *name)
+CheckGroup(XkbRF_RulesPtr rules, const char *group_name, const char *name)
{
int i;
char *p;
XkbRF_CheckApplyRules(rules, &mdefs, names, XkbRF_Append);
XkbRF_ApplyPartialMatches(rules, names);
XkbRF_CheckApplyRules(rules, &mdefs, names, XkbRF_Option);
+ XkbRF_ApplyPartialMatches(rules, names);
if (names->keycodes)
names->keycodes = XkbRF_SubstituteVars(names->keycodes, &mdefs);
return;
if (rules->rules) {
for (i = 0, rule = rules->rules; i < rules->num_rules; i++, rule++) {
- free(rule->model);
- free(rule->layout);
- free(rule->variant);
- free(rule->option);
- free(rule->keycodes);
- free(rule->symbols);
- free(rule->types);
- free(rule->compat);
- free(rule->geometry);
+ free((void *) rule->model);
+ free((void *) rule->layout);
+ free((void *) rule->variant);
+ free((void *) rule->option);
+ free((void *) rule->keycodes);
+ free((void *) rule->symbols);
+ free((void *) rule->types);
+ free((void *) rule->compat);
+ free((void *) rule->geometry);
memset((char *) rule, 0, sizeof(XkbRF_RuleRec));
}
free(rules->rules);
if (rules->groups) {
for (i = 0, group = rules->groups; i < rules->num_groups; i++, group++) {
- free(group->name);
+ free((void *) group->name);
free(group->words);
}
free(rules->groups);