Commit graph

24978 commits

Author SHA1 Message Date
Ross
1f0f088f9c fix(windows): a an extra rows for chng key lbl
Add an extra row for change text label to accommodate the
German and Kannada translations
2023-07-03 11:34:46 +10:00
Steven R. Loomis
88650e2085 feat(developer): uset in element string 🙀
- fix uset builder and other missing uset parts
- basic.xml passes
- update to constants

Fixes: #7377
2023-06-30 17:27:04 -05:00
Steven R. Loomis
79082ee3ab
Merge branch 'feat/common-7377-segment-ordr-epic-ldml' into feat/developer-7377-reorder-uset 2023-06-30 15:59:50 -05:00
Steven R. Loomis
e73d059fa9
Merge branch 'master' into feat/common-7377-segment-ordr-epic-ldml 2023-06-30 15:57:47 -05:00
Steven R. Loomis
5d5b61cd0a feat(developer): uset in element string 🙀
- update element string constructors to support UnicodeString and the segmented array from ElementParser
- update compiler machinery to pass USetParser in the DependencySections
- test cases

#7377
2023-06-30 15:56:45 -05:00
Steven R. Loomis
067c0b2f67 feat(common): unescaper / element updates for uset 🙀
- add unescaper for quad string (\u0127)

#7377
2023-06-30 15:50:38 -05:00
Keyman Server
7b71e61b8a
Merge pull request #9143 from keymanapp/auto/version-master-17.0.133
auto: increment master version to 17.0.133
2023-07-01 01:03:16 +07:00
Keyman Build Agent
c4ee4369cc auto: increment master version to 17.0.133 2023-06-30 14:02:37 -04:00
Eberhard Beilharz
8752c3c64d
Merge pull request #9142 from keymanapp/fix/linux/gha
fix(linux): Fix packaging GHA
2023-06-30 18:05:39 +02:00
Eberhard Beilharz
4bd0b40de6
fix(linux): Fix packaging GHA
The previous version of gha-ubuntu-packaging was faulty.
2023-06-30 17:56:28 +02:00
Steven R. Loomis
ceaf13a130
Merge branch 'master' into feat/common-7377-segment-ordr-epic-ldml 2023-06-30 08:52:01 -05:00
Steven R. Loomis
3d6af245de feat(common): add segmenter for element strings 🙀
- detect and reject nested square brackets, for now
- implement segmentation of reorder element strings,
  including type identification (escape, codepoint, uset)
- tests

