Commit graph

479 commits

Author SHA1 Message Date
Marc Durdin
32337e0087
Merge pull request #6030 from keymanapp/chore/windows/build-without-delphi
chore(windows): build without delphi ✈
2021-12-11 14:39:47 +11:00
Marc Durdin
ba8c6a165a
Merge pull request #6022 from keymanapp/chore/windows/no-more-mkver
chore(windows): replace mkver with mkver.sh ✈
2021-12-11 14:38:02 +11:00
Marc Durdin
36a5ae6f2a
Merge pull request #6021 from keymanapp/chore/windows/grep-to-findstr
chore(windows): use findstr instead of Borland grep ✈
2021-12-11 14:37:52 +11:00
Marc Durdin
2f19660db1
Merge pull request #6020 from keymanapp/chore/windows/make-to-nmake
chore(windows): move from Borland make to nmake ✈
2021-12-11 14:37:44 +11:00
Marc Durdin
92619336d0
Merge pull request #6019 from keymanapp/chore/windows/version-rc-macros
chore(windows): version.rc use macros instead of mkver ✈
2021-12-11 14:37:35 +11:00
Marc Durdin
988fec305c chore(windows): enable build without Delphi installed
This makes it possible to run `set NODELPHI=1`, `nmake build` and then
only non-Delphi projects will be built.
2021-12-10 00:10:54 +11:00
Marc Durdin
c9dc10cc33 chore(windows): replace mkver with mkver.sh 2021-12-08 07:10:29 +01:00
Marc Durdin
ff01477075 chore(windows): use findstr instead of Borland grep
Removes one more dependency on Delphi tools
2021-12-08 07:10:07 +01:00
Marc Durdin
dee896b4c6 chore(windows): move from Borland make to nmake
While it may be smarter to move to a different build system altogether,
it is also a *lot* more work. This was a fairly minor syntax refresh to
get nmake working with our existing Makefile system. This is now no
longer compatible with Borland make, so you will need to use `nmake` to
build.

The presence of NMAKE.md informs builds systems that nmake should be
used instead of make.
2021-12-06 12:47:31 +04:00
Ross
c26e1f3485 chore(common): buf now uses decxstr so remove comment
remove comment about it splitting surrogate pairs and
deadkeys
2021-12-06 10:37:49 +10:00
Marc Durdin
bf65ecf82b chore(windows): path fixes for version.rc includes 2021-12-05 17:24:28 +11:00
Marc Durdin
e00ff063c8 chore(windows): version.rc use macros instead of mkver 2021-12-05 17:12:56 +11:00
rc-swag
faff079e2e
chore(common):fix typos in commments 2021-12-03 15:18:59 +10:00
Ross
884c249286 chore(common): add more description to Buf method
Also updated the doxy to remove the brief tag.
Made mirror change to appint.h
2021-12-03 10:01:53 +10:00
Ross
059af9efd1 feat(windows): add MapUSCharToVK to kmx processor 2021-11-29 10:52:16 +10:00
Ross
31d7200a63 feat(windows): replace insert_or_assign with[] for hashmap
Also update issue comment for future removal of winows processor code
2021-11-29 10:52:07 +10:00
rc-swag
4e1ccfdd4f feat(windows): apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2021-11-29 10:52:04 +10:00
Ross
ac16abdb18 feat(windows): rename key_rules -> key_list 2021-11-29 10:52:02 +10:00
Ross
9f44cf49fc feat(windows): fix pkeys index add comments
The pkeys was using the wrong counter as a index
in the map check therefore matching the incorrect key
2021-11-29 10:52:01 +10:00
Ross
72d8188a38 feat(windows): complete common core get rules api 2021-11-29 10:51:59 +10:00
Ross
eb080e1b15 fix(windows): address review comments 2021-11-23 07:57:24 +10:00
rc-swag
46042987df
fix(windows): commit review suggestions
Co-authored-by: Marc Durdin <marc@durdin.net>
2021-11-23 07:20:22 +10:00
Ross
ec98070775 fix(windows): remove set default registry value 2021-11-22 21:37:41 +10:00
Ross
de966aa5c5 fix(windows): fix loadkeyboardoptions core memory error
LoadKeyboardOptionsCore no longer frees memory that
has not been allocated.
2021-11-22 15:33:47 +10:00
rc-swag
daff5ec96d
feat(windows): apply cap stores review comments
Co-authored-by: Marc Durdin <marc@durdin.net>
2021-10-08 10:49:05 +10:00
Ross
1b92aafec8 feat(windows): fix debug comment var name error 2021-10-07 15:35:13 +10:00
Ross
f1e55ab662 feat(windows): add in code comments explaining caps lock handling 2021-10-07 14:27:26 +10:00
Ross
96697e89ba feat(windows): Change caps to work with common core processor 2021-10-06 15:35:23 +10:00
Marc Durdin
b700cf334b
Merge pull request #5709 from keymanapp/fix/windows/5091-default-language
fix(windows): handle edge cases using default language
2021-10-02 11:12:46 +10:00
Marc Durdin
4523a04409 chore(windows): address review comments and fix installer bug 2021-09-29 15:05:41 +10:00
Marc Durdin
f82fa96449 chore(windows): Keyman Core UI and Settings
* Adds a taskbar icon to highlight to user when Keyman Core library is
  in use, with a crummy core.ico. This visual feedback will be removed
  in late beta.
