keymanapp / keymanapp/keyman

[iOS] Hidden initial character is breaking `nul` rules

Open
#2,366 2 comments 0 reactions 0 assignees View on GitHub
bug ios/
Dominant language
Pascal
Stars
534
Forks
143
Avg merge
2d 10h
Merged PRs (30d)
113

Description

**Describe the bug**
In the iOS app (in-app or system keyboard), there's often a hidden character at the start of context when it's first entered... which would seem to be a regression to the issue noted by https://github.com/keymanapp/keyman/issues/1212#issuecomment-488539671.

That, or this may be the result of a similar situation being triggered by iOS 13 'paste' operations. The original fix for the previous link avoids the issue when initializing within a new input field, but it's quite likely that it didn't account for paste ops re-inserting the character. Some investigation is required to determine if this is the actual situation occurring, though.

**To Reproduce**
Steps to reproduce the behavior:

Please reference the original reproduction mentioned within #2261. Note that said repro involves copying and pasting a specific string, which may be related.

A pre-compiled version of that test .kmn code is available in a comment located further down the page for #2261.

When performed naively, you should expect to see the text `ರ್y`, as the rule will fail to trigger due to the hidden character.

**Expected behavior**
Since that hidden character shouldn't be considered by the Keyman Engine (it's likely a Unicode byte-order mark), it shouldn't be considered as part of the context. We'd expect to see `ರ‍್ಯ` result instead.

---

**iPhone/iPad/Android (please complete the following information):**
- Device: any
- OS: iOS 13.2
- Keyman version 13.0.22
- Target application: any (in-app or system keyboard)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.