spiegel-keyman/core/tests/unit
Marc Durdin 598b75fa24 fix(core): handle backspace decomposition 🍒
Ensure that when a single backspace decomposes the last NFC character in
the app context, the remainder of the 'cluster' is preserved, matching
the implication of the CLDR keyboard specification.

This addresses the behavior in #15487 where the cached context became
out of sync with the app context after deleting an entire NFC cluster
such as ê, which caused a loop ending up with the entire context being
deleted, at which point the loop exited with a fail-safe.

Note that the LDML keyboard tests (ldml.cpp) do not currently exercise
the normalization code; this is a gap that should be addressed to ensure
that we are testing final application behavior.

This cherry-pick only adds the direct normalization patch and unit test
and skips the additional changes for logging.

Fixes: #15487
Cherry-pick-of: #15488
2026-01-26 11:30:04 +11:00
..
json chore(core): split flags into standard.meson.build 2023-03-09 11:34:54 +07:00
kmnkbd fix(core): handle backspace decomposition 🍒 2026-01-26 11:30:04 +11:00
kmx chore(common): add unit test for nul and context() in context part of rule 2025-03-04 11:22:35 +01:00
ldml chore(resources, developer,core): CLDR 46 and workaround 2025-01-30 15:41:34 -06:00
utftest chore(core): rename test files 2024-11-26 17:47:11 +01:00
emscripten_filesystem.cpp fix(core): rename assert() to test_assert() in unit tests 2024-11-28 09:46:01 +07:00
emscripten_filesystem.h feat(core): use kmc to build kmx tests 2023-03-24 06:22:40 +07:00
km_core_keyboard_api.tests.cpp fix(core): fix compile error 2025-01-08 17:08:57 +01:00
load_kmx_file.cpp feat(core): implement loading KMX from blob 2024-11-27 15:30:05 +01:00
load_kmx_file.hpp feat(core): implement loading KMX from blob 2024-11-27 15:30:05 +01:00
meson.build chore(core): build parameters 2024-12-02 07:21:30 +07:00