Bump version to 1.3.1
[platform/upstream/libxkbcommon.git] / NEWS
1 libxkbcommon 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
17 libxkbcommon 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
49 libxkbcommon 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
56 libxkbcommon 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
82 libxkbcommon 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
101 libxkbcommon 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
110 libxkbcommon 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
120 libxkbcommon 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
131 libxkbcommon 1.0.0 - 2020-09-05
132 ==================
133
134 Note: this release is API and ABI compatible with previous releases -- the
135 major 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
253 libxkbcommon 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
330 libxkbcommon 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
337 libxkbcommon 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
363 libxkbcommon 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
371 libxkbcommon 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
382 libxkbcommon 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
392 libxkbcommon 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
429 libxkbcommon 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
450 libxkbcommon 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
496 libxkbcommon 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
510 libxkbcommon 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
533 libxkbcommon 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
541 libxkbcommon 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
564 libxkbcommon 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
609 libxkbcommon 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
633 libxkbcommon 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
656 libxkbcommon 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
700 libxkbcommon 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
727 libxkbcommon 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
749 libxkbcommon 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
761 libxkbcommon 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.