Commit graph

11129 commits

Author SHA1 Message Date
Marc Durdin
558c8013ee feat(developer): improve BCP 47 canonicalization
Ensures we get a canonical tag per langtags.json as far as we possibly
can. This is a breaking change for the compiler as tags which were
formerly regarded as canonical are no longer regarded that way. This
mostly relates to script subtag but a secondary bug meant that some
other tags would have lost data in the canonicalization process
(because we did a lookup based only on the language subtag previously,
which is a no-no).

See keymanapp/keyboards#1452 for related work.
2021-02-05 16:56:21 +11:00
Marc Durdin
0c782e22d3 fix(developer): Compiler check for if and nul at start of context
Fixes #4280.

Adds checks to verify that `if()`, `platform()`, `baselayout()` and
`nul` are at the start of the context in the appropriate order.

Adds unit tests to validate these checks.

These are conditions that have been present in earlier versions of
Keyman but not enforced until now. Keyboards that do not meet these
conditions would not work correctly in all circumstances and should be
updated to meet the requirements.

An alternative would have been to reorder the context string but that is
much more complex as manipulation would also have been required for the
output string. The enforced order is logical and reduces confusion in
any case.

Updated documentation coming along shortly.
2021-02-03 15:28:53 +11:00
Marc Durdin
171b6fac54 fix(developer): debug information with unicode identifiers
Fixes #4250.

This implements @jahorton's suggestion of including the original name
in a comment alongside the munged name, as well as appending the unique
integer identifier of each symbol.

Note: the error reporting code needed a massage to support Unicode error
strings; in the future we should update the C++ compiler to emit
Unicode error strings also.
2021-02-03 10:54:20 +11:00
Marc Durdin
01645ff8c5
Merge pull request #4400 from keymanapp/fix/developer/2657-import-support-targets
fix(developer): Import Keyboard support for Targets
2021-02-03 07:08:45 +11:00
Marc Durdin
4a1ee301f1
Merge pull request #4399 from keymanapp/fix/developer/2679-template-for-web-not-touch
fix(developer): Generate platforms correctly from template
2021-02-03 07:08:25 +11:00
Marc Durdin
d603c77cd7
Merge pull request #4386 from keymanapp/fix/windows/4192-show-balloon-when-keyman-is-already-running
fix(windows): Show balloon when Keyman is already running
2021-02-03 07:08:00 +11:00
Marc Durdin
aebdec42bf
Merge pull request #4398 from keymanapp/fix/developer/4354-setup-redist-check
fix(developer): don't check both setup.exe and setup-redist.exe
2021-02-03 07:07:37 +11:00
Marc Durdin
e123b1a667
Merge pull request #4392 from keymanapp/fix/windows/setup-should-ignore-cert-revocation
fix(windows): setup should ignore cert revocation
2021-02-03 07:07:16 +11:00
Marc Durdin
d8df94c2e0
Merge pull request #4384 from keymanapp/fix/windows/3936-uac-foreground
fix(windows): Ensure UAC window comes to foreground
2021-02-03 07:06:14 +11:00
Keyman Server
0a295db964
Merge pull request #4404 from keymanapp/auto/version-beta-14.0.235
auto: increment beta version to 14.0.235
2021-02-03 05:02:20 +11:00
Keyman Build Agent
f223b48466 auto: increment beta version to 14.0.235 2021-02-02 13:01:30 -05:00
Marc Durdin
adafdb9c84 fix(developer): Import Keyboard support for Targets
Fixes #2657.

Importing a Windows Keyboard had an option to select default targets for
the imported keyboard, but the option was ignored. This propagates the
option setting through the import process.
2021-02-02 16:12:45 +11:00
Marc Durdin
5208404cd6 fix(developer): Generate platforms correctly from template
Fixes #2679.

If web is specified but not a touch platform, exclude touch layout from
a generated project. Also, fixup list of supported platforms in the
generated README.md.
2021-02-02 15:50:56 +11:00
Marc Durdin
d311886a7e fix(developer): don't check both setup.exe and setup-redist.exe
Fixes #4354.

