spiegel-keyman/windows/src/developer/kmcmpdll
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
..
Compiler.cpp fix(developer): Compiler check for if and nul at start of context 2021-02-03 15:28:53 +11:00
Compiler.rc fix(developer): Compiler check for if and nul at start of context 2021-02-03 15:28:53 +11:00
DeprecationChecks.cpp [Windows] Debug logging and proof of concept tests for keyboarding support within metro-style apps 2018-10-18 20:00:49 +11:00
DeprecationChecks.h Keyman Developer Compiler should warn on deprecated language tags for Keyman 10 keyboards 2018-02-16 10:53:01 +07:00
Edition.cpp [Windows] Debug logging and proof of concept tests for keyboarding support within metro-style apps 2018-10-18 20:00:49 +11:00
Edition.h Keyman Desktop and Keyman Developer open source 10.0 alpha seed (#121) 2017-07-25 10:53:06 +07:00
json-validation.cpp Validate JSON .keyboard_info files 2017-09-12 19:57:39 +07:00
kcframe.cpp fix(developer): coverity reports for compiler 2020-09-30 14:20:41 +10:00
kcframe.vcxproj chore(windows): Move to Windows SDK 10.0.17763.0 2020-10-05 14:11:34 +11:00
kcframe.vcxproj.filters Keyman Desktop and Keyman Developer open source 10.0 alpha seed (#121) 2017-07-25 10:53:06 +07:00
keyman64.h Keyman Desktop and Keyman Developer open source 10.0 alpha seed (#121) 2017-07-25 10:53:06 +07:00
kmcmpdll.h fix(developer): coverity reports for compiler 2020-09-30 14:20:41 +10:00
kmcmpdll.sln chore(developer): config build paths 2019-11-17 08:52:30 +11:00
kmcmpdll.vcxproj chore(windows): Move to Windows SDK 10.0.17763.0 2020-10-05 14:11:34 +11:00
kmcmpdll.vcxproj.filters [Windows] Debug logging and proof of concept tests for keyboarding support within metro-style apps 2018-10-18 20:00:49 +11:00
Makefile chore(windows): symbol server support, initial steps 2020-11-11 10:33:16 +11:00
NamedCodeConstants.cpp fix(developer): coverity reports for compiler 2020-09-30 14:20:41 +10:00
NamedCodeConstants.h Keyman Desktop and Keyman Developer open source 10.0 alpha seed (#121) 2017-07-25 10:53:06 +07:00
pch.cpp [Windows] Debug logging and proof of concept tests for keyboarding support within metro-style apps 2018-10-18 20:00:49 +11:00
pch.h [Windows] Debug logging and proof of concept tests for keyboarding support within metro-style apps 2018-10-18 20:00:49 +11:00
version.in [Windows] Fix version.in file encoding back to Windows-1252 2019-10-21 06:43:13 +07:00
versioning.cpp fix(developer): coverity reports for compiler 2020-09-30 14:20:41 +10:00
versioning.h Rename VerifyKeyboardVersion to make it clear it is a macro -- it has a 'return' side-effect 2017-09-29 14:53:20 +07:00
virtualcharkeys.cpp [Windows] Debug logging and proof of concept tests for keyboarding support within metro-style apps 2018-10-18 20:00:49 +11:00
virtualcharkeys.h Keyman Desktop and Keyman Developer open source 10.0 alpha seed (#121) 2017-07-25 10:53:06 +07:00
vkeys.h feat(developer): allow use of ISO9995 in key ids 2020-02-26 23:25:08 +07:00
xstring.cpp Keyman Desktop and Keyman Developer open source 10.0 alpha seed (#121) 2017-07-25 10:53:06 +07:00