spiegel-keyman/core
Marc Durdin 2e96fe93b6 fix(core): normalization segment should end on NFC boundary, not NFD
When normalizing, we need to stop processing on an NFC boundary, not an
NFD boundary, to support normalizations such as in Bengali, where
appending `U+09D7` to a context of `U+0995 U+09C7` should result in
`U+0995 U+09CC`.

The specification is unclear on this; see https://unicode-org.atlassian.net/browse/CLDR-19218

This also updates the ldml keyboard unit test suite to support running
in full NFC mode (used in all Engine implementations) as well retaining
the NFD mode (now only used by the debugger).

Side note: the Bengali normalization failure case was picked up by the
improvements to the unit test suite, proving once again that good tests
are so valuable.

Fixes: #15491
Fixes: #15505
Follows: #15488
Cherry-pick-of: #15506
Relates-to: CLDR-19218
2026-02-04 06:15:35 +11:00
..
docs chore: change to https in docs 2024-12-17 15:27:07 +07:00
include maint(resources): add repository record for all published packages 2025-10-30 07:10:45 +01:00
src fix(core): normalization segment should end on NFC boundary, not NFD 2026-02-04 06:15:35 +11:00
subprojects feat(core): implement loading KMX from blob 2024-11-27 15:30:05 +01:00
tests fix(core): handle backspace decomposition 🍒 2026-01-26 11:30:04 +11:00
tools chore(core): move API docs from help.keyman.com 2024-11-07 08:28:33 +07:00
.build-builder chore(core): add core/.build-builder as CI signal 2022-09-12 10:06:29 +10:00
.gitignore chore(core): split flags into standard.meson.build 2023-03-09 11:34:54 +07:00
build.bat chore: move from vcvarsall.bat to vsdevcmd.bat 2023-02-22 09:43:17 +07:00
build.sh maint(linux): add --no-werror option to not report warnings as errors 2025-05-20 15:10:16 +02:00
commands.inc.sh maint(linux): add --no-werror option to not report warnings as errors 2025-05-20 15:10:16 +02:00
CORE_API_VERSION.md chre(linux): bump libkeymancore version 2024-05-07 08:55:48 -05:00
cross-mac-arm64.build fix(core): set mac build version for meson cli build to 10.13 2024-08-19 10:22:10 -05:00
cross-mac-x86_64.build fix(core): set mac build version for meson cli build to 10.13 2024-08-19 10:22:10 -05:00
getversion.bat chore(common): adjust scripts for core relocation 2022-05-18 07:22:11 +10:00
getversion.sh chore(linux): Refactor scripts and packaging 2023-02-14 09:42:13 +01:00
meson.build chore(core): move API docs from help.keyman.com 2024-11-07 08:28:33 +07:00
meson_options.txt chore(core): cleanup meson build 2023-02-21 12:12:28 +07:00
README.md feat(core): seed Keyman Core normalization 2024-01-16 06:21:38 +07:00
wasm.build.linux.in chore(core): remove meson warnings for wasm builds 2024-12-12 19:48:13 +01:00
wasm.build.mac.in chore(core): remove meson warnings for wasm builds 2024-12-12 19:48:13 +01:00
wasm.build.win.in chore(core): remove meson warnings for wasm builds 2024-12-12 19:48:13 +01:00
wasm.defs.build chore(core): remove meson warnings for wasm builds 2024-12-12 19:48:13 +01:00

Keyman Core

Version 1.0.0 of libkeymancore released with Keyman 17.0