keysyms: fix comment for XKB_KEY_OCARON
[platform/upstream/libxkbcommon.git] / NEWS
1 libxkbcommon 0.8.2 - 2018-08-05
2 ==================
3
4 - Fix various problems found with fuzzing (see commit messages for
5   more details):
6
7     - Fix a few NULL-dereferences, out-of-bounds access and undefined behavior
8       in the XKB text format parser.
9
10
11 libxkbcommon 0.8.1 - 2018-08-03
12 ==================
13
14 - Fix various problems found in the meson build (see commit messages for more
15   details):
16
17     - Fix compilation on Darwin.
18
19     - Fix compilation of the x11 tests and demos when XCB is installed in a
20       non-standard location.
21
22     - Fix xkbcommon-x11.pc missing the Requires specification.
23
24 - Fix various problems found with fuzzing and Coverity (see commit messages for
25   more details):
26
27     - Fix stack overflow in the XKB text format parser when evaluating boolean
28       negation.
29
30     - Fix NULL-dereferences in the XKB text format parser when some unsupported
31       tokens appear (the tokens are still parsed for backward compatibility).
32
33     - Fix NULL-dereference in the XKB text format parser when parsing an
34       xkb_geometry section.
35
36     - Fix an infinite loop in the Compose text format parser on some inputs.
37
38     - Fix an invalid free() when using multiple keysyms.
39
40 - Replace the Unicode characters for the leftanglebracket and rightanglebracket
41   keysyms from the deprecated LEFT/RIGHT-POINTING ANGLE BRACKET to
42   MATHEMATICAL LEFT/RIGHT ANGLE BRACKET.
43
44 - Reject out-of-range Unicode codepoints in xkb_keysym_to_utf8 and
45   xkb_keysym_to_utf32.
46
47
48 libxkbcommon 0.8.0 - 2017-12-15
49 ==================
50
51 - Added xkb_keysym_to_{upper,lower} to perform case-conversion directly on
52   keysyms. This is useful in some odd cases, but working with the Unicode
53   representations should be preferred when possible.
54
55 - Added Unicode conversion rules for the signifblank and permille keysyms.
56
57 - Fixed a bug in the parsing of XKB key type definitions where the number
58   of levels were determined by the number of level *names*. Keymaps which
59   omit level names were hence miscompiled.
60
61   This regressed in version 0.4.3. Keymaps from xkeyboard-config were not
62   affected since they don't omit level names.
63
64 - New API:
65   xkb_keysym_to_upper()
66   xkb_keysym_to_lower()
67
68
69 libxkbcommon 0.7.2 - 2017-08-04
70 ==================
71
72 - Added a Meson build system as an alternative to existing autotools build
73   system.
74
75   The intent is to remove the autotools build in one of the next releases.
76   Please try to convert to it and report any problems.
77
78   See http://mesonbuild.com/Quick-guide.html for basic usage, the
79   meson_options.txt for the project-specific configuration options,
80   and the PACKAGING file for more details.
81
82   There are some noteworthy differences compared to the autotools build:
83
84   - Feature auto-detection is not performed. By default, all features are
85     enabled (currently: docs, x11, wayland). The build fails if any of
86     the required dependencies are not available. To disable a feature,
87     pass -Denable-<feature>=false to meson.
88
89   - The libraries are either installed as shared or static, as specified
90     by the -Ddefault_library=shared/static option. With autotools, both
91     versions are installed by default.
92
93   - xorg-util-macros is not used.
94
95   - A parser generator (bison/byacc) is always required - there is no
96     fallback to pre-generated output bundled in the tarball, as there is
97     in autotools.
98
99 - Removed Android.mk support.
100
101 - Removed the *-uninstalled.pc pkgconfig files.
102
103 - Ported the interactive-wayland demo program to v6 of the xdg-shell
104   protocol.
105
106 - Added new keysym definitions from xproto.
107
108 - New API:
109   XKB_KEY_XF86Keyboard
110   XKB_KEY_XF86WWAN
111   XKB_KEY_XF86RFKill
112   XKB_KEY_XF86AudioPreset
113
114
115 libxkbcommon 0.7.1 - 2017-01-18
116 ==================
117
118 - Fixed various reported problems when the current locale is tr_TR.UTF-8.
119
120   The function xkb_keysym_from_name() used to perform case-insensitive
121   string comparisons in a locale-dependent way, but required it to to
122   work as in the C/ASCII locale (the so called "Turkish i problem").
123
124   The function is now no longer affected by the current locale.
125
126 - Fixed compilation in NetBSD.
127
128
129 libxkbcommon 0.7.0 - 2016-11-11
130 ==================
131
132 - Added support for different "modes" of calculating consumed modifiers.
133   The existing mode, based on the XKB standard, has proven to be
134   unintuitive in various shortcut implementations.
135
136   A new mode, based on the calculation used by the GTK toolkit, is added.
137   This mode is less eager to declare a modifier as consumed.
138
139 - Added a new interactive demo program using the Wayland protocol.
140   See the PACKAGING file for the new (optional) test dependencies.
141
142 - Fixed a compilation error on GNU Hurd.
143
144 - New API:
145   enum xkb_consumed_mode
146   XKB_CONSUMED_MODE_XKB
147   XKB_CONSUMED_MODE_GTK
148   xkb_state_key_get_consumed_mods2
149   xkb_state_mod_index_is_consumed2
150
151
152 libxkbcommon 0.6.1 - 2016-04-08
153 ==================
154
155 - Added LICENSE to distributed files in tarball releases.
156
157 - Minor typo fix in xkb_keymap_get_as_string() documentation.
158
159
160 libxkbcommon 0.6.0 - 2016-03-16
161 ==================
162
163 - If the XKB_CONFIG_ROOT environment variable is set, it is used as the XKB
164   configuration root instead of the path determined at build time.
165
166 - Tests and benchmarks now build correctly on OSX.
167
168 - An XKB keymap provides a name for each key it defines.  Traditionally,
169   these names are limited to at most 4 characters, and are thus somewhat
170   obscure, but might still be useful (xkbcommon lifts the 4 character limit).
171
172   The new functions xkb_keymap_key_get_name() and xkb_keymap_key_by_name()
173   can be used to get the name of a key or find a key by name.  Note that
174   a key may have aliases.
175
176 - Documentation improvements.
177
178 - New API:
179   xkb_keymap_key_by_name()
180   xkb_keymap_key_get_name()
181
182
183 libxkbcommon 0.5.0 - 2014-10-18
184 ==================
185
186 - Added support for Compose/dead keys in a new module (included in
187   libxkbcommon). See the documentation or the
188   xkbcommon/xkbcommon-compose.h header file for more details.
189
190 - Improved and reordered some sections of the documentation.
191
192 - The doxygen HTML pages were made nicer to read.
193
194 - Most tests now run also on non-linux platforms.
195
196 - A warning is emitted by default about RMLVO values which are not used
197   during keymap compilation, which are most often a user misconfiguration.
198   For example, "terminate:ctrl_alt_backspace" instead of
199   "terminate:ctrl_alt_bksp".
200
201 - Added symbol versioning for libxkbcommon and libxkbcommon-x11.
202   Note: binaries compiled against this and future versions will not be
203   able to link against the previous versions of the library.
204
205 - Removed several compatablity symbols from the binary (the API isn't
206   affected). This affects binaries which
207
208   1. Were compiled against a pre-stable (<0.2.0) version of libxkbcommon, and
209   2. Are linked against the this or later version of libxkbcommon.
210
211   Such a scenario is likely to fail already.
212
213 - If Xvfb is not available, the x11comp test is now correctly skipped
214   instead of hanging.
215
216 - Benchmarks were moved to a separate bench/ directory.
217
218 - Build fixes from OpenBSD.
219
220 - Fixed a bug where key type entries such as "map[None] = Level2;" were
221   ignored.
222
223 - New API:
224   XKB_COMPOSE_*
225   xkb_compose_*
226
227
228 libxkbcommon 0.4.3 - 2014-08-19
229 ==================
230
231 - Fixed a bug which caused xkb_x11_keymap_new_from_device() to misrepresent
232   modifiers for some keymaps.
233
234   https://github.com/xkbcommon/libxkbcommon/issues/9
235
236 - Fixed a bug which caused xkb_x11_keymap_new_from_device() to ignore XKB
237   PrivateAction's.
238
239 - Modifiers are now always fully resolved after xkb_state_update_mask().
240   Previously the given state components were used as-is, without
241   considering virtual modifier mappings.
242   Note: this only affects non-standard uses of xkb_state_update_mask().
243
244 - Added a test for xkbcommon-x11, "x11comp". The test uses the system's
245   Xvfb server and xkbcomp. If they do not exist or fail, the test is
246   skipped.
247
248 - Fixed memory leaks after parse errors in the XKB yacc parser.
249   The fix required changes which are currently incompatible with byacc.
250
251
252 libxkbcommon 0.4.2 - 2014-05-15
253 ==================
254
255 - Fixed a bug where explicitly passing "--enable-x11" to ./configure would
256   in fact disable it (regressed in 0.4.1).
257
258 - Added @since version annotations to the API documentation for everything
259   introduced after the initial stable release (0.2.0).
260
261 - Added a section to the documentation about keysym transformations, and
262   clarified which functions perform a given transformation.
263
264 - XKB files which fail to compile during keymap construction can no longer
265   have any effect on the resulting keymap: changes are only applied when
266   the entire compilation succeeds.
267   Note: this was a minor correctness issue inherited from xkbcomp.
268
269 - Fix an out-of-bounds array access in src/x11/util.c:adopt_atoms()
270   error-handling code.
271   Note: it seems impossible to trigger in the current code since the input
272   size cannot exceed the required size.
273
274
275 libxkbcommon 0.4.1 - 2014-03-27
276 ==================
277
278 - Converted README to markdown and added a Quick Guide to the
279   documentation, which breezes through the most common parts of
280   xkbcommon.
281
282 - Added two new functions, xkb_state_key_get_utf{8,32}(). They
283   combine the operations of xkb_state_key_get_syms() and
284   xkb_keysym_to_utf{8,32}(), and provide a nicer interface for it
285   (espcially for multiple-keysyms-per-level).
286
287 - The xkb_state_key_get_utf{8,32}() functions now apply Control
288   transformation: when the Control modifier is active, the string
289   is converted to an appropriate control character.
290   This matches the behavior of libX11's XLookupString(3), and
291   required by the XKB specification:
292   https://www.x.org/releases/current/doc/kbproto/xkbproto.html#Interpreting_the_Control_Modifier
293
294   https://bugs.freedesktop.org/show_bug.cgi?id=75892
295
296 - The consumed modifiers for a key are now calculated similarly
297   to libX11. The previous behavior caused a bug where Shift would
298   not cancel an active Caps Lock.
299
300 - Make xkbcommon-x11 work with the keymap reported by the XQuartz
301   X server.
302
303   https://bugs.freedesktop.org/show_bug.cgi?id=75798
304
305 - Reduce memory usage during keymap compilation some more.
306
307 - New API:
308   xkb_state_key_get_consumed_mods()
309   xkb_state_key_get_utf8()
310   xkb_state_key_get_utf32()
311
312 - Deprecated API:
313   XKB_MAP_COMPILE_PLACEHOLDER, XKB_MAP_NO_FLAGS
314     use XKB_KEYMAP_NO_FLAGS instead.
315
316 - Bug fixes.
317
318
319 libxkbcommon 0.4.0 - 2014-02-02
320 ==================
321
322 - Add a new add-on library, xkbcommon-x11, to support creating keymaps
323   with the XKB X11 protocol, by querying the X server directly.
324   See the xkbcommon/xkbcommon-x11.h header file for more details.
325   This library requires libxcb-xkb >= 1.10, and is enabled by default.
326   It can be disabled with the --disable-x11 configure switch.
327   Distributions are encouraged to split the necessary files for this
328   library (libxkbcommon-x11.so, xkbcommon-x11.pc, xkbcommon/xkbcommon-x11.h)
329   to a separate package, such that the main package does not depend on
330   X11 libraries.
331
332 - Fix the keysym <-> name lookup table to not require huge amounts of
333   relocations.
334
335 - Fix a bug in the keysym <-> name lookup, whereby lookup might fail in
336   some rare cases.
337
338 - Reduce memory usage during keymap compilation.
339
340 - New API:
341   New keysyms from xproto 7.0.25 (German T3 layout keysyms).
342   XKB_MOD_NAME_NUM for the usual NumLock modifier.
343   xkb_x11_* types and functions, XKB_X11_* constants.
344
345
346 libxkbcommon 0.3.2 - 2013-11-22
347 ==================
348
349 - Log messages from the library now look like "xkbcommon: ERROR" by
350   default, instead of xkbcomp-like "Error:   ".
351
352 - Apply capitalization transformation on keysyms in
353   xkb_keysym_get_one_sym(), to match the behavior specified in the XKB
354   specification:
355   https://www.x.org/releases/current/doc/kbproto/xkbproto.html#Interpreting_the_Lock_Modifier
356
357 - Support byacc for generating the parser, in addition to Bison.
358
359 - New API:
360   XKB_KEY_XF86AudioMicMute keysym from xproto 7.0.24.
361   XKB_KEYSYM_NO_FLAGS
362   XKB_CONTEXT_NO_FLAGS
363   XKB_MAP_COMPILE_NO_FLAGS
364
365 - Bug fixes.
366
367
368 libxkbcommon 0.3.1 - 2013-06-03
369 ==================
370
371 - Replace the flex scanner with a hand-written one. flex is no longer
372   a build requirement.
373
374 - New API:
375   xkb_keymap_min_keycode()
376   xkb_keymap_max_keycode()
377   xkb_keymap_key_for_each()
378
379
380 libxkbcommon 0.3.0 - 2013-04-01
381 ==================
382
383 - Allow passing NULL to *_unref() functions; do nothing instead of
384   crashing.
385
386 - The functions xkb_keymap_num_levels_for_key() and
387   xkb_keymap_get_syms_by_level() now allow out-of-range values for the
388   'layout' parameter. The functions now wrap the value around the number
389   of layouts instead of failing.
390
391 - The function xkb_keysym_get_name() now types unicode keysyms in
392   uppercase and 0-padding, to match the format used by XKeysymToString().
393
394 - Building Linux-specific tests is no longer attempted on non-Linux
395   environments.
396
397 - The function xkb_keymap_new_from_names() now accepts a NULL value for
398   the 'names' parameter, instead of failing. This is equivalent to passing
399   a 'struct xkb_rule_names' with all fields set to NULL.
400
401 - New API:
402   xkb_keymap_new_from_buffer()
403
404 - Bug fixes.