keymanapp / keyman

Keyman cross platform input methods system running on Android, iOS, Linux, macOS, Windows and mobile and desktop web
https://keyman.com/
Other
377 stars 104 forks source link

bug(core): when calling km_core_state_get_actions, persist_options contains unexpected values #10067

Closed sgschantz closed 7 months ago

sgschantz commented 7 months ago

Describe the bug

After processing a key with Keyman Core, calling km_core_state_get_actions does not return a valid key value pair in the persist_options field as expected.

Reproduce the bug

  1. use the Armenian Mnemonic keyboard
  2. type[alt-v]
  3. expected: "√"
  4. type[w]
  5. expected: "" -- ("√" is deleted)

This should toggle the option 'option_ligature_ew' from a value of 0 (zero) to 1 (one)

However, calling the API returns invalid values, so they will not be persisted correctly on the platform and may cause the app to crash while attempting to parse them.

Keyman apps

Keyboard name

Armenian Mnemonic

mcdurdin commented 7 months ago

Helps if the unit test is actually attached. Unit test, once attached, fails. So I am starting there.