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