Commit graph

902 commits

Author SHA1 Message Date
rc-swag
9e1f73573e
fix(core): review comments
Co-authored-by: Marc Durdin <marc@durdin.net>
2023-11-30 13:56:01 +10:00
rc-swag
6820f36f7d fix(core): set_if_needed updates a empty cached context
In the case when the cached context had been cleared the
km_core_state_context_set_if_needed call would just compare
the null terminations of both strings and not set the cached
context to the application context.
2023-11-30 13:09:22 +10:00
Steven R. Loomis
4d22b177af feat(core): ldml improve key-not-found 🙀
- unused nit fix

For: #9451
2023-11-29 14:34:33 -06:00
Steven R. Loomis
84cc59c174 feat(core): ldml improve key-not-found 🙀
- restructure keyup/keydown code some
- new utility function emit_invalidate_passthrough_keystroke()

For: #9451
2023-11-29 14:29:26 -06:00
Steven R. Loomis
11334ed7fa feat(core): ldml improve key-not-found 🙀
- distinguish between unmapped and 0-length output strings
- don't do any processing for 0-length output strings
- no change to developer, that will be next
- remove a comment referencing transform=no

For: #9451
2023-11-28 18:07:46 -06:00
Marc Durdin
7ec4832edc fix(core): memory management of options in action struct
Fixes #10067.

Management of memory for persisted options was wrong in the action
struct, as the members key and value would be freed immediately after
being added to the temporary vector (because the vector was of the
struct rather than of the class).

Given the struct is a C struct, we need the memory management to be
explicit, so we now release() each option into the vector as we create
it, which means that its member values will not be freed when the option
is then immediately deleted. (This allows us to use the initial copy of
the members of option that option() constructor does.)

Added the release() function as that was a relatively clear way of
indicating that the contents of the structure are now owned by the
caller, following the pattern from std::unique_ptr.

Finally, the unit test for persisted options was in the action_api.cpp
test module, but it was never called, so this was not being tested. Now
it is.
2023-11-24 07:52:31 +10:00
rc-swag
4480a05412 chore(windows): removed cached context windows engine
Removed the cached context from the windows engine
2023-11-23 16:58:41 +10:00
Marc Durdin
958fb6a5c9 chore: add comment 2023-11-23 11:58:41 +10:00
Marc Durdin
21e0254c95 chore(core): remove vkey output from kmx processor
Fixes #10049.

vkey output was never supported by Core, so this code effectively was a
no-op.
2023-11-23 11:51:22 +10:00
Steven R. Loomis
a9b2dc9ede
Merge branch 'fix/developer/9438-vis-kbd-crash-epic-ldml' into fix/core-9961-optional-startContext-epic-ldml 2023-11-21 18:23:04 -06:00
Steven R. Loomis
037454b86e
Merge branch 'master' into feat/core/9707-tertiary-reorder-epic-ldml 2023-11-21 16:43:57 -06:00
Steven R. Loomis
d82f64fadc
Merge branch 'master' into feat/core/9450-backspace-epic-ldml 2023-11-21 15:01:51 -06:00
Steven R. Loomis
f524519b3f feat(developer): ldml fix testcase processing 🙀
- KM_CORE_BT_UNKNOWN should only be used with an empty context

For: #9468  but related to #9450
2023-11-20 16:57:47 -06:00
Steven R. Loomis
86e8a4f609
Merge branch 'fix/developer/9438-vis-kbd-crash-epic-ldml' into fix/core-9961-optional-startContext-epic-ldml 2023-11-16 16:17:12 -06:00
Steven R. Loomis
350eb83ab3 feat(core): ldml typedef for reorder weights 🙀
For: #9707
2023-11-16 16:13:48 -06:00
Steven R. Loomis
6bc72ff294 fix(core): dx: ldml: startContext should be optional in ldml test data 🙀
- per spec
- update tests to remove these

Fixes: #9961
2023-11-16 15:51:56 -06:00
Steven R. Loomis
3cd6c7630c feat(core): ldml tertiary reorder 🙀
- handle case where there's no tertiary base before the first char
- separate some element API tests from the actual tertiary test.  Tests were failing because of now-correct implementation.

Fixes: #9707
2023-11-16 13:55:49 -06:00
Steven R. Loomis
30d951ef67 feat(core): ldml dx: launch ldml unit tests before keyboard tests 🙀
For: #9707
2023-11-16 13:43:12 -06:00
Steven R. Loomis
f7566c7356 feat(core): ldml tertiary reorder 🙀
- implemented tertiary reordering
- reinstated bengali reordering!
- fixed reordering to be longest-first (by sorting the list before applying)
- updated debug logging

Fixes: #9707
2023-11-16 12:31:08 -06:00
Steven R. Loomis
85a5afafc9 feat(core): ldml tertiary reorder 🙀
- failing test cases, hooray! In XML and C++

For: #9707
2023-11-16 12:31:08 -06:00
Steven R. Loomis
e9e5665cb8 feat(core): ldml backspace transform 🙀
- refactor transform/normalization inner routine

For: #9450
2023-11-16 12:27:23 -06:00
Steven R. Loomis
d0c8ea5c88 feat(core): ldml backspace transform 🙀
- refactor keypress some (needs more)
- copypasta implementation of backspace transform

For: #9450
2023-11-16 12:25:15 -06:00
Steven R. Loomis
4bbafa6903 feat(core): marker normalization 🙀
- literally a bad assert. the error case is handled below, in fact the unit test tests for it.
- for some reason, assert.h wasn't included in some cases locally.

For: #9468
2023-11-16 12:11:41 -06:00
Steven R. Loomis
e28f35903a feat(core): marker normalization 🙀
- test fix

