From afb26e7df9090a0b765eb294b6efff448f763b6f Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Tue, 12 May 2020 14:09:50 +1000 Subject: Add libxkbregistry to query available RMLVO This library is the replacement for clients parsing evdev.xml directly. Instead, they should use the API here so that in the future we may even be able to swap evdev.xml for a more suitable data format. The library parses through evdev.xml (using libxml2) and - if requested - through evdev.extras.xml as well. The merge approach is optimised for the default case where we have a system-installed rules XML and another file in $XDG_CONFIG_DIR that adds a few entries. We load the system file first, then append any custom ones to that. It's not possible to overwrite the MLVO list provided by the system files - if you want to do that, get the change upstream. XML validation is handled through the DTD itself which means we only need to check for a nonempty name, everything else the DTD validation should complain about. The logging system is effectively identical to xkbcommon. Signed-off-by: Peter Hutterer --- xkbregistry.map | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 xkbregistry.map (limited to 'xkbregistry.map') diff --git a/xkbregistry.map b/xkbregistry.map new file mode 100644 index 0000000..6e18b9c --- /dev/null +++ b/xkbregistry.map @@ -0,0 +1,61 @@ +/* versions are kept in sync with libxkbcommon.so */ +V_0.11.0 { +global: + rxkb_context_new; + rxkb_context_parse; + rxkb_context_parse_default_ruleset; + rxkb_context_ref; + rxkb_context_unref; + rxkb_context_set_user_data; + rxkb_context_get_user_data; + rxkb_context_set_log_level; + rxkb_context_get_log_level; + rxkb_context_set_log_fn; + rxkb_context_include_path_append; + rxkb_context_include_path_append_default; + rxkb_model_first; + rxkb_model_next; + rxkb_model_ref; + rxkb_model_unref; + rxkb_model_get_name; + rxkb_model_get_description; + rxkb_model_get_vendor; + rxkb_model_get_popularity; + rxkb_layout_first; + rxkb_layout_next; + rxkb_layout_ref; + rxkb_layout_unref; + rxkb_layout_get_name; + rxkb_layout_get_brief; + rxkb_layout_get_description; + rxkb_layout_get_variant; + rxkb_layout_get_popularity; + rxkb_option_group_first; + rxkb_option_group_next; + rxkb_option_group_ref; + rxkb_option_group_unref; + rxkb_option_group_get_name; + rxkb_option_group_get_description; + rxkb_option_group_allows_multiple; + rxkb_option_group_get_popularity; + rxkb_option_first; + rxkb_option_next; + rxkb_option_ref; + rxkb_option_unref; + rxkb_option_get_name; + rxkb_option_get_brief; + rxkb_option_get_description; + rxkb_option_get_popularity; + rxkb_layout_get_iso639_first; + rxkb_iso639_code_next; + rxkb_iso639_code_ref; + rxkb_iso639_code_unref; + rxkb_iso639_code_get_code; + rxkb_layout_get_iso3166_first; + rxkb_iso3166_code_next; + rxkb_iso3166_code_ref; + rxkb_iso3166_code_unref; + rxkb_iso3166_code_get_code; +local: + *; +}; -- cgit v1.2.1