For #7377
2023-06-30 08:49:07 -05:00
Eberhard Beilharz
f13330702c
Merge pull request #9123 from keymanapp/fix/linux/9024_dependencies
fix(linux): Fix GHA package builds for non-Jammy dists
2023-06-30 10:07:59 +02:00
Joshua A. Horton
3619180720 chore(ios): a bit of suggested trim 2023-06-30 12:58:35 +07:00
Joshua A. Horton
79c4fabf93 fix(ios): should not double-absolute a path (again) 2023-06-30 12:57:25 +07:00
Joshua A. Horton
d9bf6c996b fix(ios): should not double-absolute a path 2023-06-30 12:56:59 +07:00
Joshua A. Horton
30cc48f29e chore(ios): skipped one in a file I meant to complete 2023-06-30 12:56:14 +07:00
Joshua A. Horton
ab237cf3fc chore(ios): addresses some PR review concerns 2023-06-30 12:54:22 +07:00
Joshua Horton
2a62e3cecf
Merge pull request #9128 from keymanapp/chore/web/rework-touchpath-turtle
chore(web): touchpath-turtle rework 🐵
2023-06-30 11:58:21 +07:00
Joshua Horton
8f8d31c265
Merge pull request #9127 from keymanapp/refactor/web/headless-input-tracking
refactor(web): all gesture-oriented input control flows now have a headless form 🐵
2023-06-30 11:58:12 +07:00
Joshua Horton
951ef90157
Merge pull request #9126 from keymanapp/chore/web/sample-gesture-recording-end
fix(web): touchpath recordings always sample end of path, even when stationary 🐵
2023-06-30 11:58:05 +07:00
Joshua Horton
883f9575e6
Merge pull request #9122 from keymanapp/feat/web/hovered-item-tracking
change(web): tracking for 'initial' and 'current' UI item per touchpoint 🐵
2023-06-30 11:57:58 +07:00
Joshua Horton
08f761c90f
Merge pull request #9067 from keymanapp/chore/web/disconnect-subsegmentation
chore(web): disconnects the gesture-oriented touchpath-subsegmentation engine 🐵
2023-06-30 11:57:50 +07:00
Joshua Horton
768a4e7cbd
Merge pull request #9066 from keymanapp/chore/web/gesture-source-reorg
chore(web): feature-gesture reorganization 🐵
2023-06-30 11:57:40 +07:00
Marc Durdin
15fe1a02eb
Merge pull request #9136 from keymanapp/fix/developer/more-kmc-cleanup
fix(developer): some more kmc cleanup 🗜
2023-06-30 13:58:29 +10:00
Marc Durdin
088758ed74
Merge pull request #9135 from keymanapp/fix/developer/9125-kmcmplib-clobbering-previous-output
fix(developer): kmcmplib was clobbering previous output 🗜
2023-06-30 13:58:20 +10:00
Marc Durdin
36341f2fe1
Merge pull request #9134 from keymanapp/fix/common/kmx_file_alignment
fix(common): specify alignment for `COMP_` structs 🗜
2023-06-30 13:58:13 +10:00
Marc Durdin
c2fe17a2c6
Merge pull request #9133 from keymanapp/fix/developer/kmcmplib-GetDelimitedString-strchr-bad
fix(developer): `GetDelimitedString` was using wrong `strchr` 🗜
2023-06-30 13:58:06 +10:00
Marc Durdin
d03dceec0f
Merge pull request #9132 from keymanapp/fix/developer/kmcmplib-delete-array
fix(developer): ensure `delete` uses array semantics where appropriate 🗜
2023-06-30 13:57:58 +10:00
Marc Durdin
a9e6c86740
Merge pull request #9137 from keymanapp/chore/mac/supported-os-versions
docs(mac): Update requirements.md
2023-06-30 13:57:54 +10:00
Marc Durdin
64e2eeb263
chore(mac): Update requirements.md 2023-06-30 12:20:44 +10:00
Marc Durdin
88eaab55af
Merge pull request #9116 from keymanapp/fix/developer/various-kmc-kmw-bugs
fix(developer): various bugs in kmc and related packages 🗜
2023-06-30 12:02:19 +10:00
Joshua A. Horton
08e583adad fix(web): previously-missed post-rebase corrections 2023-06-30 09:01:43 +07:00
Marc Durdin
f85478ac6f fix(developer): kmc needs to support .js-only packages
Fixes #9111.

We have existing packages which have only .js in them, for touch-only
keyboards (mostly legacy but still...), so we need to support the freaky
Javascript regex search which we did in the past for extracting
metadata. While this is not necessarily going to work with hand-crafted
Javascript keyboards, it should work with all kmc- and kmcomp-generated
keyboards, so it will suffice to support these legacy packages.

In the future, we will be giving a hint when a package includes a .js
but not a .kmx, gradually upgrading this to a warning and finally an
error as we attempt to phase out .js-based keyboards in preference for
.kmx keyboards.
2023-06-30 08:45:03 +07:00
Marc Durdin
d021526e38 fix(common): give friendly error when .kvks is in binary format
Fixes #9124.
2023-06-30 08:43:01 +07:00
Marc Durdin
f2a7efa2ec fix(developer): kmcmplib was clobbering previous output
Running kmc on a set of keyboards would sporadically fail after some
time. It turns out this was related to memory allocation, specifically,
resizing the WASM module's memory buffer caused `TypedArray` views into
the memory to be reset!

