Commit graph

23 commits

Author SHA1 Message Date
Marc Durdin
d5790ca9b6 fix(windows): cleanup pointer to int typecasts
Fixes #3084.

This does two things:

1. Cleans up a bunch of places where we used to use `(int)` typecasts
   for pointer math, which was problematic. We now use `(INT_PTR)` per
   MSDN https://docs.microsoft.com/en-us/windows/win32/winprog64/rules-for-using-pointers
   and then cast that down to `(int)` where necessary, e.g. when storing
   string lengths which are never going to be more than a few hundred
   characters! Doing this explicitly helps to clarify that we are aware
   of the typecast and believe it to be safe.

2. Adds in some build infrastructure for future use of Coverity Scan
   https://scan.coverity.com/ which we plan to use for further code
   quality updates. I have submitted the project to Coverity and are
   now waiting for approval so we can check results. Once we have
   approval, I do plan to add this to the nightly build (we need to
   keep submissions under 3 builds/day).

   Note: I have not yet added Keyman Core (Windows) to this project,
   nor are we currently building Keyman Core (macOS) or Keyman for
   Linux, but we should consider adding those in future.
2020-09-24 14:39:59 +10:00
Marc Durdin
5928052d93 feat(windows): use crashpad and better call stacks
Also moves to sentry native 2.0.
2020-04-01 12:02:26 +11:00
Marc Durdin
3f41a6505f fix(developer): add calling convention 2020-03-31 20:20:02 +11:00
Marc Durdin
fed63d4690 feat(windows): sentry integration test points 2020-03-31 16:16:56 +11:00
Marc Durdin
6d0caaf3d2 feat(developer): allow use of ISO9995 in key ids
ISO9995 describes keys by positions, where E00 is 5th (top) row,
left-most key. This feature allows keyboard developers to use
clearly positional identifiers in place of K_ identifiers.
2020-02-26 23:25:08 +07:00
Marc Durdin
463e61039a fix(developer): zero length store names
Fixes #1448. Zero-length store names should not
be permitted by the compiler.
2019-12-11 05:52:20 +11:00
Marc Durdin
50a382d181 chore: typos 2019-12-08 17:27:26 +00:00
Marc Durdin
1b83de9b65 fix(developer): Hotkeys in .kmn unquoted
Fixes #138. Hotkeys in .kmn files no longer need to be quoted. This
update does not change compatibility with earlier versions of Keyman
Engine as the difference is entirely in the compiler.
2019-12-08 17:24:40 +00:00
Marc Durdin
e0767f2aeb fix(developer): use size_t instead of long 2019-11-17 09:16:08 +11:00
Marc Durdin
aa7c340dbb [Developer] Calls to non-Unicode versions of ctype functions could cause instability 2019-04-24 06:18:55 +07:00
Marc Durdin
738e1946a6 [Windows] Debug logging and proof of concept tests for keyboarding support within metro-style apps
[Windows] More tidyup and robustness for metro app support - debug cleanup and serialization of input (not quite finished)

[windows] Refactor serialized input code when used with key event thread model

[windows] Add consistent precompiled headers for other projects

[windows] Merge console window test into metro support

[Windows] Tidy up work and identify additional TODOs for metro-style app support

[Windows] Ensure error case falls through to default hook processing for console windows

[Windows] Refactor shared memory into memory mapped file so we can cross 32-64 bit boundary

[Windows] Tweaks to C++ security calls and parameters

[Windows] Start refactor of SerialKeyEvent* classes

[Windows] Rename to SerialKeyEventServer (refactoring)

[Windows] Complete refactoring of SerialKeyEventClient class

[Windows] Further encapsulation and cleanup with 'interfaces' to reduce header pollution

[Windows] Complete serialization fix with move of modifier state management from client thread to server thread to guarantee consistency

[Windows] Replace atom-based keyboard switching with memory mapped file indexed to avoid security constraints

[Windows] Fixup Left Alt+Shift interaction with serializer

[Windows] Use Windows 8.1 SDK for test
2018-10-18 20:00:49 +11:00
Marc Durdin
8083146768 [Developer] Treat files without preambles as UTF-8 unless they have non-UTF-8 sequences in them 2018-10-08 08:43:17 +11:00
Marc Durdin
de28a41025 Fix loop in test for match and nomatch validity 2018-04-30 08:09:40 +07:00
Marc Durdin
30cdf441e0 Fixes #718 - context and index are not valid in the output of a match or nomatch rule 2018-04-27 10:39:55 +07:00
Marc Durdin
ac83ebb8a9 Keyman Developer Compiler should warn on deprecated language tags for Keyman 10 keyboards 2018-02-16 10:53:01 +07:00
Marc Durdin
99144df7bf Fix issue with errors arising compiling when no version line specified 2018-02-16 10:03:59 +07:00
Marc Durdin
0241a358ac Add version 10.0 keyboard compiler and development tool support 2017-11-08 13:54:59 +07:00
Marc Durdin
ef0da35537 Rename VerifyKeyboardVersion to make it clear it is a macro -- it has a 'return' side-effect 2017-09-29 14:53:20 +07:00
Marc Durdin
2d65cc66ff Remove spurious warning 2017-09-28 19:29:15 +07:00
Marc Durdin
eba15549eb Make version store optional in compiler 2017-09-28 19:25:05 +07:00
Marc Durdin
2dfcbfe746 Tweak test for mixing left/right modifiers in same rule 2017-09-25 14:10:26 +07:00
Marc Durdin
737bd781a9 Warn if LCTRL/RCTRL or LALT/RALT are used in the same rule 2017-09-19 13:50:43 +07:00
Marc Durdin
b65b982584 Keyman Desktop and Keyman Developer open source 10.0 alpha seed (#121)
* Keyman for Windows 10.0 Open Source

* Squashed 'windows/src/ext/jedi/jedi/' content from commit f444ad2

git-subtree-dir: windows/src/ext/jedi/jedi
git-subtree-split: f444ad2da4693851e523f1ea6bd541f701904c24

* Squashed 'windows/src/ext/jedi/jcl/' content from commit d63d3c9fd

git-subtree-dir: windows/src/ext/jedi/jcl
git-subtree-split: d63d3c9fd9ff84efdd8159084ec6a60313644243

* Squashed 'windows/src/ext/jedi/jvcl/' content from commit bee19f3b4

git-subtree-dir: windows/src/ext/jedi/jvcl
git-subtree-split: bee19f3b46909fde2fa92c06cd2706f41d99f6c3

* Add required .res files

* Add required .res files

* Add docbook files (forced)

* Add required libxslt

* Add required jedi files

* Add installation files

* Tweak .gitignore for open

* CI

* Remove KMW from Developer source (#122)

* Remove KMW from Developer source (copies during build)

* Remove KMW from Developer source (copies during build)

* Remove KMW from Developer source (copies during build)

* Fixup release build and copy license, readme from kmw during build

* Remove obsolete build help documentation

* Keyman Engine 10 on Windows regression for shift states (#129)

* Improve #128 -- cleaner debug messages

* Fixes #127, shift state now resets correctly; and more work for #128

* Fixes #130 (#131)
2017-07-25 10:53:06 +07:00