xkbcommon / libxkbcommon

keymap handling library for toolkits and window systems
https://xkbcommon.org
Other
286 stars 125 forks source link

keysyms: Require only 5 bytes for UTF-8 encoding #489

Closed wismill closed 4 months ago

wismill commented 4 months ago

Require only 5 bytes for the buffer of xkb_keysym_to_utf8, as UTF-8 encodes code points on up to 4 bytes + 1 byte for the NULL-terminating byte.

Previous standard RFC 2279 (1998) required up to 6 bytes per code point, but has been superseded by RFC 3629 (2003).

Note that the commit e0524296 that introduced this API is from 2012, which is 9 years after the new standard was introduced.

This PR modifies quite a lot of files (but with tiny diff), because we now enforce to use minimal buffer size internally.

Tests were already added in #414.

Fixes #418