Branch :
| Author | Commit | Date | CI | Message |
|---|---|---|---|---|
| d60b3213 | 2025-07-16 08:00:30 | Make the ref counting invariants explicit with assertions | ||
| 0106b357 | 2025-06-17 12:06:32 | registry: Add rxkb_option_is_layout_specific() Enable to query if an option accepts layout index specifiers to restrict its application to the corresponding layouts. | ||
| 61d8ec67 | 2025-05-12 18:20:47 | misc: Fix string format specifiers Ensure better portability. | ||
| d7e112fe | 2025-03-29 19:44:13 | registry: Added support for libxml2 2.14+ `libxml2-2.14+` now disallows parsing trailing `NULL` bytes, so don’t. This is backward-compatible with previous versions of the library. | ||
| fe0d3742 | 2025-03-18 14:41:30 | registry: Fix typo in variable declaration | ||
| 02b32244 | 2025-03-10 13:19:37 | registry: Use safer contextual libxml2 functions Avoid using functions depreacted in 2.13 and 2.14 libxml releases. Follow-up of: 5f1b06b7497dc0e69ecfef8a934bce01f4f7fe8e. | ||
| a380ba52 | 2025-01-25 07:00:43 | Move XKB_EXPORT to headers The Windows dllexport annotation wants to be on the declarations, not the definitions. Signed-off-by: Ran Benita <ran@unusedvar.com> | ||
| e120807b | 2025-01-29 15:35:22 | Update license notices to SDPX short identifiers + update LICENSE Fix #628. Signed-off-by: Ran Benita <ran@unusedvar.com> | ||
| 0c940827 | 2025-01-22 16:39:35 | clang-tidy: Macro arguments should be enclosed in parentheses | ||
| db5e6d30 | 2025-01-21 11:35:57 | registry: Refactor to avoid hazardous casts Inline `rxkb_object_unref` for each type and remove the `destroy` field. | ||
| b6acdc30 | 2025-01-10 20:31:04 | xkbcli list: Fix duplicate variants | ||
| cd029431 | 2024-10-13 19:52:15 | registry: Set libxml2 context options | ||
| 5f1b06b7 | 2024-10-13 19:51:45 | registry: Start using libxml2 contextual API Contextual functions are safer because they do not rely on a global state. | ||
| a47961b1 | 2024-10-12 16:43:46 | registry: Restore default libxml2 error handler after parsing Leaving the custom error handler could have resulted in a crash after the context has been freed. Closes: https://github.com/xkbcommon/libxkbcommon/issues/529 | ||
| a898bc81 | 2024-09-25 06:47:23 | logging: Added new error messages ID for keymap and rules | ||
| 1b83771f | 2024-09-24 22:48:01 | logging: Use messages ID in registry | ||
| 20c6fa62 | 2023-11-21 08:50:38 | registry: Use `steal` for better memory handling | ||
| 7caf57f0 | 2023-11-16 09:29:31 | registry: Parse “popularity” attribute Previously the attribute “popularity” was completely ignored. It also did not respect the modified DTD, because its default value depends if we are currently parsing an “extras” rules file. Fixed: - Always parse the popularity attribute. - Change the DTD to reflect that the default value is implied. | ||
| 8b7c1850 | 2021-03-19 09:49:24 | registry: remove a few asprintf/free() calls with snprintf Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> | ||
| a50890b1 | 2021-03-19 09:46:15 | registry: simplify strdup() error handling strdup() is the least likely call to fail here, let's move it to the bottom so we don't need to worry about the allocated string. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> | ||
| b4e81ca1 | 2022-12-16 01:26:25 | context: add XKB_CONTEXT_NO_SECURE_GETENV flag (#312) This flag is useful for clients that may have relatively benign capabilities set, like CAP_SYS_NICE, that also want to use the xkb configuration from the environment and user configs in XDG_CONFIG_HOME. Fixes: https://github.com/xkbcommon/libxkbcommon/issues/308 Fixes: https://github.com/xkbcommon/libxkbcommon/issues/129 Signed-off-by: Ran Benita <ran@unusedvar.com> | ||
| efa99624 | 2022-01-24 02:16:08 | Variants should inherit iso639, iso3166 and brief from parent layout if omitted (#266) | ||
| 9b05825e | 2022-01-20 13:08:36 | registry: skip over invalid ISO639 or ISO3166 entries If the XML file is somehow off, don't load entries that are against the spec. | ||
| 0e3f72af | 2022-01-17 13:51:48 | registry: don't call xmlCleanupParser() From the documentation: > It does not clean up parser state, it cleans up memory allocated by the library > itself. It is a cleanup function for the XML library. It tries to reclaim all > related global memory allocated for the library processing. [...] > One should call xmlCleanupParser() only when the process has finished using the library. http://xmlsoft.org/html/libxml-parser.html#xmlCleanupParser Since we're a library ourselves we cannot know if something else in the same proces uses the parser, so we must not call this. Reported-by: M Hickford | ||
| 01aa2222 | 2021-03-18 11:22:38 | registry: plug a potential memleak for invalid rules files If the name is missing in a configItem, we'd fail and leak the memory for description, brief and vendor. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> | ||
| 3039d62a | 2020-09-07 19:38:47 | registry: mark the rxkb_log function as attribute printf Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> | ||
| d7b39f6f | 2020-07-10 08:50:02 | Add /etc/xkb as extra lookup path for system data files This completes the usual triplet of configuration locations available for most processes: - vendor-provided data files in /usr/share/X11/xkb - system-specific data files in /etc/xkb - user-specific data files in $XDG_CONFIG_HOME/xkb The default lookup order user, system, vendor, just like everything else that uses these conventions. For include directives in rules files, the '%E' resolves to that path. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> | ||
| 41a7c975 | 2020-07-10 14:57:57 | Add asprintf_safe helper function We only ever care about whether we error out or not, so let's wrap this into something more sane. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> | ||
| afb26e7d | 2020-05-12 14:09:50 | 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 <peter.hutterer@who-t.net> |