For: #9468
2023-11-15 17:29:18 -06:00
Steven R. Loomis
5a04a812fa feat(core): marker normalization 🙀
- temporarily remove a backspace test until #9450 is fixed.

For: #9468
2023-11-15 17:09:26 -06:00
Steven R. Loomis
07a4821336 feat(core): marker normalization 🙀
- a little further
- couple places where "it wasn't plugged in"
- adding some LDML-TODOs - marker creep
- fixed one unnecessary alloc/dealloc

For: #9468
2023-11-15 17:00:04 -06:00
Steven R. Loomis
2f843d98f3 feat(core): marker normalization 🙀
- go back to NFD for the context, for now
- anticipating when the privatecontext is NFD but the public context is NFC
- also update the test cases

For: #9468
2023-11-14 16:36:15 -06:00
Steven R. Loomis
7b481945e6 feat(core): test fix 🙀
- fix a cast
- fix some test cases

For: #9468
2023-11-14 07:28:57 -06:00
Steven R. Loomis
78c2ac4aec feat(core): ldml marker normalization 🙀
- refactor out backspace processing into a function.
- for now, just drop any markers in the context when we're lopping off the end

For: #9468
2023-11-14 07:28:41 -06:00
Steven R. Loomis
72830edfad Apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2023-11-14 07:28:41 -06:00
Steven R. Loomis
a69feb583f feat(core): ldml marker normalization 🙀
- km::kbp is soooo last month!
- test_transforms can run NFD with markers, with some caveats.

For: #9468
2023-11-14 07:28:10 -06:00
Steven R. Loomis
015a738226 feat(core): ldml marker normalization 🙀
- add a new remove_markers(std::u32string) function
- add test cases for text utils
- update (failing) test cases for transform
- improve documentation of append process
- support KM_CORE_BT_UNKNOWN in ldml test
- remove_markers with a map
- update normalize test

For: #9468
2023-11-14 07:26:47 -06:00
Steven R. Loomis
255960ecae feat(core): ldml dx: dump vkey and modifier 🙀
For: #9468
2023-11-14 07:26:47 -06:00
Steven R. Loomis
efc8ef022f feat(core): ldml normalization 🙀
- some failing marker tests

For: #9468
2023-11-14 07:26:47 -06:00
Steven R. Loomis
eb705ba312 feat(core): dx: 32 bit Debug_UnicodeString() 🙀
For: #10004
2023-11-14 07:17:01 -06:00
Steven R. Loomis
2913ba45a8 fix(common): dx: don't call exit(0) on failure 🙀
- always use std::exit(EXIT_FAILURE) if there is an error.
- use --print-errorlogs with meson to show errors to the log

Fixes: #10004
2023-11-14 07:16:32 -06:00
Steven R. Loomis
791a9aea44
Merge pull request #9919 from keymanapp/chore/developer/9838-cldr44-moredata-epic-ldml
feat(common): ldml update to WIP cldr data 🙀
2023-11-03 12:29:51 -05:00
Eberhard Beilharz
a5e6966d74
Merge pull request #9877 from keymanapp/chore/linux/9801_apiversion
chore(linux): Add Core API version number 🎬
2023-11-03 10:13:48 +07:00
Steven R. Loomis
09411eba33 feat(common): ldml update to WIP cldr data 🙀
- bn-bengali with a basic test
- fr-optimise
- note: disabling bengali reorders for now, not working properly due to tertiary reordering feat(core): tertiary reorders 🙀  #9707

For: #9916
2023-11-02 17:44:14 -05:00
Marc Durdin
39fe3f7ddd
Merge pull request #7857 from keymanapp/feature-macos-core
epic: Keyman Core for Mac 🍕
2023-10-30 19:30:33 +11:00
Marc Durdin
0e44cfdcaf
Merge pull request #9820 from keymanapp/fix/core/9816-build-test-params
fix(core): build: support -t parameter correctly
2023-10-28 17:50:05 +11:00
Steven R. Loomis
f72c571696
Merge branch 'master' into chore/developer/9838-cldr44-epic-ldml 2023-10-26 18:38:14 -05:00
Steven R. Loomis
d349959dea chore(core): ldml update to prefinal v44 🙀
- drop name section
- drop flick flags
- drop normalization,add name to meta
- debug printf fix
- assertion fix for display

For feat(developer): ldml re-sync with CLDR v44 spec 🙀  #9838
2023-10-26 18:35:55 -05:00
Steven R. Loomis
a45dc5c345 chore(developer): ldml update to prefinal v44 🙀
-  fix binary size issue
- upstream: issue in abnt2 sample keyboard

For feat(developer): ldml re-sync with CLDR v44 spec 🙀  #9838
2023-10-26 18:21:56 -05:00
Steven R. Loomis
4d358cabda chore(developer): ldml update to prefinal v44 🙀
-  utilities for extracting key ids
-  more key validation and munging
-  touch layout
-  fix basic.txt

For feat(developer): ldml re-sync with CLDR v44 spec 🙀  #9838
2023-10-26 12:57:07 -05:00
Eberhard Beilharz
7665ab35aa
chore(linux): Add Core API version number
Closes #9801.
2023-10-26 17:16:06 +02:00
Shawn Schantz
b908c30b2c
Merge branch 'feature-macos-core' into feature/core/add-core-wrapper 2023-10-26 08:41:09 +07:00
Steven R. Loomis
a8e2be5e9e chore(developer): ldml update to prefinal v44 🙀
- more tweaks

For feat(developer): ldml re-sync with CLDR v44 spec 🙀  #9838
2023-10-25 15:40:24 -05:00
Marc Durdin
8475b68248 feat(core): make persist_options always point to a valid array 2023-10-25 05:46:43 +07:00
Marc Durdin
8223792404 chore(core): rename kbp to core 2023-10-25 05:30:22 +07:00