Steven R. Loomis
8ea87aa828
feat(common): ldml: merge keys into key2 🙀
2023-02-16 12:29:19 -06:00
Steven R. Loomis
7c02ab85af
feat(core): ldml C++ feature support 🙀
...
- make ldml.cpp print FAILED on failure especially because of https://github.com/microsoft/vscode-cpptools/issues/487
- add vkey validation (#7135 )
- add disp validation
- fix: a latent bug in disp! disp.count was === vkey.count, oops. Fix and test cases.
For: #7985
2023-02-14 09:23:03 -06:00
Steven R. Loomis
57d4dfea75
Apply suggestions from code review
...
Co-authored-by: Marc Durdin <marc@durdin.net>
2023-01-07 22:46:41 -06:00
Steven R. Loomis
2f44780e87
fix(core): ldml: add asserts to C++ 🙀
...
- found a logic bug in kmx_plus.cpp
Fixes #7984
2023-01-06 16:54:24 -06:00
Marc Durdin
920d22795c
chore(core): additional cleanup
2022-10-21 15:33:09 +11:00
Steven R. Loomis
fc554c4901
fix(core): xstring/utf32 review feedback
...
For: #7418
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2022-10-13 17:05:39 -05:00
Steven R. Loomis
ab0f2c1b24
feat(core): ldml: basic transforms, utf32 fixes 🙀
...
for #7234
2022-10-12 19:31:05 -05:00
Steven R. Loomis
5a6389deb8
feat(core): ldml: basic transforms, again 🙀
...
- new test file for transforms
- new class, ldml_transforms
for #7234
2022-10-12 19:29:37 -05:00
Steven R. Loomis
8a6b4a7fd4
feat(core): ldml: Use new UTF-16 to UTF-32 function 🙀
...
- also a test case with a 🙀 key on the tiny keyboard
For #7418
2022-10-12 19:26:42 -05:00
Steven R. Loomis
eba0d12123
chore(core): refactor ldml_processor 🙀
...
- split out vkeys
for #7234
2022-10-12 17:21:32 -05:00
Steven R. Loomis
30a100aa8a
fix(core): ldml: cleanup per review comments 🙀
...
- update DebugLog macro to use scoped functions
for #7234
2022-10-12 15:21:13 -05:00
Steven R. Loomis
3ceea19218
fix(core): validate kmxplus files 🙀
...
- split validation out into a separate kmx_file_validator.hpp
- kmx_file.h should remain C-only usable
Fixes : #7220
2022-09-14 16:32:18 -05:00
Steven R. Loomis
ea417c9f72
fix(core): VerifyKeyboard() on kmxplus files 🙀
...
- move VerifyKeyboard into COMP_KEYBOARD::VerifyKeyboard
- change call sites in kmx_file.h
For: #7220
2022-09-12 17:01:45 -05:00
Steven R. Loomis
7a71ed84cc
fix(core): ldml: improve utf-32 handling 🙀
...
- remove hacky utf-32 processing
- add utf-32 test case to test_kmx_plus.cpp
- change kmx_plus to return std::u16string
- kmx_xstring: add Uni_IsBMP() macro
Fixes : #7134
2022-09-07 18:08:26 -05:00
Steven R. Loomis
f3f498e923
fix(core): fix validators 🙀
...
- copy over asserts from 'old' code
#7136
2022-08-31 17:37:55 -05:00
Steven R. Loomis
90be01385b
chore(core): split out validators 🙀
...
#7136
2022-08-31 17:37:55 -05:00
Steven R. Loomis
f03abf2ea5
Update core/src/ldml/ldml_processor.cpp
...
Co-authored-by: Marc Durdin <marc@durdin.net>
2022-08-29 17:23:17 -05:00
Steven R. Loomis
46d7c96823
fix(core): ldml: fix validator 🙀
...
- allow keys section to exactly fit in data size, as in #7140
2022-08-29 17:16:45 -05:00
Steven R. Loomis
1c7188f9fd
Apply suggestions from code review
...
Co-authored-by: Marc Durdin <marc@durdin.net>
2022-08-29 16:41:12 -05:00
Steven R. Loomis
791d253528
feat(core): ldml: improve reading 🙀
...
- read keys into a std::map instead of on the fly
- remove retention of entire kmx file
- remove some functions from kmx_plus.h
#5015
2022-08-26 16:47:20 -05:00
Steven R. Loomis
3de77cda92
feat(core): ldml: improve reading 🙀
...
- read keys into a std::map instead of on the fly
- no longer retain copy of entire KMX file in read
2022-08-26 16:43:27 -05:00
Steven R. Loomis
892492a634
feat(core): ldml: improve validation 🙀
...
- clearer asserts
- validate length of data
#5015
2022-08-26 15:45:48 -05:00
Steven R. Loomis
aeeae1c4f4
feat(core): ldml: improve read side 🙀
...
- don't reparse structs each time
- move validation into constructor
2022-08-26 13:15:05 -05:00
Steven R. Loomis
f7aeba5f01
feat(core): ldml: validator for kmxplus 🙀
...
- also update test case, 002_null_invalid is expected to not validate
#7097
2022-08-25 12:54:08 -05:00
Steven R. Loomis
43b3e3243e
fix(core): ldml: emit nothing (no err) on unassigned keys 🙀
...
- also update test case
#7097
2022-08-25 11:22:19 -05:00
Steven R. Loomis
7aac6a1747
chore(core): update 000_null_keyboard to be a proper null keyboard 🙀
...
- rewrite 000_null_keyboard.kmx to be valid, but with no keys
- remove outdated comment in kmx_plus.h
- update kmx_plus.cpp to not reverse the order of section ids (#7098 )
- add a new test option for expected-error
2022-08-24 17:04:55 -05:00
Steven R. Loomis
b180ca844d
fix(core): fixes for kmx_file rearrangement 🙀
...
fix breaks in #7111 and prior
#7098
2022-08-24 13:49:55 -05:00
Steven R. Loomis
16b8d725fd
fix(core): ldml: include path fix 🙀
...
#7098
2022-08-23 19:15:20 -05:00
Steven R. Loomis
b08f101f37
fix(core): ldml: goodbye multichar strings 🙀
...
- update builder to print out string as well as hex
- change to symbol name
2022-08-23 16:34:08 -05:00
Steven R. Loomis
59fc1521dd
fix(core): ldml: use nullptr and some other cleanups 🙀
...
- per review comments
Fixes : #7098
2022-08-23 12:04:57 -05:00
Steven R. Loomis
da3bd0a619
fix(core): ldml: fix a bad unsigned assert 🙀
...
Fixes : #7098
2022-08-23 11:56:36 -05:00
Steven R. Loomis
a4080d2b7a
feat(core): ldml: cleanup of header files
...
- quell debug messages unless KMXPLUS_DEBUG=1
- don't read the file twice
#5015
2022-08-19 17:42:09 -05:00
Steven R. Loomis
a333eade22
feat(core): ldml: tiny passes tests
...
- removed null from build, invalid
2022-08-18 14:27:17 -05:00
Steven R. Loomis
95b4469ea8
feat(core): build out ldml structures
...
- checkin spec to repo
- new header: kmx_plus.h with data access structs and functions
- static asserts to validate header sizes
- early validation of data
- internal dump of kmx+ data
2022-08-17 15:53:53 -05:00
Steven R. Loomis
21a783a6ca
feat(core): add event_flags to process_event
...
- uint16_t
- defined km_kbp_event_flags to define the bitfield
- bitfield has value KM_KBP_EVENT_FLAG_TOUCH for touch events
- ignored everywhere, currently
2022-08-11 16:14:57 -05:00
Steven R. Loomis
ea4c2c07c2
feat(core): constant generator between core and developer
...
- seems to build every time, but works
2022-08-08 18:11:58 -05:00
Marc Durdin
c2b89554e3
chore: address review comments
2022-08-08 11:48:51 -05:00
Marc Durdin
6f61b1d8da
chore(common): rename KF_KMXPLUS flag
2022-08-07 08:03:49 -05:00
Marc Durdin
5cb6664a46
chore(core): tag unused parameters
2022-08-07 08:03:09 -05:00
Marc Durdin
3ea7ad7248
chore(core): cleanup ldml file sniff
2022-08-07 08:03:04 -05:00
Marc Durdin
7ff9e79e01
feat(core): ldml unit tests and stub actions
...
* Enables identification of KMXPlus files in processor factory
* Adds a stub action to generate an 'a' output character
* Adds a passing null_keyboard unit test for a hypothetical ldml
keyboard
2022-08-07 08:02:50 -05:00
Marc Durdin
0ce519a906
feat(common): LDML keyboard_processor infrastructure
...
Establishes baseline class and headers, and stub for loading LDML
keyboards embedded in kmxplus files.
2022-08-07 08:02:42 -05:00