1libxkbcommon 1.3.1 - 2021-09-10 2================== 3 4- In `xkbcli interactive-x11`, use the Esc keysym instead of the Esc keycode 5 for quitting. 6 7 Contributed by Simon Ser. 8 9- In `xkbcli how-to-type`, add `--keysym` argugment for how to type a keysym 10 instead of a Unicode codepoint. 11 12- Fix a crash in `xkb_x11_keymap_new_from_device` error handling given some 13 invalid keymaps. Regressed in 1.2.0. 14 15 Reported by Zack Weinberg. Tested by Uli Schlachter. 16 17libxkbcommon 1.3.0 - 2021-05-01 18================== 19 20- Change `xkbcli list` to output YAML, instead of the previous ad-hoc format. 21 22 This allows to more easily process the information in a programmetic way, for 23 example 24 25 xkbcli list | yq -r ".layouts[].layout" 26 27 Contributed by Peter Hutterer. 28 29- Optimize a certain part of keymap compilation (atom interning). 30 31- Fix segmentation fault in case-insensitive `xkb_keysym_from_name` for certain 32 values like the empty string. 33 34 Contributed by Isaac Freund. 35 36- Support building libxkbcommon as a meson subproject. 37 38 Contributed by Adrian Perez de Castro. 39 40- Add `ftruncate` fallback for `posix_fallocate` in `xkbcli interactive-wayland` 41 for FreeBSD. 42 43 Contributed by Evgeniy Khramtsov. 44 45- Properly export library symbols in MSVC. 46 47 Contributed by Adrian Perez de Castro. 48 49libxkbcommon 1.2.1 - 2021-04-07 50================== 51 52- Fix `xkb_x11_keymap_new_from_device()` failing when the keymap contains key 53 types with missing level names, like the one used by the `numpad:mac` option 54 in xkeyboard-config. Regressed in 1.2.0. 55 56libxkbcommon 1.2.0 - 2021-04-03 57================== 58 59- `xkb_x11_keymap_new_from_device()` is much faster. It now performs only 2 60 roundtrips to the X server, instead of dozens (in first-time calls). 61 62 Contributed by Uli Schlachter. 63 64- Case-sensitive `xkb_keysym_from_name()` is much faster. 65 66- Keysym names of the form `0x12AB` and `U12AB` are parsed more strictly. 67 Previously the hexadecimal part was parsed with `strtoul()`, now only up 68 to 8 hexadecimal digits (0-9A-Fa-f) are allowed. 69 70- Compose files now have a size limit (65535 internal nodes). Further sequences 71 are discared and a warning is issued. 72 73- Compose table loading (`xkb_compose_table_new_from_locale()` and similar) is 74 much faster. 75 76- Use `poll()` instead of `epoll()` for `xlbcli interactive-evdev`, making it 77 portable to FreeBSD which provides evdev but not epoll. On FreeBSD, remember 78 to install the `evdev-proto` package to get the evdev headers. 79 80- The build now requires a C11 compiler (uses anonymous structs/unions). 81 82libxkbcommon 1.1.0 - 2021-02-27 83================== 84 85- Publish the `xkb-format-text-v1.md` file in the HTML documentation. This file 86 existed for a long time but only in the Git repository. 87 Link: https://xkbcommon.org/doc/current/md_doc_keymap_format_text_v1.html 88 89- Add partial documentation for xkb_symbols to xkb-format-text-v1.md. 90 91 Contributed by Simon Zeni. 92 93- Update keysym definitions to latest xorgproto. In particular, this adds many 94 special keysyms corresponding to Linux evdev keycodes. 95 96 Contributed by Peter Hutterer <@who-t.net>. 97 98- New API: 99 Too many XKB_KEY_* definitions to list here. 100 101libxkbcommon 1.0.3 - 2020-11-23 102================== 103 104- Fix (hopefully) a segfault in xkb_x11_keymap_new_from_device() in some 105 unclear situation (bug introduced in 1.0.2). 106 107- Fix keymaps created with xkb_x11_keymap_new_from_device() don't have level 108 names (bug introduced in 0.8.0). 109 110libxkbcommon 1.0.2 - 2020-11-20 111================== 112 113- Fix a bug where a keysym that cannot be resolved in a keymap gets compiled to 114 a garbage keysym. Now it is set to XKB_KEY_NoSymbol instead. 115 116- Improve the speed of xkb_x11_keymap_new_from_device() on repeated calls in the 117 same xkb_context(). 118 119 120libxkbcommon 1.0.1 - 2020-09-11 121================== 122 123- Fix the tool-option-parsing test failing. 124 125- Remove requirement for pytest in the tool-option-parsing test. 126 127- Make the table output of `xkbcli how-to-type` aligned. 128 129- Some portability and test isolation fixes. 130 131libxkbcommon 1.0.0 - 2020-09-05 132================== 133 134Note: this release is API and ABI compatible with previous releases -- the 135major version bump is only an indication of stability. 136 137- Add libxkbregistry as configure-time optional library. libxkbregistry is a C 138 library that lists available XKB models, layouts and variants for a given 139 ruleset. This is a separate library (libxkbregistry.so, pkgconfig file 140 xkbregistry.pc) and aimed at tools that provide a listing of available 141 keyboard layouts to the user. See the Documentation for details on the API. 142 143 Contributed by Peter Hutterer <@who-t.net>. 144 145- Better support custom user configuration: 146 147 * Allow including XKB files from other paths. 148 149 Previously, a 'symbols/us' file in path A would shadow the same file in 150 path B. This is suboptimal, we rarely need to hide the system files - we 151 care mostly about *extending* them. By continuing to check other lookup 152 paths, we make it possible for a XDG_CONFIG_HOME/xkb/symbols/us file to 153 have sections including those from /usr/share/X11/xkb/symbols/us. 154 155 Note that this is not possible for rules files, which need to be manually 156 controlled to get the right bits resolved. 157 158 * Add /etc/xkb as extra lookup path for system data files. 159 160 This completes the usual triplet of configuration locations available for 161 most processes: 162 - vendor-provided data files in /usr/share/X11/xkb 163 - system-specific data files in /etc/xkb 164 - user-specific data files in $XDG_CONFIG_HOME/xkb 165 166 The default lookup order user, system, vendor, just like everything else 167 that uses these conventions. 168 169 For include directives in rules files, the '%E' resolves to that path. 170 171 * Add a new section to the documentation for custom user configuration. 172 173 Contributed by Peter Hutterer <@who-t.net>. 174 175- Add an `xkbcli` command-line utility. 176 177 This tool offers various subcommands for introspection and debugging. 178 Currently the available subcommands are: 179 180 list 181 List available rules, models, layouts, variants and options 182 183 interactive-wayland 184 Interactive debugger for XKB keymaps for Wayland 185 186 interactive-x11 187 Interactive debugger for XKB keymaps for X11 188 189 interactive-evdev 190 Interactive debugger for XKB keymaps for evdev (Linux) 191 192 compile-keymap 193 Compile an XKB keymap 194 195 how-to-type 196 See separate entry below. 197 198 See the manpages for usage information. 199 200 Contributed by Peter Hutterer <@who-t.net>. 201 202- Add `xkb_utf32_to_keysym()` to translate a Unicode codepoint to a keysym. 203 When a special keysym (`XKB_KEY_` constant) for the codepoint exists, it is 204 returned, otherwise the direct encoding is used, if permissible. 205 206 Contributed by Jaroslaw Kubik <@froglogic.com>. 207 208- Add `xkb_keymap_key_get_mods_for_level()` which retrieves sets of modifiers 209 which produce a given shift level in a given key+layout. 210 211 Contributed by Jaroslaw Kubik <@froglogic.com>. 212 213- Add `xkbcli how-to-type` command, which, using `xkb_utf32_to_keysym()` 214 and `xkb_keymap_key_get_mods_for_level()` and other APIs, prints out all 215 the ways to produce a given keysym. 216 217 For example, how to type `?` (codepoint 63) in a us,de keymap? 218 219 $ xkbcli how-to-type --layout us,de 63 | column -ts $'\t' 220 keysym: question (0x3f) 221 KEYCODE KEY NAME LAYOUT# LAYOUT NAME LEVEL# MODIFIERS 222 20 AE11 2 German 2 [ Shift ] 223 20 AE11 2 German 2 [ Shift Lock ] 224 61 AB10 1 English (US) 2 [ Shift ] 225 226- Add a new section to the documentation describing the format of the XKB 227 rules file. 228 229- Search for Compose in $XDG_CONFIG_HOME/XCompose (fallback to 230 ~/.config/XCompose) before trying $HOME/.XCompose. 231 232 Note that libX11 still only searches in $HOME/.XCompose. 233 234 Contributed by Emmanuel Gil Peyrot <@linkmauve.fr>. 235 236- Bump meson requirement to >= 0.49.0. 237 238- Fix build with byacc. 239 240- Fix building X11 tests on PE targets. 241 242 Contributed by Jon Turney <@dronecode.org.uk> 243 244- The tests no longer rely on bash, only Python (which is already used by 245 meson). 246 247- New API: 248 xkb_utf32_to_keysym 249 xkb_keymap_key_get_mods_for_level 250 XKB_KEY_XF86FullScreen 251 252 253libxkbcommon 0.10.0 - 2020-01-18 254=================== 255 256- (security) Fix quadratic complexity in the XKB file parser. See commit 257 message 7c42945e04a2107827a057245298dedc0475cc88 for details. 258 259- Add $XDG_CONFIG_HOME/xkb to the default search path. If $XDG_CONFIG_HOME 260 is not set, $HOME/.config/xkb is used. If $HOME is not set, the path is not 261 added. 262 263 The XDG path is looked up before the existing default search path $HOME/.xkb. 264 265 Contributed by Peter Hutterer <@who-t.net>. 266 267- Add support for include statements in XKB rules files. 268 269 This is a step towards making local XKB customizations more tenable and 270 convenient, without modifying system files. 271 272 You can now include other rules files like this: 273 274 ! include %S/evdev 275 276 Two directives are supported, %H to $HOME and %S for the system-installed 277 rules directory (usually /usr/share/X11/xkb/rules). 278 279 See commit message ca033a29d2ca910fd17b1ae287cb420205bdddc8 and 280 doc/rules-format.txt in the xkbcommon source code for more information. 281 282 Contributed by Peter Hutterer <@who-t.net>. 283 284- Downgrade "Symbol added to modifier map for multiple modifiers" log to a 285 warning. 286 287 This error message was too annoying to be shown by default. When working on 288 keymaps, set `XKB_LOG_LEVEL=debug XKB_LOG_VERBOSITY=10` to see all possible 289 messages. 290 291- Support building on Windows using the meson MSVC backend. 292 293 Contributed by Adrian Perez de Castro <@igalia.com>. 294 295- Fix bug where the merge mode only applied to the first vmod in a 296 `virtual_modifiers` statement. Given 297 298 augment virtual_modifiers NumLock,Alt,LevelThree 299 300 Previously it was incorrectly treated as 301 302 augment virtual_modifiers NumLock; 303 virtual_modifiers Alt; 304 virtual_modifiers LevelThree; 305 306 Now it is treated as 307 308 augment virtual_modifiers NumLock; 309 augment virtual_modifiers Alt; 310 augment virtual_modifiers LevelThree; 311 312- Reject interpret modifier predicate with more than one value. Given 313 314 interpret ISO_Level3_Shift+AnyOf(all,extraneous) { ... }; 315 316 Previously, extraneous (and further) was ignored. Now it's rejected. 317 318- Correctly handle capitalization of the ssharp keysym. 319 320- Speed up and improve the internal `xkeyboard-config` tool. This tool 321 compiles all layout/variant combinations in the xkeyboard-config dataset 322 and reports any issues it finds. 323 324 Contributed by Peter Hutterer <@who-t.net>. 325 326- Speed up "atoms" (string interning). This code goes back at least to X11R1 327 (released 1987). 328 329 330libxkbcommon 0.9.1 - 2019-10-19 331================== 332 333- Fix context creation failing when run in privileged processes as defined by 334 `secure_getenv(3)`, e.g. GDM. 335 336 337libxkbcommon 0.9.0 - 2019-10-19 338================== 339 340- Move ~/.xkb to before XKB_CONFIG_ROOT (the system XKB path, usually 341 /usr/share/X11/xkb) in the default include path. This enables the user 342 to have full control of the keymap definitions, instead of only augmenting 343 them. 344 345- Remove the Autotools build system. Use the meson build system instead. 346 347- Fix invalid names used for levels above 8 when dumping keymaps. Previously, 348 e.g. "Level20" was dumped, but only up to "Level8" is accepted by the 349 parser. Now "20" is dumped. 350 351- Change level references to always be dumped as e.g. "5" instead of "Level5". 352 353 Change group references to always be dumped capitalized e.g. "Group3" instead 354 of "group3". Previously it was inconsistent. 355 356 These changes affect the output of xkb_keymap_get_as_string(). 357 358- Fix several build issues on macOS/Darwin, Solaris, NetBSD, cross compilation. 359 360- Port the interactive-wayland test program to the stable version of xdg-shell. 361 362 363libxkbcommon 0.8.4 - 2019-02-22 364================== 365 366- Fix build of xkbcommon-x11 static library with meson. 367 368- Fix building using meson from the tarball generated by autotools. 369 370 371libxkbcommon 0.8.3 - 2019-02-08 372================== 373 374- Fix build of static libraries with meson. 375 (Future note: xkbcommon-x11 was *not* fixed in this release.) 376 377- New API: 378 XKB_KEY_XF86MonBrightnessCycle 379 XKB_KEY_XF86RotationLockToggle 380 381 382libxkbcommon 0.8.2 - 2018-08-05 383================== 384 385- Fix various problems found with fuzzing (see commit messages for 386 more details): 387 388 - Fix a few NULL-dereferences, out-of-bounds access and undefined behavior 389 in the XKB text format parser. 390 391 392libxkbcommon 0.8.1 - 2018-08-03 393================== 394 395- Fix various problems found in the meson build (see commit messages for more 396 details): 397 398 - Fix compilation on Darwin. 399 400 - Fix compilation of the x11 tests and demos when XCB is installed in a 401 non-standard location. 402 403 - Fix xkbcommon-x11.pc missing the Requires specification. 404 405- Fix various problems found with fuzzing and Coverity (see commit messages for 406 more details): 407 408 - Fix stack overflow in the XKB text format parser when evaluating boolean 409 negation. 410 411 - Fix NULL-dereferences in the XKB text format parser when some unsupported 412 tokens appear (the tokens are still parsed for backward compatibility). 413 414 - Fix NULL-dereference in the XKB text format parser when parsing an 415 xkb_geometry section. 416 417 - Fix an infinite loop in the Compose text format parser on some inputs. 418 419 - Fix an invalid free() when using multiple keysyms. 420 421- Replace the Unicode characters for the leftanglebracket and rightanglebracket 422 keysyms from the deprecated LEFT/RIGHT-POINTING ANGLE BRACKET to 423 MATHEMATICAL LEFT/RIGHT ANGLE BRACKET. 424 425- Reject out-of-range Unicode codepoints in xkb_keysym_to_utf8 and 426 xkb_keysym_to_utf32. 427 428 429libxkbcommon 0.8.0 - 2017-12-15 430================== 431 432- Added xkb_keysym_to_{upper,lower} to perform case-conversion directly on 433 keysyms. This is useful in some odd cases, but working with the Unicode 434 representations should be preferred when possible. 435 436- Added Unicode conversion rules for the signifblank and permille keysyms. 437 438- Fixed a bug in the parsing of XKB key type definitions where the number 439 of levels were determined by the number of level *names*. Keymaps which 440 omit level names were hence miscompiled. 441 442 This regressed in version 0.4.3. Keymaps from xkeyboard-config were not 443 affected since they don't omit level names. 444 445- New API: 446 xkb_keysym_to_upper() 447 xkb_keysym_to_lower() 448 449 450libxkbcommon 0.7.2 - 2017-08-04 451================== 452 453- Added a Meson build system as an alternative to existing autotools build 454 system. 455 456 The intent is to remove the autotools build in one of the next releases. 457 Please try to convert to it and report any problems. 458 459 See http://mesonbuild.com/Quick-guide.html for basic usage, the 460 meson_options.txt for the project-specific configuration options, 461 and the PACKAGING file for more details. 462 463 There are some noteworthy differences compared to the autotools build: 464 465 - Feature auto-detection is not performed. By default, all features are 466 enabled (currently: docs, x11, wayland). The build fails if any of 467 the required dependencies are not available. To disable a feature, 468 pass -Denable-<feature>=false to meson. 469 470 - The libraries are either installed as shared or static, as specified 471 by the -Ddefault_library=shared/static option. With autotools, both 472 versions are installed by default. 473 474 - xorg-util-macros is not used. 475 476 - A parser generator (bison/byacc) is always required - there is no 477 fallback to pre-generated output bundled in the tarball, as there is 478 in autotools. 479 480- Removed Android.mk support. 481 482- Removed the *-uninstalled.pc pkgconfig files. 483 484- Ported the interactive-wayland demo program to v6 of the xdg-shell 485 protocol. 486 487- Added new keysym definitions from xproto. 488 489- New API: 490 XKB_KEY_XF86Keyboard 491 XKB_KEY_XF86WWAN 492 XKB_KEY_XF86RFKill 493 XKB_KEY_XF86AudioPreset 494 495 496libxkbcommon 0.7.1 - 2017-01-18 497================== 498 499- Fixed various reported problems when the current locale is tr_TR.UTF-8. 500 501 The function xkb_keysym_from_name() used to perform case-insensitive 502 string comparisons in a locale-dependent way, but required it to to 503 work as in the C/ASCII locale (the so called "Turkish i problem"). 504 505 The function is now no longer affected by the current locale. 506 507- Fixed compilation in NetBSD. 508 509 510libxkbcommon 0.7.0 - 2016-11-11 511================== 512 513- Added support for different "modes" of calculating consumed modifiers. 514 The existing mode, based on the XKB standard, has proven to be 515 unintuitive in various shortcut implementations. 516 517 A new mode, based on the calculation used by the GTK toolkit, is added. 518 This mode is less eager to declare a modifier as consumed. 519 520- Added a new interactive demo program using the Wayland protocol. 521 See the PACKAGING file for the new (optional) test dependencies. 522 523- Fixed a compilation error on GNU Hurd. 524 525- New API: 526 enum xkb_consumed_mode 527 XKB_CONSUMED_MODE_XKB 528 XKB_CONSUMED_MODE_GTK 529 xkb_state_key_get_consumed_mods2 530 xkb_state_mod_index_is_consumed2 531 532 533libxkbcommon 0.6.1 - 2016-04-08 534================== 535 536- Added LICENSE to distributed files in tarball releases. 537 538- Minor typo fix in xkb_keymap_get_as_string() documentation. 539 540 541libxkbcommon 0.6.0 - 2016-03-16 542================== 543 544- If the XKB_CONFIG_ROOT environment variable is set, it is used as the XKB 545 configuration root instead of the path determined at build time. 546 547- Tests and benchmarks now build correctly on OSX. 548 549- An XKB keymap provides a name for each key it defines. Traditionally, 550 these names are limited to at most 4 characters, and are thus somewhat 551 obscure, but might still be useful (xkbcommon lifts the 4 character limit). 552 553 The new functions xkb_keymap_key_get_name() and xkb_keymap_key_by_name() 554 can be used to get the name of a key or find a key by name. Note that 555 a key may have aliases. 556 557- Documentation improvements. 558 559- New API: 560 xkb_keymap_key_by_name() 561 xkb_keymap_key_get_name() 562 563 564libxkbcommon 0.5.0 - 2014-10-18 565================== 566 567- Added support for Compose/dead keys in a new module (included in 568 libxkbcommon). See the documentation or the 569 xkbcommon/xkbcommon-compose.h header file for more details. 570 571- Improved and reordered some sections of the documentation. 572 573- The doxygen HTML pages were made nicer to read. 574 575- Most tests now run also on non-linux platforms. 576 577- A warning is emitted by default about RMLVO values which are not used 578 during keymap compilation, which are most often a user misconfiguration. 579 For example, "terminate:ctrl_alt_backspace" instead of 580 "terminate:ctrl_alt_bksp". 581 582- Added symbol versioning for libxkbcommon and libxkbcommon-x11. 583 Note: binaries compiled against this and future versions will not be 584 able to link against the previous versions of the library. 585 586- Removed several compatablity symbols from the binary (the API isn't 587 affected). This affects binaries which 588 589 1. Were compiled against a pre-stable (<0.2.0) version of libxkbcommon, and 590 2. Are linked against the this or later version of libxkbcommon. 591 592 Such a scenario is likely to fail already. 593 594- If Xvfb is not available, the x11comp test is now correctly skipped 595 instead of hanging. 596 597- Benchmarks were moved to a separate bench/ directory. 598 599- Build fixes from OpenBSD. 600 601- Fixed a bug where key type entries such as "map[None] = Level2;" were 602 ignored. 603 604- New API: 605 XKB_COMPOSE_* 606 xkb_compose_* 607 608 609libxkbcommon 0.4.3 - 2014-08-19 610================== 611 612- Fixed a bug which caused xkb_x11_keymap_new_from_device() to misrepresent 613 modifiers for some keymaps. 614 615 https://github.com/xkbcommon/libxkbcommon/issues/9 616 617- Fixed a bug which caused xkb_x11_keymap_new_from_device() to ignore XKB 618 PrivateAction's. 619 620- Modifiers are now always fully resolved after xkb_state_update_mask(). 621 Previously the given state components were used as-is, without 622 considering virtual modifier mappings. 623 Note: this only affects non-standard uses of xkb_state_update_mask(). 624 625- Added a test for xkbcommon-x11, "x11comp". The test uses the system's 626 Xvfb server and xkbcomp. If they do not exist or fail, the test is 627 skipped. 628 629- Fixed memory leaks after parse errors in the XKB yacc parser. 630 The fix required changes which are currently incompatible with byacc. 631 632 633libxkbcommon 0.4.2 - 2014-05-15 634================== 635 636- Fixed a bug where explicitly passing "--enable-x11" to ./configure would 637 in fact disable it (regressed in 0.4.1). 638 639- Added @since version annotations to the API documentation for everything 640 introduced after the initial stable release (0.2.0). 641 642- Added a section to the documentation about keysym transformations, and 643 clarified which functions perform a given transformation. 644 645- XKB files which fail to compile during keymap construction can no longer 646 have any effect on the resulting keymap: changes are only applied when 647 the entire compilation succeeds. 648 Note: this was a minor correctness issue inherited from xkbcomp. 649 650- Fix an out-of-bounds array access in src/x11/util.c:adopt_atoms() 651 error-handling code. 652 Note: it seems impossible to trigger in the current code since the input 653 size cannot exceed the required size. 654 655 656libxkbcommon 0.4.1 - 2014-03-27 657================== 658 659- Converted README to markdown and added a Quick Guide to the 660 documentation, which breezes through the most common parts of 661 xkbcommon. 662 663- Added two new functions, xkb_state_key_get_utf{8,32}(). They 664 combine the operations of xkb_state_key_get_syms() and 665 xkb_keysym_to_utf{8,32}(), and provide a nicer interface for it 666 (espcially for multiple-keysyms-per-level). 667 668- The xkb_state_key_get_utf{8,32}() functions now apply Control 669 transformation: when the Control modifier is active, the string 670 is converted to an appropriate control character. 671 This matches the behavior of libX11's XLookupString(3), and 672 required by the XKB specification: 673 https://www.x.org/releases/current/doc/kbproto/xkbproto.html#Interpreting_the_Control_Modifier 674 675 https://bugs.freedesktop.org/show_bug.cgi?id=75892 676 677- The consumed modifiers for a key are now calculated similarly 678 to libX11. The previous behavior caused a bug where Shift would 679 not cancel an active Caps Lock. 680 681- Make xkbcommon-x11 work with the keymap reported by the XQuartz 682 X server. 683 684 https://bugs.freedesktop.org/show_bug.cgi?id=75798 685 686- Reduce memory usage during keymap compilation some more. 687 688- New API: 689 xkb_state_key_get_consumed_mods() 690 xkb_state_key_get_utf8() 691 xkb_state_key_get_utf32() 692 693- Deprecated API: 694 XKB_MAP_COMPILE_PLACEHOLDER, XKB_MAP_NO_FLAGS 695 use XKB_KEYMAP_NO_FLAGS instead. 696 697- Bug fixes. 698 699 700libxkbcommon 0.4.0 - 2014-02-02 701================== 702 703- Add a new add-on library, xkbcommon-x11, to support creating keymaps 704 with the XKB X11 protocol, by querying the X server directly. 705 See the xkbcommon/xkbcommon-x11.h header file for more details. 706 This library requires libxcb-xkb >= 1.10, and is enabled by default. 707 It can be disabled with the --disable-x11 configure switch. 708 Distributions are encouraged to split the necessary files for this 709 library (libxkbcommon-x11.so, xkbcommon-x11.pc, xkbcommon/xkbcommon-x11.h) 710 to a separate package, such that the main package does not depend on 711 X11 libraries. 712 713- Fix the keysym <-> name lookup table to not require huge amounts of 714 relocations. 715 716- Fix a bug in the keysym <-> name lookup, whereby lookup might fail in 717 some rare cases. 718 719- Reduce memory usage during keymap compilation. 720 721- New API: 722 New keysyms from xproto 7.0.25 (German T3 layout keysyms). 723 XKB_MOD_NAME_NUM for the usual NumLock modifier. 724 xkb_x11_* types and functions, XKB_X11_* constants. 725 726 727libxkbcommon 0.3.2 - 2013-11-22 728================== 729 730- Log messages from the library now look like "xkbcommon: ERROR" by 731 default, instead of xkbcomp-like "Error: ". 732 733- Apply capitalization transformation on keysyms in 734 xkb_keysym_get_one_sym(), to match the behavior specified in the XKB 735 specification: 736 https://www.x.org/releases/current/doc/kbproto/xkbproto.html#Interpreting_the_Lock_Modifier 737 738- Support byacc for generating the parser, in addition to Bison. 739 740- New API: 741 XKB_KEY_XF86AudioMicMute keysym from xproto 7.0.24. 742 XKB_KEYSYM_NO_FLAGS 743 XKB_CONTEXT_NO_FLAGS 744 XKB_MAP_COMPILE_NO_FLAGS 745 746- Bug fixes. 747 748 749libxkbcommon 0.3.1 - 2013-06-03 750================== 751 752- Replace the flex scanner with a hand-written one. flex is no longer 753 a build requirement. 754 755- New API: 756 xkb_keymap_min_keycode() 757 xkb_keymap_max_keycode() 758 xkb_keymap_key_for_each() 759 760 761libxkbcommon 0.3.0 - 2013-04-01 762================== 763 764- Allow passing NULL to *_unref() functions; do nothing instead of 765 crashing. 766 767- The functions xkb_keymap_num_levels_for_key() and 768 xkb_keymap_get_syms_by_level() now allow out-of-range values for the 769 'layout' parameter. The functions now wrap the value around the number 770 of layouts instead of failing. 771 772- The function xkb_keysym_get_name() now types unicode keysyms in 773 uppercase and 0-padding, to match the format used by XKeysymToString(). 774 775- Building Linux-specific tests is no longer attempted on non-Linux 776 environments. 777 778- The function xkb_keymap_new_from_names() now accepts a NULL value for 779 the 'names' parameter, instead of failing. This is equivalent to passing 780 a 'struct xkb_rule_names' with all fields set to NULL. 781 782- New API: 783 xkb_keymap_new_from_buffer() 784 785- Bug fixes. 786