Steven R. Loomis
e43aa3c737
fix(core): skip leading trail surrogate char
...
- update tests per review
2024-04-05 11:07:07 -05:00
Steven R. Loomis
c91095f0ca
fix(core): core to automatically reset context if a frame key pressed
...
- update ldml test with an exception for k_102_keytest
2024-04-04 17:12:26 -05:00
Steven R. Loomis
c86ab582a7
chore(core): reinstate context reset test in ldml
...
- reverts 04a6e164d7 for k_102_keytest.xml
2024-04-04 12:14:54 -05:00
Steven R. Loomis
2c4d8e34e3
fix(core): skip leading trail surrogate char in km_core_state_context_set_if_needed()
2024-04-04 12:02:17 -05:00
Steven R. Loomis
8d2fe35288
Merge pull request #11119 from keymanapp/chore/core/dx-better-embedded-test-msg
...
chore(core): dx better err message on embedded test vkeys 🙀
2024-04-02 16:39:15 -05:00
Steven R. Loomis
5b1c853557
fix(common,core): support other lookup for modifiers
...
- the 'other' keyword was incorrectly called 'default'
Fixes : #11072
2024-04-01 23:21:33 -05:00
Steven R. Loomis
054d9fd07c
chore(core): dx even better err message on embedded test vkeys
...
- report on vk-not-found
- separate message for excess string
2024-03-28 13:21:30 -05:00
Steven R. Loomis
0f0019983e
Merge branch 'feat/core/11072-default-modifier' into chore/core/dx-better-embedded-test-msg
2024-03-28 13:12:16 -05:00
Steven R. Loomis
89f5a0e090
fix(core): support default lookup for modifiers
...
Fixes : #11072
2024-03-28 13:12:01 -05:00
Steven R. Loomis
4881d1aab0
chore(core): dx better err message on embedded test vkeys
2024-03-28 12:41:42 -05:00
Marc Durdin
5790f634cf
Merge pull request #11101 from keymanapp/fix/core/11067-fix-actions-normalize-utf32
...
fix(core): fix pointer math in actions_normalize() 🙀
2024-03-28 19:18:15 +11:00
Steven R. Loomis
1ac5bdfaa1
Merge pull request #11071 from keymanapp/fix/core/11057-string-too-long
...
fix(core): calculate offset correctly when replacing marker in transform (fixes crash)🙀
2024-03-28 00:12:18 -05:00
Steven R. Loomis
5f836d72f0
Merge pull request #11059 from keymanapp/fix/core/11045-assert-marker
...
fix(core,developer): variable/marker substitution in sets and strings🙀
2024-03-28 00:11:28 -05:00
Steven R. Loomis
adc421974c
chore(core): fix actions_normalize() pointer math - tests
...
- fix comments yet again
- add regression test in test_actions_normalize.cpp
For: #11067
2024-03-27 23:55:01 -05:00
Steven R. Loomis
e8a8590eee
fix(core): revert some interim fixes
...
- ldml_test_source fix moved off to issue #11083
- an optimization in ldml_processor also rolled back
2024-03-27 08:05:39 -05:00
Steven R. Loomis
84b6488f08
fix(core): dx: don't choke on embedded non-ascii in ldml .xml test files
...
- ldml_test_source: clarify UTF-8 processing in ltrim()
2024-03-26 19:55:03 -05:00
Steven R. Loomis
18c6ecfc08
fix(core): fix 2 marker cases in ldml_event_state::emit_difference 🙀
...
- handle the case where old and new context strings are the same (i.e. no work to do).
- fix pointer arithmetic error in #10356 - the special case where one marker is being replaced by another. The named regression test didn't actually hit this case.
Fixes: bug(core): 'string too long' #11057
2024-03-25 16:45:01 -05:00
Steven R. Loomis
54e59e47bc
fix(core): dx: don't choke on embedded non-ascii in ldml .xml test files
...
- ldml_test_source had a trim() implementation that was causing asserts in std::isspace() which turned out to be due to negative integers being passed
- The actual line that caused trouble was, quote, '«" />'
2024-03-25 15:57:44 -05:00
Steven R. Loomis
f2ad7d4e68
fix(common): further improvement to string/set substitution
...
- tran: check for \uXXXX earlier in the chain, because we emit this format further down
- add test cases for syntax chars being used in variables
Fixes: bug(core): assert when matching markers #11045
Fixes: bug(developer): escape on string substitution if syntax char #11037
2024-03-25 14:52:32 -05:00
Steven R. Loomis
bc5a639cff
chore(core): fix for ldml test DTD reference 🙀
...
Typo from earlier fix #10900
2024-03-25 12:02:49 -05:00
Steven R. Loomis
67838e60a2
fix(developer,core): fix for marker substitution in sets
...
- for bug(core): assert when matching markers #11045
- track raw and marker-substituted sets
2024-03-25 12:00:55 -05:00
Steven R. Loomis
28bdbbcfd7
bug(core): repro for assertion
...
- test case with a set of markers
2024-03-25 11:51:26 -05:00
Steven R. Loomis
6d2ae221af
chore(core,developer,resources): ldml update out of techpreview 🙀
...
- further fixes
2024-03-04 08:21:45 -06:00
Steven R. Loomis
17a653fa19
chore(core): ldml update out of techpreview 🙀
...
- updates to support techpreview -> 45
- test changes
Fixes : #10900
2024-03-02 22:40:39 -06:00
Steven R. Loomis
209717a24a
chore(core,developer): rename unicodeSet to uset in xml
...
chore(developer): rename unicodeSet to uset 🙀 #10657
2024-02-27 18:11:18 -06:00
Steven R. Loomis
b1d74ce809
chore(core): describe what is being tested in each stage
...
Fixes : #10505
2024-02-22 16:19:21 -06:00
Steven R. Loomis
993f5252e9
chore(core): describe what is being tested in each stage
...
Fixes : #10505
2024-02-22 13:15:46 -06:00
Steven R. Loomis
9ef198ff19
chore(core): update sample ldml keyboard
...
Fixes : #10505
2024-02-20 12:47:25 -06:00
Steven R. Loomis
746af68afa
chore(core): shuffle transform matcher. re-enable failing case
...
For #10736
2024-02-16 12:49:19 -06:00
Steven R. Loomis
503f196e42
chore(core): update test case with TODO for known issue
...
For #10734
2024-02-15 16:27:26 -06:00
Steven R. Loomis
e7b31113a3
chore(core): remove obsolete TODOs. Temporary change to test.
...
- TODO: 10734 There's a bug in the matching still. Come back and fix this, but the crasher is fixed.
For #10734
2024-02-15 16:21:53 -06:00
Steven R. Loomis
e099ffa3a1
chore(core): update ldml_test
...
- includes crasher from #10734
For #10505
2024-02-15 15:26:09 -06:00
Steven R. Loomis
5f01fca679
chore(core): create sample LDML keyboard that exercises effectively all functionality
...
- test keyboard was wrong
For #10505
2024-02-15 14:26:44 -06:00
Steven R. Loomis
e415f411e4
chore(core): create sample LDML keyboard that exercises effectively all functionality
...
- add some more functionality
For #10505
2024-02-15 14:26:44 -06:00
Steven R. Loomis
701291a7f7
chore(core): create sample LDML keyboard that exercises effectively all functionality
...
For #10505
2024-02-15 14:26:44 -06:00
Marc Durdin
64daa6182b
Merge pull request #10618 from keymanapp/fix/core/10615-10616-10617-core-surrogates-and-app-context-markers-and-memory-leak
...
fix(core): surrogate handling, markers in app context, and memory leak
2024-02-07 14:43:12 +11:00
Marc Durdin
bcc18bfe8d
Merge pull request #10607 from keymanapp/fix/core/10605-app-context-copy-strip-markers
...
fix(core): strip markers in `actions_update_app_context_nfu()`
2024-02-07 14:43:01 +11:00
Marc Durdin
6c4d5ff7fa
Merge pull request #10585 from keymanapp/fix/core/10582-km_core_state_get_actions-idempotency
...
fix(core): make `km_core_state_get_actions()` idempotent
2024-02-07 14:42:50 +11:00
Marc Durdin
0cc6901085
Merge branch 'fix/core/10605-app-context-copy-strip-markers' into fix/core/10615-10616-10617-core-surrogates-and-app-context-markers-and-memory-leak
2024-02-07 12:33:33 +11:00
Marc Durdin
c807415563
chore: Apply suggestions from code review
...
Co-authored-by: Steven R. Loomis <srl295@gmail.com>
2024-02-07 12:20:56 +11:00
Marc Durdin
fe8eba176c
Merge branch 'fix/core/10605-app-context-copy-strip-markers' into fix/core/10615-10616-10617-core-surrogates-and-app-context-markers-and-memory-leak
2024-02-05 13:45:03 +11:00
Marc Durdin
49eb6f42a9
Merge branch 'fix/core/10582-km_core_state_get_actions-idempotency' into fix/core/10605-app-context-copy-strip-markers
2024-02-05 13:44:56 +11:00
Marc Durdin
70ba1d1c1e
Merge branch 'chore/core/10520-hide-old-action-apis' into fix/core/10582-km_core_state_get_actions-idempotency
2024-02-05 13:44:47 +11:00
Marc Durdin
9ba919c2a9
fix(core): surrogate handling, markers in app context, and memory leak
...
Fixes #10615 (surrogate handling, km_core_state_context_set_if_needed).
Fixes #10616 (markers in app context, in unit tests)
Fixes #10617 (memory leak in replace_context).
The surrogate handling and markers in app context bugs were quite
tangled, so opted to fix those both together in one commit. The memory
leak was spotted while verifying the changes for surrogate handling.
Surrogates were not handled in is_context_unchanged, and opted to
refactor to work directly with km_core_context_item arrays rather than
continue with the string-based comparison, for simplicity.
While writing the corresponding unit tests, realised that the
app_context checks were incorrect in a number of existing tests, and so
fixed up the existing tests at the same time as writing up the new
tests. The only changes to core for this were to add assertions for the
app_context to ensure that markers are not inadvertently added.
2024-02-03 09:16:16 +07:00
Marc Durdin
9e50f50687
fix(core): strip markers in actions_update_app_context_nfu()
...
Fixes #10605 .
2024-02-02 15:10:05 +07:00
Steven R. Loomis
3a538c103f
feat(developer): support normalization=disabled 🙀
...
- test and code fixes
#10554
2024-02-01 18:40:02 -06:00
Steven R. Loomis
7572c9476e
feat(developer): support normalization=disabled 🙀
...
- main core changes and test changes
#10554
2024-02-01 17:32:42 -06:00
Marc Durdin
aad7c0a42b
chore(core): fixup typos
2024-02-01 15:05:24 +07:00
Steven R. Loomis
9120bb4c87
feat(core,developer): normalization=disabled 🙀
...
- failing tests and initial work
#10554
2024-01-31 22:38:06 -06:00
Marc Durdin
1b88ab99be
fix(core): make km_core_state_get_actions() idempotent
...
Fixes #10582 .
Returned struct from the `km_core_state_get_actions()` API is now owned
by the state object. This is a change in API contract. The corresponding
`km_core_actions_dispose()` API has been made private, because there is
never any need for API consumers to call it. As this change is happening
in alpha, we won't bump the ABI version.
`state->app_context` is now guaranteed to be in sync with
`state->context` after `km_core_process_event()`, with the actions
struct populated at that point.
The next and final step in this refactor is to remove the actions queue
altogether from the Core and make that a kmn-only concept, but that will
wait until 18.0. The only consumers of the actions queue are the
kmn-specific interactive debugger in Keyman Developer, and kmn-specific
Input Method eXtensions in Keyman Engine for Windows.
2024-02-01 11:28:08 +07:00