By default, when a `Uint8Array` is created from an `ArrayBuffer` (e.g.
`Module.HEAP8.buffer`), it is a dynamic view into that buffer. This
module buffer can be dynamically reallocated at any time, which can
happen when allocating memory in WASM code (so the change will look
_really_ weird in a stack trace). Thus, to ensure we don't trip over
ourselves, we need to copy the buffer. Fortunately, creating a
`Uint8Array` from a `Uint8Array` copies the data, and is pretty quick.
2023-06-30 08:38:57 +07:00
Marc Durdin
56da64796f fix(common): specify alignment for COMP_ structs
When we read .kmx files, they have no alignment guarantees, so we need
to tell the compiler to generate unaligned-safe code for accesses to
`COMP_` structure members, because typically we point into the buffer
and read at any offset.

A .kmx file will generally be 2-byte aligned, as there are no structures
or data types with smaller than 2 byte widths. There is no requirement
that this be the case per the .kmx spec, though. So we use a 1 byte
alignment attribute for the compiler, so it will generate safe code when
reading these structs.

Note that we are assuming that `COMP_KEYBOARD` is aligned because it is
always the start of the file, so will be at the start of any buffer
which will automatically be aligned correctly.

We should probably review some of our design decisions and structs for
KMXPlus given this.
2023-06-30 08:29:20 +07:00
Marc Durdin
562ced5213 fix(developer): GetDelimitedString was using wrong strchr
Picked this up while running `-fsanitize=address` for trying to track
down another bug.

This fixes a buffer overrun (normally invisible) in kmcmplib, where
`xstrchr` was being called, which takes a string as its second
parameter, but being passed a single character. This was incorrect
behaviour for two reasons:

1. Passing a single character doesn't have null termination (big bug!)
2. We were not wanting xstring semantics on the token being parsed here

Replaced with `u16chr`, which does do what we want. Note the
casting because `u16chr` only has a `const` version of its input/output
at present.

Removed `xstrchr` because it is not used anywhere else in kmcmplib.
2023-06-30 08:24:11 +07:00
Marc Durdin
3b735cdc80 fix(developer): ensure delete uses array semantics where appropriate
The kmcmplib compiler source used `delete` instead of `delete[]` in a
number of locations where the corresponding allocation was an array.

This doesn't appear to matter on arrays of primitives on most platforms
that we are targeting, but it _is_ undefined behaviour so we should
correct it.

https://stackoverflow.com/a/2425749/1836776
2023-06-30 08:14:38 +07:00
Joshua A. Horton
4def47a5cc feat(web): touchpath turtle now supports 'hovered item' emulation 2023-06-29 15:56:02 +07:00
Joshua A. Horton
a1dc6fde9f chore(web): simplifies TouchpathTurtle, adds sample-path tracking 2023-06-29 15:50:20 +07:00
Joshua A. Horton
1be864c1ff chore(web): drops mocked-subsegmentation / segment-construction unit tests 2023-06-29 15:49:34 +07:00
Joshua A. Horton
d4f6d5a9c3 feat(web): headless test-sequence playback now InputEngine based 2023-06-29 14:27:57 +07:00
Joshua A. Horton
327a9271a5 refactor(web): fully headless TrackedInput, top-level class equivalent 2023-06-29 14:26:35 +07:00
Joshua A. Horton
a7e2c7aa32 chore(web): now always samples end of touchpath sequence, even if was stationary 2023-06-29 14:23:24 +07:00
Joshua A. Horton
3fbd59d59d chore(web): build.sh configure fix 2023-06-29 14:22:43 +07:00
Joshua A. Horton
d7a642e610 change(web): moves tagged HoveredItem onto InputSample 2023-06-29 14:22:08 +07:00
Joshua A. Horton
d983f4afa8 chore(web): Merge branch 'chore/web/disconnect-subsegmentation' into feat/web/hovered-item-tracking 2023-06-29 09:20:23 +07:00
Joshua A. Horton
c43f8371a5 docs(web): notes a test component that's subsegmentation-only 2023-06-29 09:20:04 +07:00
Eberhard Beilharz
dc22af5b47
fix(linux): Fix GHA package builds for non-Jammy dists
Fixes #9024.
2023-06-28 19:11:43 +02:00