-
-
Notifications
You must be signed in to change notification settings - Fork 132
fix(core): normalization segment should end on NFC boundary, not NFD 🍒 🏠 #15551
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
mcdurdin
merged 3 commits into
stable-18.0
from
fix/core/cherry-pick/15491-15505-bengali-normalization-and-tests
Feb 4, 2026
Merged
fix(core): normalization segment should end on NFC boundary, not NFD 🍒 🏠 #15551
mcdurdin
merged 3 commits into
stable-18.0
from
fix/core/cherry-pick/15491-15505-bengali-normalization-and-tests
Feb 4, 2026
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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
Co-authored-by: Darcy Wong <darcy_wong@sil.org> Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
User Test ResultsTest specification and instructions User tests are not required Test Artifacts
|
darcywong00
approved these changes
Feb 4, 2026
Contributor
darcywong00
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
Base automatically changed from
fix/core/cherry-pick/15487-bksp
to
stable-18.0
February 4, 2026 02:53
This was referenced Feb 4, 2026
Collaborator
|
Changes in this pull request will be available for download in Keyman version 18.0.246 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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+09D7to a context ofU+0995 U+09C7should result inU+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
Test-bot: skip