The redistributable build should be checking for the existence of either
setup.exe or setup-redist.exe. Note that the only difference between the
two is whether or not the file has a digital signature (as we should not
put a digital signature on an executable that will later have a .zip
appended, rather the final file should be signed).
2021-02-02 15:32:14 +11:00
Marc Durdin
7a16b07465
Merge pull request #4381 from keymanapp/fix/windows/4343-avoid-invalid-custom-languages
fix(windows): avoid invalid language codes in Add Language dialog
2021-02-02 08:41:35 +11:00
Marc Durdin
d81ff153b7
Merge pull request #4379 from keymanapp/fix/windows/4336-hotkey-show-keyboard-usage-plus-strings
fix(windows): remove Show Keyboard Usage hotkey
2021-02-02 08:41:28 +11:00
Marc Durdin
11bde6fc7e fix(windows): setup should ignore cert revocation
Fixes #4385.

Chrome has ignored certificate revocation for many years. If it's
good enough for Chrome, it's good enough for us. Right?

More seriously, sometimes Windows has trouble with its certificate
revocation cache, and it seems to be difficult to predict when this
will happen. This results in error 12057.

https://knowledge.broadcom.com/external/article/169185/ssl-visibility-how-to-resolve-the-certi.html
https://www.imperialviolet.org/2012/02/05/crlsets.html
2021-02-02 06:29:50 +11:00
Keyman Server
ecc16b4371
Merge pull request #4391 from keymanapp/auto/version-beta-14.0.234
auto: increment beta version to 14.0.234
2021-02-02 05:02:17 +11:00
Keyman Build Agent
1385f8b93f auto: increment beta version to 14.0.234 2021-02-01 13:01:28 -05:00
Eberhard Beilharz
222794bc1f
Merge pull request #4388 from keymanapp/chore/linux/4160-jenkinstag
chore(linux): Pass second tag parameter to Jenkins build
2021-02-01 15:01:19 +01:00
Eberhard Beilharz
9bcfcc7626
chore(linux): Pass second tag parameter to Jenkins build
This is necessary to be able to distinguish between a newly triggered
tagged build and a retriggered tagged build. The first tag param gets
saved between builds, but then we need a second parameter that doesn't
get saved that tells us if this build is a retriggered one.
2021-02-01 12:29:31 +01:00
Marc Durdin
0ae26ab790
Merge pull request #4380 from keymanapp/fix/windows/4337-crash-for-sinhala-mitigation
fix(windows): crash for Sinhala mitigation
2021-02-01 18:54:17 +11:00
Joshua Horton
df3f77b857
Merge pull request #4370 from keymanapp/fix/web/3294-keyboard-layout-fouc
fix(android, ios): eliminates OSK layout flashing from predictive text banner display
2021-02-01 14:21:11 +07:00
Joshua Horton
46a63980ee
Merge pull request #4371 from keymanapp/fix/web/unload-stylesheets
fix(web): removes stylesheets from unloaded keyboards
2021-02-01 14:20:49 +07:00
Marc Durdin
f83c8ebbe5 fix(windows): Show balloon when Keyman is already running
Fixes #4192.

If Keyman is already running, and the user attempts to start Keyman
again, a balloon will be shown to direct the user to the right place on
the screen.

Note: this worked in earlier versions of Keyman but stopped working due
to name changes for windows in the app.

I have also added a new string for balloon that will need translation.
2021-02-01 16:06:08 +11:00
Marc Durdin
ba9ecb6095 fix(windows): Ensure UAC window comes to foreground
Fixes #3936.

This is a trial change as I am not able to reproduce the problem on my
machine, probably due to timing.

@makarasok, can you please test if this resolves the UAC window not
coming to foreground on your test scenario for #3936?
2021-02-01 15:29:06 +11:00
Marc Durdin
348b29687e fix(windows): avoid invalid language codes in Add Language dialog
Fixes #4343.

This patch makes all language codes from the langtags.json dataset
visible through the Add Language dialog. This avoids situations where
an incomplete code such as "cmo" can result in an error (a script is
required for "cmo" as it is written in either Latn or Khmr).
2021-02-01 10:20:19 +11:00
Marc Durdin
fdcb8191a8 fix(windows): crash for Sinhala mitigation
Fixes #4337.

The Sinhala language installation mitigation needed the BCP 47 code as
well as the language code with the new language installation process.
2021-02-01 08:30:16 +11:00
Marc Durdin
335f06661d fix(windows): remove Show Keyboard Usage hotkey
Fixes #4336.

