static void config_xml_start_cb(void *data, const char *tag, const char **attr) { MBKeyboardConfigState *state = (MBKeyboardConfigState *)data; if (streq(tag, "layout")) { config_handle_layout_tag(state, attr); } else if (streq(tag, "row")) { config_handle_row_tag(state, attr); } else if (streq(tag, "key")) { config_handle_key_tag(state, attr); } else if (streq(tag, "space")) { config_handle_key_tag(state, attr); mb_kbd_key_set_blank(state->current_key, True); } else if (streq(tag, "normal") || streq(tag, "default") || streq(tag, "shifted") || streq(tag, "mod1") || streq(tag, "mod2") || streq(tag, "mod3")) { config_handle_key_subtag(state, tag, attr); } if (state->error) { fprintf(stderr, "matchbox-keyboard:%s:%d: %s\n", state->keyboard->config_file, state->error_lineno, state->error_msg); util_fatal_error("Error parsing\n"); } }
static void config_xml_start_cb(void *data, const char *tag, const char **attr) { MBKeyboardConfigState *state = (MBKeyboardConfigState *)data; if (streq(tag, "layout")) { config_handle_layout_tag(state, attr); } else if (streq(tag, "row")) { config_handle_row_tag(state, attr); } else if (streq(tag, "key")) { config_handle_key_tag(state, attr); } else if (streq(tag, "space")) { config_handle_key_tag(state, attr); mb_kbd_key_set_blank(state->current_key, True); } else if (streq(tag, "normal") || streq(tag, "default") || streq(tag, "shifted") || streq(tag, "caps") || streq(tag, "mod1") || streq(tag, "mod2") || streq(tag, "mod3")) { config_handle_key_subtag(state, tag, attr); } else if (streq(tag, "include")) { const char *val; const char *loc; char *inc; int autoloc = 1; if (!(val = attr_get_val("file", attr))) return; else { char *p; inc = strdup (val); if ((p = strstr (inc, ".xml"))) *p = 0; } if ((loc = attr_get_val("auto-locale", attr)) && streq(loc, "no")) autoloc = 0; load_include (state, inc, autoloc); } else if (streq(tag, "fragment")) { /* Do nothing; the fragment element is needed so that the fragments are a valid xml */ } if (state->error) { fprintf(stderr, "matchbox-keyboard:%s:%d: %s\n", state->keyboard->config_file, state->error_lineno, state->error_msg); util_fatal_error("Error parsing\n"); } }