* Renames the 'use common core' registry setting to match other flags
* Adds a System Setting to make the Keyman Core setting visible in
  System Settings and kmconfig.
2021-09-29 13:51:51 +10:00
rc-swag
b71fde66f9
Merge branch 'master' into feat/windows/keyman-core-integration-2 2021-09-27 21:40:22 +10:00
rc-swag
8eeaef9ae5
Merge branch 'feat/windows/keyman-core-integration-2' into feat/windows/preserving-keyboard-options-in-engine 2021-09-27 21:21:56 +10:00
Ross
71f97d46aa feat(windows): add link to mem leak github repo 2021-09-22 16:51:14 +10:00
Ross
1c405c5142 feat(windows): Address review comments 2021-09-22 16:33:30 +10:00
rc-swag
64dbaad371
feat(windows): Apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2021-09-22 16:11:36 +10:00
Ross
deb358de5a feat(windows): add memory leak tests - fix memory leaks 2021-09-22 11:28:28 +10:00
rc-swag
00d4bcded8
feat(windows): Apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2021-09-21 11:48:56 +10:00
Ross
d450543253 feat(windows): address review comments
Add test fixture to allow Setup and Teardown methods to be used
for all km process action tests.
Modified the DebugAssert macro to not do the early return on its own.
2021-09-21 09:59:17 +10:00
rc-swag
9305bae3ba
fix(windows): commit review suggestions
Co-authored-by: Marc Durdin <marc@durdin.net>
2021-09-20 11:34:06 +10:00
Marc Durdin
a8a19b2a2e fix(windows): handle edge cases using default language
Fixes #5091.

If the user has a default language that is not a minimal BCP47 tag, such
as `zh-Hans-CN` vs `zh-CN`, or if the default language does not have a
mapping in our `TLanguageCodeUtils.TranslateWindowsLanguagesToBCP47`
function, then kmshell would crash on install of a keyboard that had no
language metadata specified (i.e. neither legacy metadata in .kmx nor
modern metadata in .kmp).

This crash arose because the elevated instance of kmshell would install
a local-machine reference to `zh-CN` (as it back-translated from a
LangID), but the current user install would look for `zh-Hans-CN`, read
from the Windows registry `HKCU\Control Panel\International\User Profile`.

To further complicate matters, it is possible for the current user to
have a different default language than the elevated user on the machine.
Keyman was assuming that the default language was the same in both
cases.

This fix passes in the current user's default BCP47 and LangID to the
elevated portion of the keyboard install, so we can guarantee that
keyboard install which needs to use the default language, actually
installs for the current user's actual language code, and not a
canonicalized version (or a totally different code in the case of
elevation to an alternate admin user account).
2021-09-17 06:37:23 +10:00
Marc Durdin
a00eb2c91a fix(windows): fallback to filename if &name not set
Fixes #5683.

If `store(&name)` is missing from a keyboard, then fallback to the
filename of the keyboard (sans extension). This fixes a regression in
14.0 keyboard registration.

I opted not to make this change in kmxfile but rather in places which
use it in the Keyman Engine COM API, because I wanted kmxfile to remain
truthful about all details of what it is reading from the file.

Given that the COM API will now never return an empty string for the
name of the keyboard, there are  mitigations for this in Keyman
Configuration which are unnecessary, but it is not harmful for them to
remain there.

Will cherry-pick to stable-14.0.
2021-09-14 08:24:17 +10:00
Ross
a90a99784a feat(windows): cast size_t to int for list size 2021-09-07 12:00:34 +10:00
Ross
8719a27ee9 feat(windows): add save and restore options
Add save and restore methods for saving and restoring
keyboard processor options.
2021-09-03 13:45:18 +10:00
Ross
5ffb136acf feat(windows): Added UpdateKeyboardOptions
This functions was to update the keyboard options in the
windows engine with the current options in the core

However it is not needed as first thought. This is because the options
will not be updated in first Non updatable call kmtip. This is due to
the fact the actions will not be processed. A variation on the current
core implementation. I am still pushing the branch as the unit test will
be usefull.
2021-09-02 11:57:44 +10:00
Ross
e125736e0e feat(windows): Update all TODOs with Issue numbers 2021-08-30 10:18:57 +10:00
Ross
0663fcbeb7 feat(windows): Add unit tests for process actions 2021-08-27 14:18:14 +10:00
Ross
a4801373db feat(windows): err logs, DEBUG_ASSERT macro
Added some more error logs
Added a DEBUG_ASSERT macro
Update variable names
2021-08-24 17:17:26 +10:00
rc-swag
aab8cb178c
fix(windows): apply suggestion changes core integration review
Co-authored-by: Marc Durdin <marc@durdin.net>
2021-08-23 09:51:10 +10:00
Ross
937bf8a485 feat(windows): review comments 2021-08-19 14:17:34 +10:00