Removes the "Show Keyboard Usage Page" hotkey entry as it has no effect,
and cleans up Keyboard Usage and OSK Hint strings from all the current
locales.
2021-02-01 07:58:05 +11:00
Marc Durdin
95e086feb9
Merge pull request #4349 from keymanapp/fix/windows/4186-enter-spacebar-in-config
fix(windows): Enter and Spacebar handling in Configuration
2021-02-01 06:29:08 +11:00
Marc Durdin
d2a1cbf754
Merge pull request #4361 from keymanapp/fix/common/desktop-core-surrogate-pair-deletions
fix(common): tweak surrogate pair deletions
2021-02-01 06:25:48 +11:00
Marc Durdin
240ce8d3d6
Merge pull request #4360 from keymanapp/fix/windows/4196-surrogate-pair-deletions-tsf-aware
fix(windows): SMP-aware deletion in TSF-aware apps
2021-02-01 06:25:37 +11:00
Keyman Server
64054eecb2
Merge pull request #4373 from keymanapp/auto/version-beta-14.0.233
auto: increment beta version to 14.0.233
2021-01-30 05:03:32 +11:00
Keyman Build Agent
3295ea0012 auto: increment beta version to 14.0.233 2021-01-29 13:02:34 -05:00
jahorton
a67e26fb1c fix(web): removes stylesheets from unloaded keyboards 2021-01-29 12:54:50 +07:00
Marc Durdin
1ec9577613 chore(windows): fix typo 2021-01-29 16:14:24 +11:00
Marc Durdin
081471218e fix(common): add test case and fix smp bugs
Turns out that @darcywong00's suggestion for a test case was a Very Good
Idea. The SMP handling in Keyman Core had an egregious bug where only
half of a surrogate pair was being deleted in the UTF-16 context; see
kmx_processor.cpp 425-428. This was then masked by the test runner
masking the damage in the original test case; see kmx.cpp 193-203.

The new test case exercises a number of additional ways of manipulating
the context where surrogate pairs exist, to show we handle the deletion
properly within Keyman Core and in the test runner.
2021-01-29 16:05:07 +11:00
jahorton
b0f1046e40 change(web): minor polish tweaks 2021-01-29 11:34:21 +07:00
jahorton
78c7821f9f change(web): banner display no longer deferred 2021-01-29 11:31:56 +07:00
Darcy Wong
a0b2fdb625
Merge pull request #4367 from keymanapp/chore/windows/more-titles-and-todos
chore(windows/resources): Fix more titles and TODOs in help
2021-01-29 10:05:53 +07:00
Marc Durdin
851f7e0124
Merge pull request #4365 from keymanapp/fix/windows/4116-ignore-access-denied-creating-task
fix(windows): Ignore Access Denied error creating task
2021-01-29 08:25:20 +11:00
Eberhard Beilharz
aee61ea9d2
Merge pull request #4356 from keymanapp/chore/linux/ignoreSentry
chore(linux): Don't report on Sentry when running unit tests
2021-01-28 20:50:47 +01:00
Keyman Server
e1c74f6bbf
Merge pull request #4368 from keymanapp/auto/version-beta-14.0.232
auto: increment beta version to 14.0.232
2021-01-29 05:02:45 +11:00
Keyman Build Agent
207ebc7d57 auto: increment beta version to 14.0.232 2021-01-28 13:01:51 -05:00
Darcy Wong
7bd55db3fa chore(windows/resources): Tweak formatting in locale_edit 2021-01-28 14:56:48 +07:00
Darcy Wong
57c78625c6 chore(windows/resources): Add link to troubleshooting/hidden 2021-01-28 14:44:47 +07:00
Darcy Wong
2d0e8490bb chore(windows/resources): Add troubleshooting/hidden 2021-01-28 14:38:08 +07:00
Darcy Wong
41bb899164 chore(windows/resources): Add titles to other index pages
* common/editions were removed in #4105
2021-01-28 14:15:36 +07:00
Darcy Wong
c4ef2221fb chore(windows/resources): Update context help titles
* Fix titles
* Remove unused osk_usage.md
* Remove link to osk_usage because the actual link is onscreenkeyboard
* Fix link to charactermap
* Remove unused links to psrt*language
2021-01-28 14:15:36 +07:00
Joshua Horton
bcd8b82d4a
Merge pull request #4366 from keymanapp/fix/ios/fix-mangled-merge
fix(ios): accidental duplicated line from merge
2021-01-28 14:10:56 +07:00