chore: Merge branch 'feature-kmcompx' into chore/kmcompx-master-merge-a17s9

This commit is contained in:
Marc Durdin 2023-03-21 13:51:25 +07:00
commit 48bc338f26
854 changed files with 12466 additions and 161 deletions

View file

@ -95,3 +95,7 @@ labels:
- label: 'epic-ldml'
matcher:
branch: '.*epic-ldml.*' # anywhere in the branch name, e.g. feat/epic-ldml/developer/... or feat/developer/foo-epic-ldml
- label: 'epic-kmcompx'
matcher:
branch: '.*epic-kmcompx.*'

8
.gitignore vendored
View file

@ -36,6 +36,7 @@
/common/windows/delphi/**/*.bpl
/common/windows/delphi/**/*.map
/common/windows/delphi/**/*.tds
/common/windows/delphi/**/*.identcache
# Temp files generated during release build
/windows/src/buildtools/inst/copydebug.mak
@ -190,3 +191,10 @@ lcov.info
/keyman*.buildinfo
/keyman*.changes
/keyman*.tar.?z
#Sabine:
# /common/test/keyboards/invalid/source/*.kmx
# /developer/src/test/auto/kmcomp/*.kmn
# /developer/src/test/auto/kmcomp/*.kvk
# /developer/src/test/auto/kmcomp/*.kvk*
# /developer/src/test/auto/kmcomp/*.txt

View file

@ -1,4 +1,5 @@
#pragma once
#include <stdint.h>
#include <stdint.h>
@ -21,30 +22,31 @@
#define KMX_64BIT
#endif
typedef uint32_t KMX_DWORD;
typedef int32_t KMX_BOOL;
typedef uint8_t KMX_BYTE;
typedef uint16_t KMX_WORD;
typedef uint32_t KMX_DWORD;
typedef int32_t KMX_BOOL;
typedef uint8_t KMX_BYTE;
typedef uint16_t KMX_WORD;
#if defined(__cplusplus)
typedef char16_t km_kbp_cp;
typedef char32_t km_kbp_usv;
#else
typedef uint16_t km_kbp_cp; // code point
typedef uint32_t km_kbp_usv; // Unicode Scalar Value
typedef uint16_t km_kbp_cp; // code point
typedef uint32_t km_kbp_usv; // Unicode Scalar Value
#endif
typedef km_kbp_cp KMX_WCHAR; // wc, 16-bit UNICODE character
typedef KMX_WCHAR *PKMX_WCHAR;
typedef km_kbp_cp KMX_WCHAR; // wc, 16-bit UNICODE character
typedef KMX_WCHAR* PKMX_WCHAR;
typedef char KMX_CHAR;
typedef KMX_CHAR *PKMX_CHAR;
typedef char KMX_CHAR;
typedef char* PKMX_STR;
typedef KMX_CHAR* PKMX_CHAR;
typedef uint32_t KMX_UINT;
typedef uint32_t KMX_UINT;
typedef KMX_BYTE *PKMX_BYTE;
typedef KMX_WORD *PKMX_WORD;
typedef KMX_DWORD *PKMX_DWORD;
typedef KMX_BYTE* PKMX_BYTE;
typedef KMX_WORD* PKMX_WORD;
typedef KMX_DWORD* PKMX_DWORD;
#ifndef FALSE
#define FALSE 0

View file

@ -64,6 +64,8 @@ namespace kmx {
// Different begin types
#define BEGIN_ANSI 0
#define BEGIN_UNICODE 1
#define BEGIN_NEWCONTEXT 2
#define BEGIN_POSTKEYSTROKE 3
#define TSS_NONE 0
#define TSS_BITMAP 1
@ -302,6 +304,7 @@ struct COMP_STORE {
struct COMP_KEY {
KMX_WORD Key;
KMX_WORD _reserved;
KMX_DWORD Line;
KMX_DWORD ShiftFlags;
KMX_DWORD dpOutput;

View file

@ -29,7 +29,9 @@ display_usage() {
for d in "$THIS_DIR/"*/; do
d="$(basename "$d")"
echo " $d"
if [ "$d" != "invalid" ]; then
echo " $d"
fi
done
echo
@ -122,7 +124,9 @@ fi
if [ ${#TARGETS[@]} == 0 ]; then
for d in "$THIS_DIR/"*/; do
d="$(basename "$d")"
TARGETS+=("$d")
if [ "$d" != "invalid" ]; then
TARGETS+=("$d")
fi
done
fi

View file

@ -0,0 +1,163 @@
# **Tests for kmcompxtest()**
<br/>
This folder contains several kmn-files that are used for testing resulting error codes.
Most of these tests are copied from balochi_phonetic and contain alterations of the data to produce (at least) 1 error.
<br/>
<br/>
## Naming Convention of kmn-files for using with kmcompxtest()
CERR_404D_balochi_phonetic.kmn
The naming convention of the files is as follows:
* All Files **MUST** start with CERR_ followed by 4 characters and an underscore.
* After the second underscore all combination of char can be used.
* The 4 characters following CERR_ correspond to the last 4 digits of the error code which is expected to be produced by this file.
( e.g. CERR_404D_balochi_phonetic.kmn should produce error 0x0000404D).
<br/>
<br/>
While running, kmcompxtest extracts those 4 characters from the Filename (e.g. 404D for CERR_404D_balochi_phonetic) and compares those to the actual error found.
* If these 4 characters correspond to the actual error given, the test will be marked as OK. (Code 0)
<br/>
* If these 4 characters signify an error but **no error** does occur, the test will be marked as FAILED (Code 1)
<br/>
* If these 4 characters signify an error but this **specific error** does not occur, the test will be marked as FAILED (Code 4)
<br/>
* If these 4 characters signify an error number that is **not correct**, the test will be marked as FAILED (Code 5)
<br/>
* If more than 1 error is produced, only the error coded in the Filename will be detected
<br/>
<br/>
### Tests are available for the following CERR_:
<font size="1">
| | Error Number | CERR_
| :-: | :-----------:| :-------------------------------------
| | 00000800 | CERR_LEXICAL_MODEL_MIN
| | 000008FF | CERR_LEXICAL_MODEL_MAX
| | 00000800 | CERR_LEXICAL_MODEL_MIN
| | 000008FF | CERR_LEXICAL_MODEL_MAX
| | 00000000 | CERR_None
| | 00000001 | CERR_EndOfFile
| | 00008002 | CERR_BadCallParams
| | 00008004 | CERR_CannotAllocateMemory
| | 00008005 | CERR_InfileNotExist
| | 00008006 | CERR_CannotCreateOutfile
| | 00008007 | CERR_UnableToWriteFully
| | 00008008 | CERR_CannotReadInfile
| | 00008009 | CERR_SomewhereIGotItWrong
|**X**| 0000400A | CERR_InvalidToken
| | 0000400B | CERR_InvalidBegin
| | 0000400C | CERR_InvalidName
|**X**| 0000400D | CERR_InvalidVersion
|**X**| 0000400E | CERR_InvalidLanguageLine
| | 0000400F | CERR_LayoutButNoLanguage
| | 00004010 | CERR_InvalidLayoutLine
| | 00004011 | CERR_NoVersionLine
| | 00004012 | CERR_InvalidGroupLine
|**X**| 00004013 | CERR_InvalidStoreLine
| | 00004014 | CERR_InvalidCodeInKeyPartOfRule
|**X**| 00004015 | CERR_InvalidDeadkey
|**X**| 00004016 | CERR_InvalidValue
|**X**| 00004017 | CERR_ZeroLengthString
| | 00004018 | CERR_TooManyIndexToKeyRefs
|**X**| 00004019 | CERR_UnterminatedString
| | 0000401A | CERR_StringInVirtualKeySection
| | 0000401B | CERR_AnyInVirtualKeySection
| | 0000401C | CERR_InvalidAny
|**X**| 0000401D | CERR_StoreDoesNotExist
| | 0000401E | CERR_BeepInVirtualKeySection
| | 0000401F | CERR_IndexInVirtualKeySection
| | 00004020 | CERR_InvalidIndex
| | 00004021 | CERR_OutsInVirtualKeySection
| | 00004022 | CERR_InvalidOuts
| | 00004024 | CERR_ContextInVirtualKeySection
| | 00004025 | CERR_InvalidUse
|**X**| 00004026 | CERR_GroupDoesNotExist
| | 00004027 | CERR_VirtualKeyNotAllowedHere
| | 00004028 | CERR_InvalidSwitch
|**X**| 00004029 | CERR_NoTokensFound
| | 0000402A | CERR_InvalidLineContinuation
|**X**| 0000402B | CERR_LineTooLong
| | 0000402C | CERR_InvalidCopyright
|**X**| 0000402D | CERR_CodeInvalidInThisSection
| | 0000402E | CERR_InvalidMessage
| | 0000402F | CERR_InvalidLanguageName
| | 00004030 | CERR_InvalidBitmapLine
|**X**| 00004031 | CERR_CannotReadBitmapFile
| | 00004032 | CERR_IndexDoesNotPointToAny
| | 00004033 | CERR_ReservedCharacter
|**X**| 00004034 | CERR_InvalidCharacter
| | 00004035 | CERR_InvalidCall
| | 00004036 | CERR_CallInVirtualKeySection
| | 00004037 | CERR_CodeInvalidInKeyStore
|**X**| 00004038 | CERR_CannotLoadIncludeFile
|**X**| 00004039 | CERR_60FeatureOnly_EthnologueCode
|**X**| 0000403A | CERR_60FeatureOnly_MnemonicLayout
| | 0000403B | CERR_60FeatureOnly_OldCharPosMatching
| | 0000403C | CERR_60FeatureOnly_NamedCodes
| | 0000403D | CERR_60FeatureOnly_Contextn
|**X**| 0000403E | CERR_501FeatureOnly_Call
| | 0000403F | CERR_InvalidNamedCode
|**X**| 00004040 | CERR_InvalidSystemStore
|**X**| 00004044 | CERR_60FeatureOnly_VirtualCharKey
|**X**| 00004045 | CERR_VersionAlreadyIncluded
|**X**| 00004046 | CERR_70FeatureOnly
|**X**| 00004047 | CERR_80FeatureOnly
| | 00004048 | CERR_InvalidInVirtualKeySection
|**X**| 00004049 | CERR_InvalidIf
|**X**| 0000404A | CERR_InvalidReset
|**X**| 0000404B | CERR_InvalidSet
|**X**| 0000404C | CERR_InvalidSave
|**X**| 0000404D | CERR_InvalidEthnologueCode
| | 0000804E | CERR_CannotCreateTempfile
|**X**| 0000404F | CERR_90FeatureOnly_IfSystemStores
| | 00004050 | CERR_IfSystemStore_NotFound
| | 00004051 | CERR_90FeatureOnly_SetSystemStores
| | 00004052 | CERR_SetSystemStore_NotFound
| | 00004053 | CERR_90FeatureOnlyVirtualKeyDictionary
| | 00004054 | CERR_NotSupportedInKeymanWebContext
| | 00004055 | CERR_NotSupportedInKeymanWebOutput
| | 00004056 | CERR_NotSupportedInKeymanWebStore
| | 00004057 | CERR_VirtualCharacterKeysNotSupportedInKeymanWeb
| | 00004058 | CERR_VirtualKeysNotValidForMnemonicLayouts
| | 00004059 | CERR_InvalidTouchLayoutFile
| | 0000405A | CERR_TouchLayoutInvalidIdentifier
| | 0000405B | CERR_InvalidKeyCode
|**X**| 0000405C | CERR_90FeatureOnlyLayoutFile
|**X**| 0000405D | CERR_90FeatureOnlyKeyboardVersion
|**X**| 0000405E | CERR_KeyboardVersionFormatInvalid
| | 0000405F | CERR_ContextExHasInvalidOffset
|**X**| 00004060 | CERR_90FeatureOnlyEmbedCSS
|**X**| 00004061 | CERR_90FeatureOnlyTargets
| | 00004062 | CERR_ContextAndIndexInvalidInMatchNomatch
| | 00004063 | CERR_140FeatureOnlyContextAndNotAnyWeb
|**X**| 00004064 | CERR_ExpansionMustFollowCharacterOrVKey
|**X**| 00004065 | CERR_VKeyExpansionMustBeFollowedByVKey
|**X**| 00004066 | CERR_CharacterExpansionMustBeFollowedByCharacter
|**X**| 00004067 | CERR_VKeyExpansionMustUseConsistentShift
|**X**| 00004068 | CERR_ExpansionMustBePositive
|**X**| 00004069 | CERR_CasedKeysMustContainOnlyVirtualKeys
|**X**| 0000406A | CERR_CasedKeysMustNotIncludeShiftStates
|**X**| 0000406B | CERR_CasedKeysNotSupportedWithMnemonicLayout
|**X**| 0000406C | CERR_CannotUseReadWriteGroupFromReadonlyGroup
| | 0000406D | CERR_StatementNotPermittedInReadonlyGroup
|**X**| 0000406E | CERR_OutputInReadonlyGroup
|**X**| 0000406F | CERR_NewContextGroupMustBeReadonly
|**X**| 00004070 | CERR_PostKeystrokeGroupMustBeReadonly
|**X**| 00004071 | CERR_DuplicateGroup
|**X**| 00004072 | CERR_DuplicateStore
|**X**| 00004073 | CERR_RepeatedBegin
|**X**| 000080C0 | CERR_BufferOverflow

View file

@ -0,0 +1,130 @@
store(&VERSION) '10.0'
store(&NAME) 'Balochi Phonetic'
store(&TARGETS) 'any'
store(&KMW_RTL) '1'
store(&LAYOUTFILE) 'balochi_phonetic.keyman-touch-layout'
store(&KEYBOARDVERSION) '1.4.2'
store(&COPYRIGHT) '© 2017-2021 SIL International'
store(&MESSAGE) 'The Balochi Phonetic keyboard is distributed under The MIT License (MIT).'
store(&KMW_HELPTEXT) 'This is a phonetically organized Balochi keyboard.'
store(&VISUALKEYBOARD) 'balochi_phonetic.kvks'
store(&BITMAP) 'CERR__balochi_phonetic.ico'
begin Unicode > use(main)
group(main) using keys
+ [CTRL B08] > ''
+ [CTRL B09] > ''
c ***** CERR_InvalidToken 0x0000400A ********************************
+ [CTRL B10] > L'1234'
c *******************************************************************
+ [SHIFT CTRL E11] > '“'
+ [SHIFT CTRL E12] > '”'
+ [CTRL E11] > ''
+ [CTRL E12] > ''
+ [CTRL K_K] > 'ء'
+ [CTRL K_D] > 'ذ'
+ [K_EQUAL] > '='
+ [SHIFT K_8] > '*'
+ [SHIFT K_7] > '&'
+ [SHIFT K_5] > '%'
+ [SHIFT K_4] > '$'
+ [SHIFT K_3] > '#'
+ [SHIFT K_2] > '@'
+ [SHIFT K_1] > '!'
+ [SHIFT K_N] > 'ں'
+ [K_BKSLASH] > '۔'
+ [K_LBRKT] > ']'
+ [K_RBRKT] > '['
+ [K_F] > 'َ'
+ [K_V] > 'ِ'
+ [K_X] > 'ش'
+ [SHIFT K_H] > 'ح'
+ [SHIFT K_G] > 'ص'
+ [SHIFT K_Y] > 'ي'
+ [CTRL K_0] > '۰'
+ [CTRL K_9] > '۹'
+ [CTRL K_8] > '۸'
+ [CTRL K_7] > '۷'
+ [CTRL K_6] > '۶'
+ [CTRL K_5] > '۵'
+ [CTRL K_4] > '۴'
+ [CTRL K_3] > '۳'
+ [CTRL K_2] > '۲'
+ [CTRL K_1] > '۱'
+ [K_SLASH] > '/'
+ [K_HYPHEN] > '-'
+ [SHIFT K_COLON] > ':'
+ [SHIFT K_QUOTE] > '"'
+ [K_QUOTE] > U+0027
+ [K_O] > 'ُ'
+ [SHIFT K_O] > 'ْ'
+ [K_BKQUOTE] > 'ء'
+ [SHIFT K_W] > 'أ'
+ [SHIFT K_P] > 'ّ'
+ [SHIFT K_BKQUOTE] > 'ٔ'
+ [SHIFT K_J] > 'ض'
+ [SHIFT K_9] > ')'
+ [SHIFT K_RBRKT] > '{'
+ [SHIFT K_LBRKT] > '}'
+ [SHIFT K_0] > '('
+ [SHIFT K_SLASH] > '؟'
+ [SHIFT K_K] > 'ع'
+ [SHIFT K_EQUAL] > '«'
+ [SHIFT K_HYPHEN] > '»'
+ [SHIFT K_I] > 'ً'
+ [SHIFT K_PERIOD] > ''
+ [SHIFT K_COMMA] > ''
+ [SHIFT K_L] > 'ـ'
+ [SHIFT K_U] > 'ۀ'
+ [SHIFT K_B] > 'ة'
+ [SHIFT K_M] > 'غ'
+ [SHIFT K_F] > 'ف'
+ [SHIFT K_E] > 'ۓ'
+ [SHIFT K_Q] > 'ق'
+ [K_0] > '0'
+ [K_9] > '9'
+ [K_8] > '8'
+ [K_7] > '7'
+ [K_6] > '6'
+ [K_5] > '5'
+ [K_4] > '4'
+ [K_3] > '3'
+ [K_2] > '2'
+ [K_1] > '1'
+ [K_I] > 'ێ'
+ [SHIFT K_D] > 'ڈ'
+ [K_G] > 'گ'
+ [K_U] > 'ۆ'
+ [SHIFT K_R] > 'ڑ'
+ [SHIFT K_6] > ''
+ [SHIFT K_T] > 'ٹ'
+ [SHIFT K_V] > 'ظ'
+ [SHIFT K_C] > 'ط'
+ [SHIFT K_X] > 'خ'
+ [SHIFT K_Z] > 'ژ'
+ [SHIFT K_S] > 'ث'
+ [SHIFT K_A] > 'آ'
+ [K_PERIOD] > '.'
+ [K_COMMA] > '،'
+ [K_M] > 'م'
+ [K_N] > 'ن'
+ [K_B] > 'ب'
+ [K_C] > 'چ'
+ [K_Z] > 'ز'
+ [K_P] > 'پ'
+ [K_Y] > 'ی'
+ [K_T] > 'ت'
+ [K_R] > 'ر'
+ [K_E] > 'ے'
+ [K_W] > 'و'
+ [K_Q] > 'ئ'
+ [K_COLON] > '؛'
+ [K_L] > 'ل'
+ [K_K] > 'ک'
+ [K_J] > 'ج'
+ [K_H] > 'ه'
+ [K_D] > 'د'
+ [K_S] > 'س'
+ [K_A] > 'ا'

View file

@ -0,0 +1,130 @@
 c ***** CERR_InvalidVersion 0x0000400D *****************************
store(&VERSION) '127.0'
c *******************************************************************
store(&NAME) 'Balochi Phonetic'
store(&TARGETS) 'any'
store(&KMW_RTL) '1'
store(&LAYOUTFILE) 'balochi_phonetic.keyman-touch-layout'
store(&KEYBOARDVERSION) '1.4.2'
store(&COPYRIGHT) '© 2017-2021 SIL International'
store(&MESSAGE) 'The Balochi Phonetic keyboard is distributed under The MIT License (MIT).'
store(&KMW_HELPTEXT) 'This is a phonetically organized Balochi keyboard.'
store(&VISUALKEYBOARD) 'balochi_phonetic.kvks'
store(&BITMAP) 'CERR__balochi_phonetic.ico'
begin Unicode > use(main)
group(main) using keys
+ [CTRL B08] > ''
+ [CTRL B09] > ''
+ [CTRL B10] > ''
+ [SHIFT CTRL E11] > '“'
+ [SHIFT CTRL E12] > '”'
+ [CTRL E11] > ''
+ [CTRL E12] > ''
+ [CTRL K_K] > 'ء'
+ [CTRL K_D] > 'ذ'
+ [K_EQUAL] > '='
+ [SHIFT K_8] > '*'
+ [SHIFT K_7] > '&'
+ [SHIFT K_5] > '%'
+ [SHIFT K_4] > '$'
+ [SHIFT K_3] > '#'
+ [SHIFT K_2] > '@'
+ [SHIFT K_1] > '!'
+ [SHIFT K_N] > 'ں'
+ [K_BKSLASH] > '۔'
+ [K_LBRKT] > ']'
+ [K_RBRKT] > '['
+ [K_F] > 'َ'
+ [K_V] > 'ِ'
+ [K_X] > 'ش'
+ [SHIFT K_H] > 'ح'
+ [SHIFT K_G] > 'ص'
+ [SHIFT K_Y] > 'ي'
+ [CTRL K_0] > '۰'
+ [CTRL K_9] > '۹'
+ [CTRL K_8] > '۸'
+ [CTRL K_7] > '۷'
+ [CTRL K_6] > '۶'
+ [CTRL K_5] > '۵'
+ [CTRL K_4] > '۴'
+ [CTRL K_3] > '۳'
+ [CTRL K_2] > '۲'
+ [CTRL K_1] > '۱'
+ [K_SLASH] > '/'
+ [K_HYPHEN] > '-'
+ [SHIFT K_COLON] > ':'
+ [SHIFT K_QUOTE] > '"'
+ [K_QUOTE] > U+0027
+ [K_O] > 'ُ'
+ [SHIFT K_O] > 'ْ'
+ [K_BKQUOTE] > 'ء'
+ [SHIFT K_W] > 'أ'
+ [SHIFT K_P] > 'ّ'
+ [SHIFT K_BKQUOTE] > 'ٔ'
+ [SHIFT K_J] > 'ض'
+ [SHIFT K_9] > ')'
+ [SHIFT K_RBRKT] > '{'
+ [SHIFT K_LBRKT] > '}'
+ [SHIFT K_0] > '('
+ [SHIFT K_SLASH] > '؟'
+ [SHIFT K_K] > 'ع'
+ [SHIFT K_EQUAL] > '«'
+ [SHIFT K_HYPHEN] > '»'
+ [SHIFT K_I] > 'ً'
+ [SHIFT K_PERIOD] > ''
+ [SHIFT K_COMMA] > ''
+ [SHIFT K_L] > 'ـ'
+ [SHIFT K_U] > 'ۀ'
+ [SHIFT K_B] > 'ة'
+ [SHIFT K_M] > 'غ'
+ [SHIFT K_F] > 'ف'
+ [SHIFT K_E] > 'ۓ'
+ [SHIFT K_Q] > 'ق'
+ [K_0] > '0'
+ [K_9] > '9'
+ [K_8] > '8'
+ [K_7] > '7'
+ [K_6] > '6'
+ [K_5] > '5'
+ [K_4] > '4'
+ [K_3] > '3'
+ [K_2] > '2'
+ [K_1] > '1'
+ [K_I] > 'ێ'
+ [SHIFT K_D] > 'ڈ'
+ [K_G] > 'گ'
+ [K_U] > 'ۆ'
+ [SHIFT K_R] > 'ڑ'
+ [SHIFT K_6] > ''
+ [SHIFT K_T] > 'ٹ'
+ [SHIFT K_V] > 'ظ'
+ [SHIFT K_C] > 'ط'
+ [SHIFT K_X] > 'خ'
+ [SHIFT K_Z] > 'ژ'
+ [SHIFT K_S] > 'ث'
+ [SHIFT K_A] > 'آ'
+ [K_PERIOD] > '.'
+ [K_COMMA] > '،'
+ [K_M] > 'م'
+ [K_N] > 'ن'
+ [K_B] > 'ب'
+ [K_C] > 'چ'
+ [K_Z] > 'ز'
+ [K_P] > 'پ'
+ [K_Y] > 'ی'
+ [K_T] > 'ت'
+ [K_R] > 'ر'
+ [K_E] > 'ے'
+ [K_W] > 'و'
+ [K_Q] > 'ئ'
+ [K_COLON] > '؛'
+ [K_L] > 'ل'
+ [K_K] > 'ک'
+ [K_J] > 'ج'
+ [K_H] > 'ه'
+ [K_D] > 'د'
+ [K_S] > 'س'
+ [K_A] > 'ا'

View file

@ -0,0 +1,130 @@
store(&VERSION) '10.0'
store(&NAME) 'Balochi Phonetic'
store(&TARGETS) 'any'
store(&KMW_RTL) '1'
store(&LAYOUTFILE) 'balochi_phonetic.keyman-touch-layout'
store(&KEYBOARDVERSION) '1.4.2'
store(&COPYRIGHT) '© 2017-2021 SIL International'
store(&MESSAGE) 'The Balochi Phonetic keyboard is distributed under The MIT License (MIT).'
store(&KMW_HELPTEXT) 'This is a phonetically organized Balochi keyboard.'
store(&VISUALKEYBOARD) 'balochi_phonetic.kvks'
store(&BITMAP) 'CERR__balochi_phonetic.ico'
c ***** CERR_InvalidLanguageLine 0x0000400E ************************
store(&LANGUAGE) 'abc123'
c *******************************************************************
begin Unicode > use(main)
group(main) using keys
+ [CTRL B08] > ''
+ [CTRL B09] > ''
+ [CTRL B10] > ''
+ [SHIFT CTRL E11] > '“'
+ [SHIFT CTRL E12] > '”'
+ [CTRL E11] > ''
+ [CTRL E12] > ''
+ [CTRL K_K] > 'ء'
+ [CTRL K_D] > 'ذ'
+ [K_EQUAL] > '='
+ [SHIFT K_8] > '*'
+ [SHIFT K_7] > '&'
+ [SHIFT K_5] > '%'
+ [SHIFT K_4] > '$'
+ [SHIFT K_3] > '#'
+ [SHIFT K_2] > '@'
+ [SHIFT K_1] > '!'
+ [SHIFT K_N] > 'ں'
+ [K_BKSLASH] > '۔'
+ [K_LBRKT] > ']'
+ [K_RBRKT] > '['
+ [K_F] > 'َ'
+ [K_V] > 'ِ'
+ [K_X] > 'ش'
+ [SHIFT K_H] > 'ح'
+ [SHIFT K_G] > 'ص'
+ [SHIFT K_Y] > 'ي'
+ [CTRL K_0] > '۰'
+ [CTRL K_9] > '۹'
+ [CTRL K_8] > '۸'
+ [CTRL K_7] > '۷'
+ [CTRL K_6] > '۶'
+ [CTRL K_5] > '۵'
+ [CTRL K_4] > '۴'
+ [CTRL K_3] > '۳'
+ [CTRL K_2] > '۲'
+ [CTRL K_1] > '۱'
+ [K_SLASH] > '/'
+ [K_HYPHEN] > '-'
+ [SHIFT K_COLON] > ':'
+ [SHIFT K_QUOTE] > '"'
+ [K_QUOTE] > U+0027
+ [K_O] > 'ُ'
+ [SHIFT K_O] > 'ْ'
+ [K_BKQUOTE] > 'ء'
+ [SHIFT K_W] > 'أ'
+ [SHIFT K_P] > 'ّ'
+ [SHIFT K_BKQUOTE] > 'ٔ'
+ [SHIFT K_J] > 'ض'
+ [SHIFT K_9] > ')'
+ [SHIFT K_RBRKT] > '{'
+ [SHIFT K_LBRKT] > '}'
+ [SHIFT K_0] > '('
+ [SHIFT K_SLASH] > '؟'
+ [SHIFT K_K] > 'ع'
+ [SHIFT K_EQUAL] > '«'
+ [SHIFT K_HYPHEN] > '»'
+ [SHIFT K_I] > 'ً'
+ [SHIFT K_PERIOD] > ''
+ [SHIFT K_COMMA] > ''
+ [SHIFT K_L] > 'ـ'
+ [SHIFT K_U] > 'ۀ'
+ [SHIFT K_B] > 'ة'
+ [SHIFT K_M] > 'غ'
+ [SHIFT K_F] > 'ف'
+ [SHIFT K_E] > 'ۓ'
+ [SHIFT K_Q] > 'ق'
+ [K_0] > '0'
+ [K_9] > '9'
+ [K_8] > '8'
+ [K_7] > '7'
+ [K_6] > '6'
+ [K_5] > '5'
+ [K_4] > '4'
+ [K_3] > '3'
+ [K_2] > '2'
+ [K_1] > '1'
+ [K_I] > 'ێ'
+ [SHIFT K_D] > 'ڈ'
+ [K_G] > 'گ'
+ [K_U] > 'ۆ'
+ [SHIFT K_R] > 'ڑ'
+ [SHIFT K_6] > ''
+ [SHIFT K_T] > 'ٹ'
+ [SHIFT K_V] > 'ظ'
+ [SHIFT K_C] > 'ط'
+ [SHIFT K_X] > 'خ'
+ [SHIFT K_Z] > 'ژ'
+ [SHIFT K_S] > 'ث'
+ [SHIFT K_A] > 'آ'
+ [K_PERIOD] > '.'
+ [K_COMMA] > '،'
+ [K_M] > 'م'
+ [K_N] > 'ن'
+ [K_B] > 'ب'
+ [K_C] > 'چ'
+ [K_Z] > 'ز'
+ [K_P] > 'پ'
+ [K_Y] > 'ی'
+ [K_T] > 'ت'
+ [K_R] > 'ر'
+ [K_E] > 'ے'
+ [K_W] > 'و'
+ [K_Q] > 'ئ'
+ [K_COLON] > '؛'
+ [K_L] > 'ل'
+ [K_K] > 'ک'
+ [K_J] > 'ج'
+ [K_H] > 'ه'
+ [K_D] > 'د'
+ [K_S] > 'س'
+ [K_A] > 'ا'

View file

@ -0,0 +1,130 @@
c ***** CERR_InvalidStoreLine 0x00004013 ***************************
store(&VERSION '10.0'
c ******************************************************************
store(&NAME) 'Balochi Phonetic'
store(&TARGETS) 'any'
store(&KMW_RTL) '1'
store(&LAYOUTFILE) 'balochi_phonetic.keyman-touch-layout'
store(&KEYBOARDVERSION) '1.4.2'
store(&COPYRIGHT) '© 2017-2021 SIL International'
store(&MESSAGE) 'The Balochi Phonetic keyboard is distributed under The MIT License (MIT).'
store(&KMW_HELPTEXT) 'This is a phonetically organized Balochi keyboard.'
store(&VISUALKEYBOARD) 'balochi_phonetic.kvks'
store(&BITMAP) 'CERR__balochi_phonetic.ico'
begin Unicode > use(main)
group(main) using keys
+ [CTRL B08] > ''
+ [CTRL B09] > ''
+ [CTRL B10] > ''
+ [SHIFT CTRL E11] > '“'
+ [SHIFT CTRL E12] > '”'
+ [CTRL E11] > ''
+ [CTRL E12] > ''
+ [CTRL K_K] > 'ء'
+ [CTRL K_D] > 'ذ'
+ [K_EQUAL] > '='
+ [SHIFT K_8] > '*'
+ [SHIFT K_7] > '&'
+ [SHIFT K_5] > '%'
+ [SHIFT K_4] > '$'
+ [SHIFT K_3] > '#'
+ [SHIFT K_2] > '@'
+ [SHIFT K_1] > '!'
+ [SHIFT K_N] > 'ں'
+ [K_BKSLASH] > '۔'
+ [K_LBRKT] > ']'
+ [K_RBRKT] > '['
+ [K_F] > 'َ'
+ [K_V] > 'ِ'
+ [K_X] > 'ش'
+ [SHIFT K_H] > 'ح'
+ [SHIFT K_G] > 'ص'
+ [SHIFT K_Y] > 'ي'
+ [CTRL K_0] > '۰'
+ [CTRL K_9] > '۹'
+ [CTRL K_8] > '۸'
+ [CTRL K_7] > '۷'
+ [CTRL K_6] > '۶'
+ [CTRL K_5] > '۵'
+ [CTRL K_4] > '۴'
+ [CTRL K_3] > '۳'
+ [CTRL K_2] > '۲'
+ [CTRL K_1] > '۱'
+ [K_SLASH] > '/'
+ [K_HYPHEN] > '-'
+ [SHIFT K_COLON] > ':'
+ [SHIFT K_QUOTE] > '"'
+ [K_QUOTE] > U+0027
+ [K_O] > 'ُ'
+ [SHIFT K_O] > 'ْ'
+ [K_BKQUOTE] > 'ء'
+ [SHIFT K_W] > 'أ'
+ [SHIFT K_P] > 'ّ'
+ [SHIFT K_BKQUOTE] > 'ٔ'
+ [SHIFT K_J] > 'ض'
+ [SHIFT K_9] > ')'
+ [SHIFT K_RBRKT] > '{'
+ [SHIFT K_LBRKT] > '}'
+ [SHIFT K_0] > '('
+ [SHIFT K_SLASH] > '؟'
+ [SHIFT K_K] > 'ع'
+ [SHIFT K_EQUAL] > '«'
+ [SHIFT K_HYPHEN] > '»'
+ [SHIFT K_I] > 'ً'
+ [SHIFT K_PERIOD] > ''
+ [SHIFT K_COMMA] > ''
+ [SHIFT K_L] > 'ـ'
+ [SHIFT K_U] > 'ۀ'
+ [SHIFT K_B] > 'ة'
+ [SHIFT K_M] > 'غ'
+ [SHIFT K_F] > 'ف'
+ [SHIFT K_E] > 'ۓ'
+ [SHIFT K_Q] > 'ق'
+ [K_0] > '0'
+ [K_9] > '9'
+ [K_8] > '8'
+ [K_7] > '7'
+ [K_6] > '6'
+ [K_5] > '5'
+ [K_4] > '4'
+ [K_3] > '3'
+ [K_2] > '2'
+ [K_1] > '1'
+ [K_I] > 'ێ'
+ [SHIFT K_D] > 'ڈ'
+ [K_G] > 'گ'
+ [K_U] > 'ۆ'
+ [SHIFT K_R] > 'ڑ'
+ [SHIFT K_6] > ''
+ [SHIFT K_T] > 'ٹ'
+ [SHIFT K_V] > 'ظ'
+ [SHIFT K_C] > 'ط'
+ [SHIFT K_X] > 'خ'
+ [SHIFT K_Z] > 'ژ'
+ [SHIFT K_S] > 'ث'
+ [SHIFT K_A] > 'آ'
+ [K_PERIOD] > '.'
+ [K_COMMA] > '،'
+ [K_M] > 'م'
+ [K_N] > 'ن'
+ [K_B] > 'ب'
+ [K_C] > 'چ'
+ [K_Z] > 'ز'
+ [K_P] > 'پ'
+ [K_Y] > 'ی'
+ [K_T] > 'ت'
+ [K_R] > 'ر'
+ [K_E] > 'ے'
+ [K_W] > 'و'
+ [K_Q] > 'ئ'
+ [K_COLON] > '؛'
+ [K_L] > 'ل'
+ [K_K] > 'ک'
+ [K_J] > 'ج'
+ [K_H] > 'ه'
+ [K_D] > 'د'
+ [K_S] > 'س'
+ [K_A] > 'ا'

View file

@ -0,0 +1,30 @@
store(&NAME) '014 - groups and virtual keys'
c Description: Tests multiple groups and virtual keys with mnemonic layout
c keys: [K_A][SHIFT K_2][K_A][LCTRL K_2][K_A]
c expected: \u03B1\u1FB0\u1FB1
store(&VERSION) '9.0'
begin Unicode > use(UMain)
store(&MnemonicLayout) "0"
c ----------------------------------------------
group(UMain) using keys
+ [K_A] > U+03B1
c ***** CERR_InvalidDeadkey 0x00004015 ******************************
+ [CTRL K_q] > deadkey('')
c *******************************************************************
+ [ALT K_2] > deadkey(MacronBug)
+ [SHIFT K_2] > deadkey(BreveBug)
match > use(DK1)
c ----------------------------------------------
group(DK1)
deadkey(MacronBug) U+03B1 > U+1FB1 c won't work
deadkey(BreveBug) U+03B1 > U+1FB0 c works

View file

@ -0,0 +1,29 @@
store(&NAME) '014 - groups and virtual keys'
c Description: Tests multiple groups and virtual keys with mnemonic layout
c keys: [K_A][SHIFT K_2][K_A][LCTRL K_2][K_A]
c expected: \u03B1\u1FB0\u1FB1
store(&VERSION) '9.0'
begin Unicode > use(UMain)
store(&MnemonicLayout) "0"
c ----------------------------------------------
group(UMain) using keys
+ [K_A] > U+03B1
+ [CTRL K_2] > deadkey(MacronBug)
+ [ALT K_2] > deadkey(MacronBug)
+ [SHIFT K_2] > deadkey(BreveBug)
match > use(DK1)
c ----------------------------------------------
group(DK1)
deadkey(MacronBug) U+03B1 > U+1FB1 c won't work
c ***** CERR_InvalidValue 0x00004016 *****************************
deXadkey(BreveBug) U+03B1 > U+1FB0 c works
c *******************************************************************

View file

@ -0,0 +1,130 @@
store(&VERSION) '10.0'
store(&NAME) 'Balochi Phonetic'
store(&TARGETS) 'any'
store(&KMW_RTL) '1'
store(&LAYOUTFILE) 'balochi_phonetic.keyman-touch-layout'
store(&KEYBOARDVERSION) '1.4.2'
store(&COPYRIGHT) '© 2017-2021 SIL International'
store(&MESSAGE) 'The Balochi Phonetic keyboard is distributed under The MIT License (MIT).'
store(&KMW_HELPTEXT) 'This is a phonetically organized Balochi keyboard.'
store(&VISUALKEYBOARD) 'balochi_phonetic.kvks'
store(&BITMAP) 'CERR__balochi_phonetic.bmp'
begin Unicode > use(main)
group(main) using keys
+ [CTRL B08] > ''
+ [CTRL B09] > ''
c ***** CERR_ZeroLengthString 0x00004017 ***************************
+ [CTRL B10] >
c ******************************************************************
+ [SHIFT CTRL E11] > '“'
+ [SHIFT CTRL E12] > '”'
+ [CTRL E11] > ''
+ [CTRL E12] > ''
+ [CTRL K_K] > 'ء'
+ [CTRL K_D] > 'ذ'
+ [K_EQUAL] > '='
+ [SHIFT K_8] > '*'
+ [SHIFT K_7] > '&'
+ [SHIFT K_5] > '%'
+ [SHIFT K_4] > '$'
+ [SHIFT K_3] > '#'
+ [SHIFT K_2] > '@'
+ [SHIFT K_1] > '!'
+ [SHIFT K_N] > 'ں'
+ [K_BKSLASH] > '۔'
+ [K_LBRKT] > ']'
+ [K_RBRKT] > '['
+ [K_F] > 'َ'
+ [K_V] > 'ِ'
+ [K_X] > 'ش'
+ [SHIFT K_H] > 'ح'
+ [SHIFT K_G] > 'ص'
+ [SHIFT K_Y] > 'ي'
+ [CTRL K_0] > '۰'
+ [CTRL K_9] > '۹'
+ [CTRL K_8] > '۸'
+ [CTRL K_7] > '۷'
+ [CTRL K_6] > '۶'
+ [CTRL K_5] > '۵'
+ [CTRL K_4] > '۴'
+ [CTRL K_3] > '۳'
+ [CTRL K_2] > '۲'
+ [CTRL K_1] > '۱'
+ [K_SLASH] > '/'
+ [K_HYPHEN] > '-'
+ [SHIFT K_COLON] > ':'
+ [SHIFT K_QUOTE] > '"'
+ [K_QUOTE] > U+0027
+ [K_O] > 'ُ'
+ [SHIFT K_O] > 'ْ'
+ [K_BKQUOTE] > 'ء'
+ [SHIFT K_W] > 'أ'
+ [SHIFT K_P] > 'ّ'
+ [SHIFT K_BKQUOTE] > 'ٔ'
+ [SHIFT K_J] > 'ض'
+ [SHIFT K_9] > ')'
+ [SHIFT K_RBRKT] > '{'
+ [SHIFT K_LBRKT] > '}'
+ [SHIFT K_0] > '('
+ [SHIFT K_SLASH] > '؟'
+ [SHIFT K_K] > 'ع'
+ [SHIFT K_EQUAL] > '«'
+ [SHIFT K_HYPHEN] > '»'
+ [SHIFT K_I] > 'ً'
+ [SHIFT K_PERIOD] > ''
+ [SHIFT K_COMMA] > ''
+ [SHIFT K_L] > 'ـ'
+ [SHIFT K_U] > 'ۀ'
+ [SHIFT K_B] > 'ة'
+ [SHIFT K_M] > 'غ'
+ [SHIFT K_F] > 'ف'
+ [SHIFT K_E] > 'ۓ'
+ [SHIFT K_Q] > 'ق'
+ [K_0] > '0'
+ [K_9] > '9'
+ [K_8] > '8'
+ [K_7] > '7'
+ [K_6] > '6'
+ [K_5] > '5'
+ [K_4] > '4'
+ [K_3] > '3'
+ [K_2] > '2'
+ [K_1] > '1'
+ [K_I] > 'ێ'
+ [SHIFT K_D] > 'ڈ'
+ [K_G] > 'گ'
+ [K_U] > 'ۆ'
+ [SHIFT K_R] > 'ڑ'
+ [SHIFT K_6] > ''
+ [SHIFT K_T] > 'ٹ'
+ [SHIFT K_V] > 'ظ'
+ [SHIFT K_C] > 'ط'
+ [SHIFT K_X] > 'خ'
+ [SHIFT K_Z] > 'ژ'
+ [SHIFT K_S] > 'ث'
+ [SHIFT K_A] > 'آ'
+ [K_PERIOD] > '.'
+ [K_COMMA] > '،'
+ [K_M] > 'م'
+ [K_N] > 'ن'
+ [K_B] > 'ب'
+ [K_C] > 'چ'
+ [K_Z] > 'ز'
+ [K_P] > 'پ'
+ [K_Y] > 'ی'
+ [K_T] > 'ت'
+ [K_R] > 'ر'
+ [K_E] > 'ے'
+ [K_W] > 'و'
+ [K_Q] > 'ئ'
+ [K_COLON] > '؛'
+ [K_L] > 'ل'
+ [K_K] > 'ک'
+ [K_J] > 'ج'
+ [K_H] > 'ه'
+ [K_D] > 'د'
+ [K_S] > 'س'
+ [K_A] > 'ا'

View file

@ -0,0 +1,129 @@
store(&VERSION) '10.0'
store(&NAME) 'Balochi Phonetic'
store(&TARGETS) 'any'
store(&KMW_RTL) '1'
store(&LAYOUTFILE) 'balochi_phonetic.keyman-touch-layout'
store(&KEYBOARDVERSION) '1.4.2'
store(&COPYRIGHT) '© 2017-2021 SIL International'
store(&MESSAGE) 'The Balochi Phonetic keyboard is distributed under The MIT License (MIT).'
store(&KMW_HELPTEXT) 'This is a phonetically organized Balochi keyboard.'
store(&VISUALKEYBOARD) 'balochi_phonetic.kvks'
c ***** CERR_UnterminatedString 0x00004019 *************************
store(&BITMAP)CERR__balochi_phonetic.ico'
c ******************************************************************
begin Unicode > use(main)
group(main) using keys
+ [CTRL B08] > ''
+ [CTRL B09] > ''
+ [CTRL B10] > ''
+ [SHIFT CTRL E11] > '“'
+ [SHIFT CTRL E12] > '”'
+ [CTRL E11] > ''
+ [CTRL E12] > ''
+ [CTRL K_K] > 'ء'
+ [CTRL K_D] > 'ذ'
+ [K_EQUAL] > '='
+ [SHIFT K_8] > '*'
+ [SHIFT K_7] > '&'
+ [SHIFT K_5] > '%'
+ [SHIFT K_4] > '$'
+ [SHIFT K_3] > '#'
+ [SHIFT K_2] > '@'
+ [SHIFT K_1] > '!'
+ [SHIFT K_N] > 'ں'
+ [K_BKSLASH] > '۔'
+ [K_LBRKT] > ']'
+ [K_RBRKT] > '['
+ [K_F] > 'َ'
+ [K_V] > 'ِ'
+ [K_X] > 'ش'
+ [SHIFT K_H] > 'ح'
+ [SHIFT K_G] > 'ص'
+ [SHIFT K_Y] > 'ي'
+ [CTRL K_0] > '۰'
+ [CTRL K_9] > '۹'
+ [CTRL K_8] > '۸'
+ [CTRL K_7] > '۷'
+ [CTRL K_6] > '۶'
+ [CTRL K_5] > '۵'
+ [CTRL K_4] > '۴'
+ [CTRL K_3] > '۳'
+ [CTRL K_2] > '۲'
+ [CTRL K_1] > '۱'
+ [K_SLASH] > '/'
+ [K_HYPHEN] > '-'
+ [SHIFT K_COLON] > ':'
+ [SHIFT K_QUOTE] > '"'
+ [K_QUOTE] > U+0027
+ [K_O] > 'ُ'
+ [SHIFT K_O] > 'ْ'
+ [K_BKQUOTE] > 'ء'
+ [SHIFT K_W] > 'أ'
+ [SHIFT K_P] > 'ّ'
+ [SHIFT K_BKQUOTE] > 'ٔ'
+ [SHIFT K_J] > 'ض'
+ [SHIFT K_9] > ')'
+ [SHIFT K_RBRKT] > '{'
+ [SHIFT K_LBRKT] > '}'
+ [SHIFT K_0] > '('
+ [SHIFT K_SLASH] > '؟'
+ [SHIFT K_K] > 'ع'
+ [SHIFT K_EQUAL] > '«'
+ [SHIFT K_HYPHEN] > '»'
+ [SHIFT K_I] > 'ً'
+ [SHIFT K_PERIOD] > ''
+ [SHIFT K_COMMA] > ''
+ [SHIFT K_L] > 'ـ'
+ [SHIFT K_U] > 'ۀ'
+ [SHIFT K_B] > 'ة'
+ [SHIFT K_M] > 'غ'
+ [SHIFT K_F] > 'ف'
+ [SHIFT K_E] > 'ۓ'
+ [SHIFT K_Q] > 'ق'
+ [K_0] > '0'
+ [K_9] > '9'
+ [K_8] > '8'
+ [K_7] > '7'
+ [K_6] > '6'
+ [K_5] > '5'
+ [K_4] > '4'
+ [K_3] > '3'
+ [K_2] > '2'
+ [K_1] > '1'
+ [K_I] > 'ێ'
+ [SHIFT K_D] > 'ڈ'
+ [K_G] > 'گ'
+ [K_U] > 'ۆ'
+ [SHIFT K_R] > 'ڑ'
+ [SHIFT K_6] > ''
+ [SHIFT K_T] > 'ٹ'
+ [SHIFT K_V] > 'ظ'
+ [SHIFT K_C] > 'ط'
+ [SHIFT K_X] > 'خ'
+ [SHIFT K_Z] > 'ژ'
+ [SHIFT K_S] > 'ث'
+ [SHIFT K_A] > 'آ'
+ [K_PERIOD] > '.'
+ [K_COMMA] > '،'
+ [K_M] > 'م'
+ [K_N] > 'ن'
+ [K_B] > 'ب'
+ [K_C] > 'چ'
+ [K_Z] > 'ز'
+ [K_P] > 'پ'
+ [K_Y] > 'ی'
+ [K_T] > 'ت'
+ [K_R] > 'ر'
+ [K_E] > 'ے'
+ [K_W] > 'و'
+ [K_Q] > 'ئ'
+ [K_COLON] > '؛'
+ [K_L] > 'ل'
+ [K_K] > 'ک'
+ [K_J] > 'ج'
+ [K_H] > 'ه'
+ [K_D] > 'د'
+ [K_S] > 'س'
+ [K_A] > 'ا'

View file

@ -0,0 +1,22 @@
store(&NAME) '034 - options double set reset'
c Description: Tests basic option rules with save reset+set+reset
c keys: [K_A][K_A]
c expected: foo.foo.
c context:
c option: foo=1
c expected option: foo=1
store(&version) '10.0'
store(foo) '0'
begin Unicode > use(Main)
group(Main) using keys
c ***** CERR_StoreDoesNotExist 0x0000401D ***********************************
if(foo = '1') + 'a' > 'foo.' set(foo='2') reset(ffoo) set(foo='3') reset(foo)
c *******************************************************************
if(foo = '2') + 'a' > 'bar.'
if(foo = '3') + 'a' > 'baz.'
if(foo = '0') + 'a' > 'no foo.'

View file

@ -0,0 +1,17 @@
store(&VERSION) '10.0'
store(&NAME) 'Balochi Phonetic'
store(&TARGETS) 'any'
store(&KMW_RTL) '1'
store(&LAYOUTFILE) 'balochi_phonetic.keyman-touch-layout'
store(&KEYBOARDVERSION) '1.4.2'
store(&COPYRIGHT) '© 2017-2021 SIL International'
store(&MESSAGE) 'The Balochi Phonetic keyboard is distributed under The MIT License (MIT).'
store(&KMW_HELPTEXT) 'This is a phonetically organized Balochi keyboard.'
store(&VISUALKEYBOARD) 'balochi_phonetic.kvks'
store(&BITMAP) 'CERR__balochi_phonetic.ico'
begin Unicode > use(main)
c ***** CERR_GroupDoesNotExist 0x00004026 **************************
c ******************************************************************

View file

@ -0,0 +1,128 @@
store(&NAME) 'Balochi Phonetic'
store(&TARGETS) 'any'
store(&KMW_RTL) '1'
store(&LAYOUTFILE) 'balochi_phonetic.keyman-touch-layout'
store(&KEYBOARDVERSION) '1.4.2'
store(&COPYRIGHT) '© 2017-2021 SIL International'
store(&MESSAGE) 'The Balochi Phonetic keyboard is distributed under The MIT License (MIT).'
store(&KMW_HELPTEXT) 'This is a phonetically organized Balochi keyboard.'
store(&VISUALKEYBOARD) 'balochi_phonetic.kvks'
store(&BITMAP) 'CERR__balochi_phonetic.ico'
c ***** CERR_NoTokensFound 0x00004029 *******************************
begin
c *******************************************************************
group(main) using keys
+ [CTRL B08] > ''
+ [CTRL B09] > ''
+ [CTRL B10] > ''
+ [SHIFT CTRL E11] > '“'
+ [SHIFT CTRL E12] > '”'
+ [CTRL E11] > ''
+ [CTRL E12] > ''
+ [CTRL K_K] > 'ء'
+ [CTRL K_D] > 'ذ'
+ [K_EQUAL] > '§'
+ [SHIFT K_8] > '*'
+ [SHIFT K_7] > '&'
+ [SHIFT K_5] > '%'
+ [SHIFT K_4] > '$'
+ [SHIFT K_3] > '#'
+ [SHIFT K_2] > '@'
+ [SHIFT K_1] > '!'
+ [SHIFT K_N] > 'ں'
+ [K_BKSLASH] > '۔'
+ [K_LBRKT] > ']'
+ [K_RBRKT] > '['
+ [K_F] > 'َ'
+ [K_V] > 'ِ'
+ [K_X] > 'ش'
+ [SHIFT K_H] > 'ح'
+ [SHIFT K_G] > 'ص'
+ [SHIFT K_Y] > 'ي'
+ [CTRL K_0] > '۰'
+ [CTRL K_9] > '۹'
+ [CTRL K_8] > '۸'
+ [CTRL K_7] > '۷'
+ [CTRL K_6] > '۶'
+ [CTRL K_5] > '۵'
+ [CTRL K_4] > '۴'
+ [CTRL K_3] > '۳'
+ [CTRL K_2] > '۲'
+ [CTRL K_1] > '۱'
+ [K_SLASH] > '/'
+ [K_HYPHEN] > '-'
+ [SHIFT K_COLON] > ':'
+ [SHIFT K_QUOTE] > '"'
+ [K_QUOTE] > U+0027
+ [K_O] > 'ُ'
+ [SHIFT K_O] > 'ْ'
+ [K_BKQUOTE] > 'ء'
+ [SHIFT K_W] > 'أ'
+ [SHIFT K_P] > 'ّ'
+ [SHIFT K_BKQUOTE] > 'ٔ'
+ [SHIFT K_J] > 'ض'
+ [SHIFT K_9] > ')'
+ [SHIFT K_RBRKT] > '{'
+ [SHIFT K_LBRKT] > '}'
+ [SHIFT K_0] > '('
+ [SHIFT K_SLASH] > '؟'
+ [SHIFT K_K] > 'ع'
+ [SHIFT K_EQUAL] > '«'
+ [SHIFT K_HYPHEN] > '»'
+ [SHIFT K_I] > 'ً'
+ [SHIFT K_PERIOD] > ''
+ [SHIFT K_COMMA] > ''
+ [SHIFT K_L] > 'ـ'
+ [SHIFT K_U] > 'ۀ'
+ [SHIFT K_B] > 'ة'
+ [SHIFT K_M] > 'غ'
+ [SHIFT K_F] > 'ف'
+ [SHIFT K_E] > 'ۓ'
+ [SHIFT K_Q] > 'ق'
+ [K_0] > '0'
+ [K_9] > '9'
+ [K_8] > '8'
+ [K_7] > '7'
+ [K_6] > '6'
+ [K_5] > '5'
+ [K_4] > '4'
+ [K_3] > '3'
+ [K_2] > '2'
+ [K_1] > '1'
+ [K_I] > 'ێ'
+ [SHIFT K_D] > 'ڈ'
+ [K_G] > 'گ'
+ [K_U] > 'ۆ'
+ [SHIFT K_R] > 'ڑ'
+ [SHIFT K_6] > ''
+ [SHIFT K_T] > 'ٹ'
+ [SHIFT K_V] > 'ظ'
+ [SHIFT K_C] > 'ط'
+ [SHIFT K_X] > 'خ'
+ [SHIFT K_Z] > 'ژ'
+ [SHIFT K_S] > 'ث'
+ [SHIFT K_A] > 'آ'
+ [K_PERIOD] > '.'
+ [K_COMMA] > '،'
+ [K_M] > 'م'
+ [K_N] > 'ن'
+ [K_B] > 'ب'
+ [K_C] > 'چ'
+ [K_Z] > 'ز'
+ [K_P] > 'پ'
+ [K_Y] > 'ی'
+ [K_T] > 'ت'
+ [K_R] > 'ر'
+ [K_E] > 'ے'
+ [K_W] > 'و'
+ [K_Q] > 'ئ'
+ [K_COLON] > '؛'
+ [K_L] > 'ل'
+ [K_K] > 'ک'
+ [K_J] > 'ج'
+ [K_H] > 'ه'
+ [K_D] > 'د'
+ [K_S] > 'س'
+ [K_A] > 'ا'

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,129 @@
store(&VERSION) '10.0'
store(&NAME) 'Balochi Phonetic'
store(&TARGETS) 'any'
store(&KMW_RTL) '1'
store(&LAYOUTFILE) 'balochi_phonetic.keyman-touch-layout'
store(&KEYBOARDVERSION) '1.4.2'
store(&COPYRIGHT) '© 2017-2021 SIL International'
store(&MESSAGE) 'The Balochi Phonetic keyboard is distributed under The MIT License (MIT).'
store(&KMW_HELPTEXT) 'This is a phonetically organized Balochi keyboard.'
store(&VISUALKEYBOARD) 'balochi_phonetic.kvks'
store(&BITMAP) 'CERR__balochi_phonetic.ico'
begin Unicode > use(main)
c ***** CERR_CodeInvalidInThisSection 0x0000402D *******************
c ******************************************************************
+ [CTRL B08] > ''
+ [CTRL B09] > ''
+ [CTRL B10] > ''
+ [SHIFT CTRL E11] > '“'
+ [SHIFT CTRL E12] > '”'
+ [CTRL E11] > ''
+ [CTRL E12] > ''
+ [CTRL K_K] > 'ء'
+ [CTRL K_D] > 'ذ'
+ [K_EQUAL] > '='
+ [SHIFT K_8] > '*'
+ [SHIFT K_7] > '&'
+ [SHIFT K_5] > '%'
+ [SHIFT K_4] > '$'
+ [SHIFT K_3] > '#'
+ [SHIFT K_2] > '@'
+ [SHIFT K_1] > '!'
+ [SHIFT K_N] > 'ں'
+ [K_BKSLASH] > '۔'
+ [K_LBRKT] > ']'
+ [K_RBRKT] > '['
+ [K_F] > 'َ'
+ [K_V] > 'ِ'
+ [K_X] > 'ش'
+ [SHIFT K_H] > 'ح'
+ [SHIFT K_G] > 'ص'
+ [SHIFT K_Y] > 'ي'
+ [CTRL K_0] > '۰'
+ [CTRL K_9] > '۹'
+ [CTRL K_8] > '۸'
+ [CTRL K_7] > '۷'
+ [CTRL K_6] > '۶'
+ [CTRL K_5] > '۵'
+ [CTRL K_4] > '۴'
+ [CTRL K_3] > '۳'
+ [CTRL K_2] > '۲'
+ [CTRL K_1] > '۱'
+ [K_SLASH] > '/'
+ [K_HYPHEN] > '-'
+ [SHIFT K_COLON] > ':'
+ [SHIFT K_QUOTE] > '"'
+ [K_QUOTE] > U+0027
+ [K_O] > 'ُ'
+ [SHIFT K_O] > 'ْ'
+ [K_BKQUOTE] > 'ء'
+ [SHIFT K_W] > 'أ'
+ [SHIFT K_P] > 'ّ'
+ [SHIFT K_BKQUOTE] > 'ٔ'
+ [SHIFT K_J] > 'ض'
+ [SHIFT K_9] > ')'
+ [SHIFT K_RBRKT] > '{'
+ [SHIFT K_LBRKT] > '}'
+ [SHIFT K_0] > '('
+ [SHIFT K_SLASH] > '؟'
+ [SHIFT K_K] > 'ع'
+ [SHIFT K_EQUAL] > '«'
+ [SHIFT K_HYPHEN] > '»'
+ [SHIFT K_I] > 'ً'
+ [SHIFT K_PERIOD] > ''
+ [SHIFT K_COMMA] > ''
+ [SHIFT K_L] > 'ـ'
+ [SHIFT K_U] > 'ۀ'
+ [SHIFT K_B] > 'ة'
+ [SHIFT K_M] > 'غ'
+ [SHIFT K_F] > 'ف'
+ [SHIFT K_E] > 'ۓ'
+ [SHIFT K_Q] > 'ق'
+ [K_0] > '0'
+ [K_9] > '9'
+ [K_8] > '8'
+ [K_7] > '7'
+ [K_6] > '6'
+ [K_5] > '5'
+ [K_4] > '4'
+ [K_3] > '3'
+ [K_2] > '2'
+ [K_1] > '1'
+ [K_I] > 'ێ'
+ [SHIFT K_D] > 'ڈ'
+ [K_G] > 'گ'
+ [K_U] > 'ۆ'
+ [SHIFT K_R] > 'ڑ'
+ [SHIFT K_6] > ''
+ [SHIFT K_T] > 'ٹ'
+ [SHIFT K_V] > 'ظ'
+ [SHIFT K_C] > 'ط'
+ [SHIFT K_X] > 'خ'
+ [SHIFT K_Z] > 'ژ'
+ [SHIFT K_S] > 'ث'
+ [SHIFT K_A] > 'آ'
+ [K_PERIOD] > '.'
+ [K_COMMA] > '،'
+ [K_M] > 'م'
+ [K_N] > 'ن'
+ [K_B] > 'ب'
+ [K_C] > 'چ'
+ [K_Z] > 'ز'
+ [K_P] > 'پ'
+ [K_Y] > 'ی'
+ [K_T] > 'ت'
+ [K_R] > 'ر'
+ [K_E] > 'ے'
+ [K_W] > 'و'
+ [K_Q] > 'ئ'
+ [K_COLON] > '؛'
+ [K_L] > 'ل'
+ [K_K] > 'ک'
+ [K_J] > 'ج'
+ [K_H] > 'ه'
+ [K_D] > 'د'
+ [K_S] > 'س'
+ [K_A] > 'ا'

View file

@ -0,0 +1,129 @@
store(&VERSION) '10.0'
store(&NAME) 'Balochi Phonetic'
store(&TARGETS) 'any'
store(&KMW_RTL) '1'
store(&LAYOUTFILE) 'balochi_phonetic.keyman-touch-layout'
store(&KEYBOARDVERSION) '1.4.2'
store(&COPYRIGHT) '© 2017-2021 SIL International'
store(&MESSAGE) 'The Balochi Phonetic keyboard is distributed under The MIT License (MIT).'
store(&KMW_HELPTEXT) 'This is a phonetically organized Balochi keyboard.'
store(&VISUALKEYBOARD) 'balochi_phonetic.kvks'
c ***** CERR_CannotReadBitmapFile 0x00004031 ***********************
store(&BITMAP) 'balochi_phonetic.ico'
c ******************************************************************
begin Unicode > use(main)
group(main) using keys
+ [CTRL B08] > ''
+ [CTRL B09] > ''
+ [CTRL B10] > ''
+ [SHIFT CTRL E11] > '“'
+ [SHIFT CTRL E12] > '”'
+ [CTRL E11] > ''
+ [CTRL E12] > ''
+ [CTRL K_K] > 'ء'
+ [CTRL K_D] > 'ذ'
+ [K_EQUAL] > '='
+ [SHIFT K_8] > '*'
+ [SHIFT K_7] > '&'
+ [SHIFT K_5] > '%'
+ [SHIFT K_4] > '$'
+ [SHIFT K_3] > '#'
+ [SHIFT K_2] > '@'
+ [SHIFT K_1] > '!'
+ [SHIFT K_N] > 'ں'
+ [K_BKSLASH] > '۔'
+ [K_LBRKT] > ']'
+ [K_RBRKT] > '['
+ [K_F] > 'َ'
+ [K_V] > 'ِ'
+ [K_X] > 'ش'
+ [SHIFT K_H] > 'ح'
+ [SHIFT K_G] > 'ص'
+ [SHIFT K_Y] > 'ي'
+ [CTRL K_0] > '۰'
+ [CTRL K_9] > '۹'
+ [CTRL K_8] > '۸'
+ [CTRL K_7] > '۷'
+ [CTRL K_6] > '۶'
+ [CTRL K_5] > '۵'
+ [CTRL K_4] > '۴'
+ [CTRL K_3] > '۳'
+ [CTRL K_2] > '۲'
+ [CTRL K_1] > '۱'
+ [K_SLASH] > '/'
+ [K_HYPHEN] > '-'
+ [SHIFT K_COLON] > ':'
+ [SHIFT K_QUOTE] > '"'
+ [K_QUOTE] > U+0027
+ [K_O] > 'ُ'
+ [SHIFT K_O] > 'ْ'
+ [K_BKQUOTE] > 'ء'
+ [SHIFT K_W] > 'أ'
+ [SHIFT K_P] > 'ّ'
+ [SHIFT K_BKQUOTE] > 'ٔ'
+ [SHIFT K_J] > 'ض'
+ [SHIFT K_9] > ')'
+ [SHIFT K_RBRKT] > '{'
+ [SHIFT K_LBRKT] > '}'
+ [SHIFT K_0] > '('
+ [SHIFT K_SLASH] > '؟'
+ [SHIFT K_K] > 'ع'
+ [SHIFT K_EQUAL] > '«'
+ [SHIFT K_HYPHEN] > '»'
+ [SHIFT K_I] > 'ً'
+ [SHIFT K_PERIOD] > ''
+ [SHIFT K_COMMA] > ''
+ [SHIFT K_L] > 'ـ'
+ [SHIFT K_U] > 'ۀ'
+ [SHIFT K_B] > 'ة'
+ [SHIFT K_M] > 'غ'
+ [SHIFT K_F] > 'ف'
+ [SHIFT K_E] > 'ۓ'
+ [SHIFT K_Q] > 'ق'
+ [K_0] > '0'
+ [K_9] > '9'
+ [K_8] > '8'
+ [K_7] > '7'
+ [K_6] > '6'
+ [K_5] > '5'
+ [K_4] > '4'
+ [K_3] > '3'
+ [K_2] > '2'
+ [K_1] > '1'
+ [K_I] > 'ێ'
+ [SHIFT K_D] > 'ڈ'
+ [K_G] > 'گ'
+ [K_U] > 'ۆ'
+ [SHIFT K_R] > 'ڑ'
+ [SHIFT K_6] > ''
+ [SHIFT K_T] > 'ٹ'
+ [SHIFT K_V] > 'ظ'
+ [SHIFT K_C] > 'ط'
+ [SHIFT K_X] > 'خ'
+ [SHIFT K_Z] > 'ژ'
+ [SHIFT K_S] > 'ث'
+ [SHIFT K_A] > 'آ'
+ [K_PERIOD] > '.'
+ [K_COMMA] > '،'
+ [K_M] > 'م'
+ [K_N] > 'ن'
+ [K_B] > 'ب'
+ [K_C] > 'چ'
+ [K_Z] > 'ز'
+ [K_P] > 'پ'
+ [K_Y] > 'ی'
+ [K_T] > 'ت'
+ [K_R] > 'ر'
+ [K_E] > 'ے'
+ [K_W] > 'و'
+ [K_Q] > 'ئ'
+ [K_COLON] > '؛'
+ [K_L] > 'ل'
+ [K_K] > 'ک'
+ [K_J] > 'ج'
+ [K_H] > 'ه'
+ [K_D] > 'د'
+ [K_S] > 'س'
+ [K_A] > 'ا'

View file

@ -0,0 +1,130 @@
store(&VERSION) '10.0'
store(&NAME) 'Balochi Phonetic'
store(&TARGETS) 'any'
store(&KMW_RTL) '1'
store(&LAYOUTFILE) 'balochi_phonetic.keyman-touch-layout'
store(&KEYBOARDVERSION) '1.4.2'
c ***** CERR_InvalidCharacter 0x00004034 ***************************
store(&COPYRIGHT) '<27> 2012 U+1234 -2020 SIL International'
c ******************************************************************
store(&MESSAGE) 'The Balochi Phonetic keyboard is distributed under The MIT License (MIT).'
store(&KMW_HELPTEXT) 'This is a phonetically organized Balochi keyboard.'
store(&VISUALKEYBOARD) 'balochi_phonetic.kvks'
store(&BITMAP) 'CERR__balochi_phonetic.ico'
begin Unicode > use(main)
group(main) using keys
+ [CTRL B08] > ''
+ [CTRL B09] > ''
+ [CTRL B10] > ''
+ [SHIFT CTRL E11] > '“'
+ [SHIFT CTRL E12] > '”'
+ [CTRL E11] > ''
+ [CTRL E12] > ''
+ [CTRL K_K] > 'ء'
+ [CTRL K_D] > 'ذ'
+ [K_EQUAL] > '='
+ [SHIFT K_8] > '*'
+ [SHIFT K_7] > '&'
+ [SHIFT K_5] > '%'
+ [SHIFT K_4] > '$'
+ [SHIFT K_3] > '#'
+ [SHIFT K_2] > '@'
+ [SHIFT K_1] > '!'
+ [SHIFT K_N] > 'ں'
+ [K_BKSLASH] > '۔'
+ [K_LBRKT] > ']'
+ [K_RBRKT] > '['
+ [K_F] > 'َ'
+ [K_V] > 'ِ'
+ [K_X] > 'ش'
+ [SHIFT K_H] > 'ح'
+ [SHIFT K_G] > 'ص'
+ [SHIFT K_Y] > 'ي'
+ [CTRL K_0] > '۰'
+ [CTRL K_9] > '۹'
+ [CTRL K_8] > '۸'
+ [CTRL K_7] > '۷'
+ [CTRL K_6] > '۶'
+ [CTRL K_5] > '۵'
+ [CTRL K_4] > '۴'
+ [CTRL K_3] > '۳'
+ [CTRL K_2] > '۲'
+ [CTRL K_1] > '۱'
+ [K_SLASH] > '/'
+ [K_HYPHEN] > '-'
+ [SHIFT K_COLON] > ':'
+ [SHIFT K_QUOTE] > '"'
+ [K_QUOTE] > U+0027
+ [K_O] > 'ُ'
+ [SHIFT K_O] > 'ْ'
+ [K_BKQUOTE] > 'ء'
+ [SHIFT K_W] > 'أ'
+ [SHIFT K_P] > 'ّ'
+ [SHIFT K_BKQUOTE] > 'ٔ'
+ [SHIFT K_J] > 'ض'
+ [SHIFT K_9] > ')'
+ [SHIFT K_RBRKT] > '{'
+ [SHIFT K_LBRKT] > '}'
+ [SHIFT K_0] > '('
+ [SHIFT K_SLASH] > '؟'
+ [SHIFT K_K] > 'ع'
+ [SHIFT K_EQUAL] > '«'
+ [SHIFT K_HYPHEN] > '»'
+ [SHIFT K_I] > 'ً'
+ [SHIFT K_PERIOD] > ''
+ [SHIFT K_COMMA] > ''
+ [SHIFT K_L] > 'ـ'
+ [SHIFT K_U] > 'ۀ'
+ [SHIFT K_B] > 'ة'
+ [SHIFT K_M] > 'غ'
+ [SHIFT K_F] > 'ف'
+ [SHIFT K_E] > 'ۓ'
+ [SHIFT K_Q] > 'ق'
+ [K_0] > '0'
+ [K_9] > '9'
+ [K_8] > '8'
+ [K_7] > '7'
+ [K_6] > '6'
+ [K_5] > '5'
+ [K_4] > '4'
+ [K_3] > '3'
+ [K_2] > '2'
+ [K_1] > '1'
+ [K_I] > 'ێ'
+ [SHIFT K_D] > 'ڈ'
+ [K_G] > 'گ'
+ [K_U] > 'ۆ'
+ [SHIFT K_R] > 'ڑ'
+ [SHIFT K_6] > ''
+ [SHIFT K_T] > 'ٹ'
+ [SHIFT K_V] > 'ظ'
+ [SHIFT K_C] > 'ط'
+ [SHIFT K_X] > 'خ'
+ [SHIFT K_Z] > 'ژ'
+ [SHIFT K_S] > 'ث'
+ [SHIFT K_A] > 'آ'
+ [K_PERIOD] > '.'
+ [K_COMMA] > '،'
+ [K_M] > 'م'
+ [K_N] > 'ن'
+ [K_B] > 'ب'
+ [K_C] > 'چ'
+ [K_Z] > 'ز'
+ [K_P] > 'پ'
+ [K_Y] > 'ی'
+ [K_T] > 'ت'
+ [K_R] > 'ر'
+ [K_E] > 'ے'
+ [K_W] > 'و'
+ [K_Q] > 'ئ'
+ [K_COLON] > '؛'
+ [K_L] > 'ل'
+ [K_K] > 'ک'
+ [K_J] > 'ج'
+ [K_H] > 'ه'
+ [K_D] > 'د'
+ [K_S] > 'س'
+ [K_A] > 'ا'

View file

@ -0,0 +1,130 @@
store(&VERSION) '10.0'
store(&NAME) 'Balochi Phonetic'
store(&TARGETS) 'any'
store(&KMW_RTL) '1'
store(&LAYOUTFILE) 'balochi_phonetic.keyman-touch-layout'
store(&KEYBOARDVERSION) '1.4.2'
store(&COPYRIGHT) '© 2017-2021 SIL International'
store(&MESSAGE) 'The Balochi Phonetic keyboard is distributed under The MIT License (MIT).'
store(&KMW_HELPTEXT) 'This is a phonetically organized Balochi keyboard.'
store(&VISUALKEYBOARD) 'balochi_phonetic.kvks'
store(&BITMAP) 'CERR__balochi_phonetic.ico'
c ***** CERR_CannotLoadIncludeFile 0x00004038 **********************
store(&INCLUDECODES) 'XX.txt'
c ******************************************************************
begin Unicode > use(main)
group(main) using keys
+ [CTRL B08] > ''
+ [CTRL B09] > ''
+ [CTRL B10] > ''
+ [SHIFT CTRL E11] > '“'
+ [SHIFT CTRL E12] > '”'
+ [CTRL E11] > ''
+ [CTRL E12] > ''
+ [CTRL K_K] > 'ء'
+ [CTRL K_D] > 'ذ'
+ [K_EQUAL] > '='
+ [SHIFT K_8] > '*'
+ [SHIFT K_7] > '&'
+ [SHIFT K_5] > '%'
+ [SHIFT K_4] > '$'
+ [SHIFT K_3] > '#'
+ [SHIFT K_2] > '@'
+ [SHIFT K_1] > '!'
+ [SHIFT K_N] > 'ں'
+ [K_BKSLASH] > '۔'
+ [K_LBRKT] > ']'
+ [K_RBRKT] > '['
+ [K_F] > 'َ'
+ [K_V] > 'ِ'
+ [K_X] > 'ش'
+ [SHIFT K_H] > 'ح'
+ [SHIFT K_G] > 'ص'
+ [SHIFT K_Y] > 'ي'
+ [CTRL K_0] > '۰'
+ [CTRL K_9] > '۹'
+ [CTRL K_8] > '۸'
+ [CTRL K_7] > '۷'
+ [CTRL K_6] > '۶'
+ [CTRL K_5] > '۵'
+ [CTRL K_4] > '۴'
+ [CTRL K_3] > '۳'
+ [CTRL K_2] > '۲'
+ [CTRL K_1] > '۱'
+ [K_SLASH] > '/'
+ [K_HYPHEN] > '-'
+ [SHIFT K_COLON] > ':'
+ [SHIFT K_QUOTE] > '"'
+ [K_QUOTE] > U+0027
+ [K_O] > 'ُ'
+ [SHIFT K_O] > 'ْ'
+ [K_BKQUOTE] > 'ء'
+ [SHIFT K_W] > 'أ'
+ [SHIFT K_P] > 'ّ'
+ [SHIFT K_BKQUOTE] > 'ٔ'
+ [SHIFT K_J] > 'ض'
+ [SHIFT K_9] > ')'
+ [SHIFT K_RBRKT] > '{'
+ [SHIFT K_LBRKT] > '}'
+ [SHIFT K_0] > '('
+ [SHIFT K_SLASH] > '؟'
+ [SHIFT K_K] > 'ع'
+ [SHIFT K_EQUAL] > '«'
+ [SHIFT K_HYPHEN] > '»'
+ [SHIFT K_I] > 'ً'
+ [SHIFT K_PERIOD] > ''
+ [SHIFT K_COMMA] > ''
+ [SHIFT K_L] > 'ـ'
+ [SHIFT K_U] > 'ۀ'
+ [SHIFT K_B] > 'ة'
+ [SHIFT K_M] > 'غ'
+ [SHIFT K_F] > 'ف'
+ [SHIFT K_E] > 'ۓ'
+ [SHIFT K_Q] > 'ق'
+ [K_0] > '0'
+ [K_9] > '9'
+ [K_8] > '8'
+ [K_7] > '7'
+ [K_6] > '6'
+ [K_5] > '5'
+ [K_4] > '4'
+ [K_3] > '3'
+ [K_2] > '2'
+ [K_1] > '1'
+ [K_I] > 'ێ'
+ [SHIFT K_D] > 'ڈ'
+ [K_G] > 'گ'
+ [K_U] > 'ۆ'
+ [SHIFT K_R] > 'ڑ'
+ [SHIFT K_6] > ''
+ [SHIFT K_T] > 'ٹ'
+ [SHIFT K_V] > 'ظ'
+ [SHIFT K_C] > 'ط'
+ [SHIFT K_X] > 'خ'
+ [SHIFT K_Z] > 'ژ'
+ [SHIFT K_S] > 'ث'
+ [SHIFT K_A] > 'آ'
+ [K_PERIOD] > '.'
+ [K_COMMA] > '،'
+ [K_M] > 'م'
+ [K_N] > 'ن'
+ [K_B] > 'ب'
+ [K_C] > 'چ'
+ [K_Z] > 'ز'
+ [K_P] > 'پ'
+ [K_Y] > 'ی'
+ [K_T] > 'ت'
+ [K_R] > 'ر'
+ [K_E] > 'ے'
+ [K_W] > 'و'
+ [K_Q] > 'ئ'
+ [K_COLON] > '؛'
+ [K_L] > 'ل'
+ [K_K] > 'ک'
+ [K_J] > 'ج'
+ [K_H] > 'ه'
+ [K_D] > 'د'
+ [K_S] > 'س'
+ [K_A] > 'ا'

View file

@ -0,0 +1,137 @@
c ***** This test will produce XXXX Error: ***************************
c ***** 1) it will be marked as FAIL when run in kmcompxtest *******
c ***** as a XXXXXXX non-existing ErrorNr (0x00040733) is specified *****
c ******************************************************************store(&VERSION) '10.0'
store(&NAME) 'Balochi Phonetic'
store(&TARGETS) 'any'
store(&KMW_RTL) '1'
store(&LAYOUTFILE) 'balochi_phonetic.keyman-touch-layout'
store(&KEYBOARDVERSION) '1.4.2'
store(&COPYRIGHT) '© 2017-2021 SIL International'
store(&MESSAGE) 'The Balochi Phonetic keyboard is distributed under The MIT License (MIT).'
store(&KMW_HELPTEXT) 'This is a phonetically organized Balochi keyboard.'
store(&VISUALKEYBOARD) 'balochi_phonetic.kvks'
store(&BITMAP) 'CERR__balochi_phonetic.ico'
c ***** CERR_60FeatureOnly_EthnologueCode 0x00004039 ****************
store(&version) '3.0'
store(&ETHNOLOGUECODE) 'eng'
c *******************************************************************
begin Unicode > use(main)
group (main) using keys
+ [CTRL B08] > ''
+ [CTRL B09] > ''
+ [CTRL B10] > ''
+ [SHIFT CTRL E11] > '“'
+ [SHIFT CTRL E12] > '”'
+ [CTRL E11] > ''
+ [CTRL E12] > ''
+ [CTRL K_K] > 'ء'
+ [CTRL K_D] > 'ذ'
+ [K_EQUAL] > '§'
+ [SHIFT K_8] > '*'
+ [SHIFT K_7] > '&'
+ [SHIFT K_5] > '%'
+ [SHIFT K_4] > '$'
+ [SHIFT K_3] > '#'
+ [SHIFT K_2] > '@'
+ [SHIFT K_1] > '!'
+ [SHIFT K_N] > 'ں'
+ [K_BKSLASH] > '۔'
+ [K_LBRKT] > ']'
+ [K_RBRKT] > '['
+ [K_F] > 'َ'
+ [K_V] > 'ِ'
+ [K_X] > 'ش'
+ [SHIFT K_H] > 'ح'
+ [SHIFT K_G] > 'ص'
+ [SHIFT K_Y] > 'ي'
+ [CTRL K_0] > '۰'
+ [CTRL K_9] > '۹'
+ [CTRL K_8] > '۸'
+ [CTRL K_7] > '۷'
+ [CTRL K_6] > '۶'
+ [CTRL K_5] > '۵'
+ [CTRL K_4] > '۴'
+ [CTRL K_3] > '۳'
+ [CTRL K_2] > '۲'
+ [CTRL K_1] > '۱'
+ [K_SLASH] > '/'
+ [K_HYPHEN] > '-'
+ [SHIFT K_COLON] > ':'
+ [SHIFT K_QUOTE] > '"'
+ [K_QUOTE] > U+0027
+ [K_O] > 'ُ'
+ [SHIFT K_O] > 'ْ'
+ [K_BKQUOTE] > 'ء'
+ [SHIFT K_W] > 'أ'
+ [SHIFT K_P] > 'ّ'
+ [SHIFT K_BKQUOTE] > 'ٔ'
+ [SHIFT K_J] > 'ض'
+ [SHIFT K_9] > ')'
+ [SHIFT K_RBRKT] > '{'
+ [SHIFT K_LBRKT] > '}'
+ [SHIFT K_0] > '('
+ [SHIFT K_SLASH] > '؟'
+ [SHIFT K_K] > 'ع'
+ [SHIFT K_EQUAL] > '«'
+ [SHIFT K_HYPHEN] > '»'
+ [SHIFT K_I] > 'ً'
+ [SHIFT K_PERIOD] > ''
+ [SHIFT K_COMMA] > ''
+ [SHIFT K_L] > 'ـ'
+ [SHIFT K_U] > 'ۀ'
+ [SHIFT K_B] > 'ة'
+ [SHIFT K_M] > 'غ'
+ [SHIFT K_F] > 'ف'
+ [SHIFT K_E] > 'ۓ'
+ [SHIFT K_Q] > 'ق'
+ [K_0] > '0'
+ [K_9] > '9'
+ [K_8] > '8'
+ [K_7] > '7'
+ [K_6] > '6'
+ [K_5] > '5'
+ [K_4] > '4'
+ [K_3] > '3'
+ [K_2] > '2'
+ [K_1] > '1'
+ [K_I] > 'ێ'
+ [SHIFT K_D] > 'ڈ'
+ [K_G] > 'گ'
+ [K_U] > 'ۆ'
+ [SHIFT K_R] > 'ڑ'
+ [SHIFT K_6] > ''
+ [SHIFT K_T] > 'ٹ'
+ [SHIFT K_V] > 'ظ'
+ [SHIFT K_C] > 'ط'
+ [SHIFT K_X] > 'خ'
+ [SHIFT K_Z] > 'ژ'
+ [SHIFT K_S] > 'ث'
+ [SHIFT K_A] > 'آ'
+ [K_PERIOD] > '.'
+ [K_COMMA] > '،'
+ [K_M] > 'م'
+ [K_N] > 'ن'
+ [K_B] > 'ب'
+ [K_C] > 'چ'
+ [K_Z] > 'ز'
+ [K_P] > 'پ'
+ [K_Y] > 'ی'
+ [K_T] > 'ت'
+ [K_R] > 'ر'
+ [K_E] > 'ے'
+ [K_W] > 'و'
+ [K_Q] > 'ئ'
+ [K_COLON] > '؛'
+ [K_L] > 'ل'
+ [K_K] > 'ک'
+ [K_J] > 'ج'
+ [K_H] > 'ه'
+ [K_D] > 'د'
+ [K_S] > 'س'
+ [K_A] > 'ا'

View file

@ -0,0 +1,34 @@
c RegressionTest: Multiple groups and virtual keys
c Font: Arial Unicode MS
c Encoding: Unicode
c Description: Tests multiple groups and virtual keys -- bug Ixxx
c Procedure: Press A, Shift+2, A, Ctrl+2, A
c AutoProc: K_A S+ K_2 S- K_A C+ K_2 C- K_A
c FinalOutput: U+03B1 U+1FB0 U+1FB1
c ***** CERR_60FeatureOnly_MnemonicLayout 0x0000403A ****************
store(&VERSION) '3.0'
c *******************************************************************
NAME "AltGr Deadkeys Test"
begin Unicode > use(UMain) c Substitute UMain1 or UMain2
c ***** CERR_60FeatureOnly_MnemonicLayout 0x0000403A ****************
store(&MnemonicLayout) "1"
c *******************************************************************
c ----------------------------------------------
group(UMain) using keys
+ ['a'] > U+03B1
+ [CTRL '2'] > deadkey(MacronBug)
+ [ALT '2'] > deadkey(MacronBug)
+ [SHIFT '2'] > deadkey(BreveBug)
match > use(DK1)
c ----------------------------------------------
group(DK1)
deadkey(MacronBug) U+03B1 > U+1FB1 c won't work
deadkey(BreveBug) U+03B1 > U+1FB0 c works

View file

@ -0,0 +1,17 @@
c ***** CERR_501FeatureOnly_Call 0x0000403E *************************
store(&VERSION) '3.0'
c *******************************************************************
store(&NAME) 'IMTest'
store(DLLFunction) "imsample.dll:DF"
begin Unicode > use(main)
group(main) using keys
c ***** CERR_501FeatureOnly_Call 0x0000403E *************************
+ [K_BKSP] > call(DLLFunction)
+ [K_ESC] > call(DLLFunction)
nomatch > call(DLLFunction)
c *******************************************************************

View file

@ -0,0 +1,130 @@
store(&VERSION) '10.0'
c ***** CERR_InvalidSystemStore 0x00004040 *************************
store(&NXXAME) 'Balochi Phonetic'
c ******************************************************************
store(&TARGETS) 'any'
store(&KMW_RTL) '1'
store(&LAYOUTFILE) 'balochi_phonetic.keyman-touch-layout'
store(&KEYBOARDVERSION) '1.4.2'
store(&COPYRIGHT) '© 2017-2021 SIL International'
store(&MESSAGE) 'The Balochi Phonetic keyboard is distributed under The MIT License (MIT).'
store(&KMW_HELPTEXT) 'This is a phonetically organized Balochi keyboard.'
store(&VISUALKEYBOARD) 'balochi_phonetic.kvks'
store(&BITMAP) 'CERR__balochi_phonetic.ico'
begin Unicode > use(main)
group(main) using keys
+ [CTRL B08] > ''
+ [CTRL B09] > ''
+ [CTRL B10] > ''
+ [SHIFT CTRL E11] > '“'
+ [SHIFT CTRL E12] > '”'
+ [CTRL E11] > ''
+ [CTRL E12] > ''
+ [CTRL K_K] > 'ء'
+ [CTRL K_D] > 'ذ'
+ [K_EQUAL] > '='
+ [SHIFT K_8] > '*'
+ [SHIFT K_7] > '&'
+ [SHIFT K_5] > '%'
+ [SHIFT K_4] > '$'
+ [SHIFT K_3] > '#'
+ [SHIFT K_2] > '@'
+ [SHIFT K_1] > '!'
+ [SHIFT K_N] > 'ں'
+ [K_BKSLASH] > '۔'
+ [K_LBRKT] > ']'
+ [K_RBRKT] > '['
+ [K_F] > 'َ'
+ [K_V] > 'ِ'
+ [K_X] > 'ش'
+ [SHIFT K_H] > 'ح'
+ [SHIFT K_G] > 'ص'
+ [SHIFT K_Y] > 'ي'
+ [CTRL K_0] > '۰'
+ [CTRL K_9] > '۹'
+ [CTRL K_8] > '۸'
+ [CTRL K_7] > '۷'
+ [CTRL K_6] > '۶'
+ [CTRL K_5] > '۵'
+ [CTRL K_4] > '۴'
+ [CTRL K_3] > '۳'
+ [CTRL K_2] > '۲'
+ [CTRL K_1] > '۱'
+ [K_SLASH] > '/'
+ [K_HYPHEN] > '-'
+ [SHIFT K_COLON] > ':'
+ [SHIFT K_QUOTE] > '"'
+ [K_QUOTE] > U+0027
+ [K_O] > 'ُ'
+ [SHIFT K_O] > 'ْ'
+ [K_BKQUOTE] > 'ء'
+ [SHIFT K_W] > 'أ'
+ [SHIFT K_P] > 'ّ'
+ [SHIFT K_BKQUOTE] > 'ٔ'
+ [SHIFT K_J] > 'ض'
+ [SHIFT K_9] > ')'
+ [SHIFT K_RBRKT] > '{'
+ [SHIFT K_LBRKT] > '}'
+ [SHIFT K_0] > '('
+ [SHIFT K_SLASH] > '؟'
+ [SHIFT K_K] > 'ع'
+ [SHIFT K_EQUAL] > '«'
+ [SHIFT K_HYPHEN] > '»'
+ [SHIFT K_I] > 'ً'
+ [SHIFT K_PERIOD] > ''
+ [SHIFT K_COMMA] > ''
+ [SHIFT K_L] > 'ـ'
+ [SHIFT K_U] > 'ۀ'
+ [SHIFT K_B] > 'ة'
+ [SHIFT K_M] > 'غ'
+ [SHIFT K_F] > 'ف'
+ [SHIFT K_E] > 'ۓ'
+ [SHIFT K_Q] > 'ق'
+ [K_0] > '0'
+ [K_9] > '9'
+ [K_8] > '8'
+ [K_7] > '7'
+ [K_6] > '6'
+ [K_5] > '5'
+ [K_4] > '4'
+ [K_3] > '3'
+ [K_2] > '2'
+ [K_1] > '1'
+ [K_I] > 'ێ'
+ [SHIFT K_D] > 'ڈ'
+ [K_G] > 'گ'
+ [K_U] > 'ۆ'
+ [SHIFT K_R] > 'ڑ'
+ [SHIFT K_6] > ''
+ [SHIFT K_T] > 'ٹ'
+ [SHIFT K_V] > 'ظ'
+ [SHIFT K_C] > 'ط'
+ [SHIFT K_X] > 'خ'
+ [SHIFT K_Z] > 'ژ'
+ [SHIFT K_S] > 'ث'
+ [SHIFT K_A] > 'آ'
+ [K_PERIOD] > '.'
+ [K_COMMA] > '،'
+ [K_M] > 'م'
+ [K_N] > 'ن'
+ [K_B] > 'ب'
+ [K_C] > 'چ'
+ [K_Z] > 'ز'
+ [K_P] > 'پ'
+ [K_Y] > 'ی'
+ [K_T] > 'ت'
+ [K_R] > 'ر'
+ [K_E] > 'ے'
+ [K_W] > 'و'
+ [K_Q] > 'ئ'
+ [K_COLON] > '؛'
+ [K_L] > 'ل'
+ [K_K] > 'ک'
+ [K_J] > 'ج'
+ [K_H] > 'ه'
+ [K_D] > 'د'
+ [K_S] > 'س'
+ [K_A] > 'ا'

View file

@ -0,0 +1,33 @@
c RegressionTest: Multiple groups and virtual keys
c Font: Arial Unicode MS
c Encoding: Unicode
c Description: Tests multiple groups and virtual keys -- bug Ixxx
c Procedure: Press A, Shift+2, A, Ctrl+2, A
c AutoProc: K_A S+ K_2 S- K_A C+ K_2 C- K_A
c FinalOutput: U+03B1 U+1FB0 U+1FB1
c ***** CERR_501FeatureOnly_Call 0x0000403E *************************
store(&VERSION) '3.0'
c *******************************************************************
NAME "AltGr Deadkeys Test"
begin Unicode > use(UMain) c Substitute UMain1 or UMain2
store(&MnemonicLayout) "1"
c ----------------------------------------------
c ***** CERR_60FeatureOnly_VirtualCharKey 0x00004044 ****************
group(UMain) using keys
+ ['a'] > U+03B1
+ [CTRL '2'] > deadkey(MacronBug)
+ [ALT '2'] > deadkey(MacronBug)
+ [SHIFT '2'] > deadkey(BreveBug)
c *******************************************************************
match > use(DK1)
c ----------------------------------------------
group(DK1)
deadkey(MacronBug) U+03B1 > U+1FB1 c won't work
deadkey(BreveBug) U+03B1 > U+1FB0 c works

View file

@ -0,0 +1,134 @@
store(&VERSION) '10.0'
c ***** CERR_VersionAlreadyIncluded 0x00004045 ******************************
store(&VERSION) '110.0'
c *******************************************************************
store(&NAME) 'Balochi Phonetic'
store(&TARGETS) 'any'
store(&KMW_RTL) '1'
store(&LAYOUTFILE) 'balochi_phonetic.keyman-touch-layout'
store(&KEYBOARDVERSION) '1.4.2'
store(&COPYRIGHT) '© 2017-2021 SIL International'
store(&MESSAGE) 'The Balochi Phonetic keyboard is distributed under The MIT License (MIT).'
store(&KMW_HELPTEXT) 'This is a phonetically organized Balochi keyboard.'
store(&VISUALKEYBOARD) 'balochi_phonetic.kvks'
store(&BITMAP) 'CERR__balochi_phonetic.ico'
begin Unicode > use(main)
group(main) using keys
+ [CTRL B08] > ''
+ [CTRL B09] > ''
+ [CTRL B10] > ''
+ [SHIFT CTRL E11] > '“'
+ [SHIFT CTRL E12] > '”'
+ [CTRL E11] > ''
+ [CTRL E12] > ''
+ [CTRL K_K] > 'ء'
+ [CTRL K_D] > 'ذ'
+ [K_EQUAL] > '='
+ [SHIFT K_8] > '*'
+ [SHIFT K_7] > '&'
+ [SHIFT K_5] > '%'
+ [SHIFT K_4] > '$'
+ [SHIFT K_3] > '#'
+ [SHIFT K_2] > '@'
+ [SHIFT K_1] > '!'
+ [SHIFT K_N] > 'ں'
+ [K_BKSLASH] > '۔'
+ [K_LBRKT] > ']'
+ [K_RBRKT] > '['
+ [K_F] > 'َ'
+ [K_V] > 'ِ'
+ [K_X] > 'ش'
+ [SHIFT K_H] > 'ح'
+ [SHIFT K_G] > 'ص'
+ [SHIFT K_Y] > 'ي'
+ [CTRL K_0] > '۰'
+ [CTRL K_9] > '۹'
+ [CTRL K_8] > '۸'
+ [CTRL K_7] > '۷'
+ [CTRL K_6] > '۶'
+ [CTRL K_5] > '۵'
+ [CTRL K_4] > '۴'
+ [CTRL K_3] > '۳'
+ [CTRL K_2] > '۲'
+ [CTRL K_1] > '۱'
+ [K_SLASH] > '/'
+ [K_HYPHEN] > '-'
+ [SHIFT K_COLON] > ':'
+ [SHIFT K_QUOTE] > '"'
+ [K_QUOTE] > U+0027
+ [K_O] > 'ُ'
+ [SHIFT K_O] > 'ْ'
+ [K_BKQUOTE] > 'ء'
+ [SHIFT K_W] > 'أ'
+ [SHIFT K_P] > 'ّ'
+ [SHIFT K_BKQUOTE] > 'ٔ'
+ [SHIFT K_J] > 'ض'
+ [SHIFT K_9] > ')'
+ [SHIFT K_RBRKT] > '{'
+ [SHIFT K_LBRKT] > '}'
+ [SHIFT K_0] > '('
+ [SHIFT K_SLASH] > '؟'
+ [SHIFT K_K] > 'ع'
+ [SHIFT K_EQUAL] > '«'
+ [SHIFT K_HYPHEN] > '»'
+ [SHIFT K_I] > 'ً'
+ [SHIFT K_PERIOD] > ''
+ [SHIFT K_COMMA] > ''
+ [SHIFT K_L] > 'ـ'
+ [SHIFT K_U] > 'ۀ'
+ [SHIFT K_B] > 'ة'
+ [SHIFT K_M] > 'غ'
+ [SHIFT K_F] > 'ف'
+ [SHIFT K_E] > 'ۓ'
+ [SHIFT K_Q] > 'ق'
+ [K_0] > '0'
+ [K_9] > '9'
+ [K_8] > '8'
+ [K_7] > '7'
+ [K_6] > '6'
+ [K_5] > '5'
+ [K_4] > '4'
+ [K_3] > '3'
+ [K_2] > '2'
+ [K_1] > '1'
+ [K_I] > 'ێ'
+ [SHIFT K_D] > 'ڈ'
+ [K_G] > 'گ'
+ [K_U] > 'ۆ'
+ [SHIFT K_R] > 'ڑ'
+ [SHIFT K_6] > ''
+ [SHIFT K_T] > 'ٹ'
+ [SHIFT K_V] > 'ظ'
+ [SHIFT K_C] > 'ط'
+ [SHIFT K_X] > 'خ'
+ [SHIFT K_Z] > 'ژ'
+ [SHIFT K_S] > 'ث'
+ [SHIFT K_A] > 'آ'
+ [K_PERIOD] > '.'
+ [K_COMMA] > '،'
+ [K_M] > 'م'
+ [K_N] > 'ن'
+ [K_B] > 'ب'
+ [K_C] > 'چ'
+ [K_Z] > 'ز'
+ [K_P] > 'پ'
+ [K_Y] > 'ی'
+ [K_T] > 'ت'
+ [K_R] > 'ر'
+ [K_E] > 'ے'
+ [K_W] > 'و'
+ [K_Q] > 'ئ'
+ [K_COLON] > '؛'
+ [K_L] > 'ل'
+ [K_K] > 'ک'
+ [K_J] > 'ج'
+ [K_H] > 'ه'
+ [K_D] > 'د'
+ [K_S] > 'س'
+ [K_A] > 'ا'

View file

@ -0,0 +1,130 @@
c ***** CERR_70FeatureOnly 0x00004046 ******************************
store(&VERSION) '4.0'
c ******************************************************************
store(&NAME) 'Balochi Phonetic'
store(&TARGETS) 'any'
store(&KMW_RTL) '1'
store(&LAYOUTFILE) 'balochi_phonetic.keyman-touch-layout'
store(&KEYBOARDVERSION) '1.4.2'
store(&COPYRIGHT) '© 2017-2021 SIL International'
store(&MESSAGE) 'The Balochi Phonetic keyboard is distributed under The MIT License (MIT).'
store(&KMW_HELPTEXT) 'This is a phonetically organized Balochi keyboard.'
store(&VISUALKEYBOARD) 'balochi_phonetic.kvks'
store(&BITMAP) 'CERR__balochi_phonetic.ico'
begin Unicode > use(main)
group(main) using keys
+ [CTRL B08] > ''
+ [CTRL B09] > ''
+ [CTRL B10] > ''
+ [SHIFT CTRL E11] > '“'
+ [SHIFT CTRL E12] > '”'
+ [CTRL E11] > ''
+ [CTRL E12] > ''
+ [CTRL K_K] > 'ء'
+ [CTRL K_D] > 'ذ'
+ [K_EQUAL] > '='
+ [SHIFT K_8] > '*'
+ [SHIFT K_7] > '&'
+ [SHIFT K_5] > '%'
+ [SHIFT K_4] > '$'
+ [SHIFT K_3] > '#'
+ [SHIFT K_2] > '@'
+ [SHIFT K_1] > '!'
+ [SHIFT K_N] > 'ں'
+ [K_BKSLASH] > '۔'
+ [K_LBRKT] > ']'
+ [K_RBRKT] > '['
+ [K_F] > 'َ'
+ [K_V] > 'ِ'
+ [K_X] > 'ش'
+ [SHIFT K_H] > 'ح'
+ [SHIFT K_G] > 'ص'
+ [SHIFT K_Y] > 'ي'
+ [CTRL K_0] > '۰'
+ [CTRL K_9] > '۹'
+ [CTRL K_8] > '۸'
+ [CTRL K_7] > '۷'
+ [CTRL K_6] > '۶'
+ [CTRL K_5] > '۵'
+ [CTRL K_4] > '۴'
+ [CTRL K_3] > '۳'
+ [CTRL K_2] > '۲'
+ [CTRL K_1] > '۱'
+ [K_SLASH] > '/'
+ [K_HYPHEN] > '-'
+ [SHIFT K_COLON] > ':'
+ [SHIFT K_QUOTE] > '"'
+ [K_QUOTE] > U+0027
+ [K_O] > 'ُ'
+ [SHIFT K_O] > 'ْ'
+ [K_BKQUOTE] > 'ء'
+ [SHIFT K_W] > 'أ'
+ [SHIFT K_P] > 'ّ'
+ [SHIFT K_BKQUOTE] > 'ٔ'
+ [SHIFT K_J] > 'ض'
+ [SHIFT K_9] > ')'
+ [SHIFT K_RBRKT] > '{'
+ [SHIFT K_LBRKT] > '}'
+ [SHIFT K_0] > '('
+ [SHIFT K_SLASH] > '؟'
+ [SHIFT K_K] > 'ع'
+ [SHIFT K_EQUAL] > '«'
+ [SHIFT K_HYPHEN] > '»'
+ [SHIFT K_I] > 'ً'
+ [SHIFT K_PERIOD] > ''
+ [SHIFT K_COMMA] > ''
+ [SHIFT K_L] > 'ـ'
+ [SHIFT K_U] > 'ۀ'
+ [SHIFT K_B] > 'ة'
+ [SHIFT K_M] > 'غ'
+ [SHIFT K_F] > 'ف'
+ [SHIFT K_E] > 'ۓ'
+ [SHIFT K_Q] > 'ق'
+ [K_0] > '0'
+ [K_9] > '9'
+ [K_8] > '8'
+ [K_7] > '7'
+ [K_6] > '6'
+ [K_5] > '5'
+ [K_4] > '4'
+ [K_3] > '3'
+ [K_2] > '2'
+ [K_1] > '1'
+ [K_I] > 'ێ'
+ [SHIFT K_D] > 'ڈ'
+ [K_G] > 'گ'
+ [K_U] > 'ۆ'
+ [SHIFT K_R] > 'ڑ'
+ [SHIFT K_6] > ''
+ [SHIFT K_T] > 'ٹ'
+ [SHIFT K_V] > 'ظ'
+ [SHIFT K_C] > 'ط'
+ [SHIFT K_X] > 'خ'
+ [SHIFT K_Z] > 'ژ'
+ [SHIFT K_S] > 'ث'
+ [SHIFT K_A] > 'آ'
+ [K_PERIOD] > '.'
+ [K_COMMA] > '،'
+ [K_M] > 'م'
+ [K_N] > 'ن'
+ [K_B] > 'ب'
+ [K_C] > 'چ'
+ [K_Z] > 'ز'
+ [K_P] > 'پ'
+ [K_Y] > 'ی'
+ [K_T] > 'ت'
+ [K_R] > 'ر'
+ [K_E] > 'ے'
+ [K_W] > 'و'
+ [K_Q] > 'ئ'
+ [K_COLON] > '؛'
+ [K_L] > 'ل'
+ [K_K] > 'ک'
+ [K_J] > 'ج'
+ [K_H] > 'ه'
+ [K_D] > 'د'
+ [K_S] > 'س'
+ [K_A] > 'ا'

View file

@ -0,0 +1,26 @@
store(&NAME) '022 - options with preset'
c Description: Tests basic option rules with a preset supplied
c keys: [K_A][K_1][K_A][K_0][K_A]
c expected: foo.foo.no foo.
c context:
c option: foo=1
c expected option: foo=0
c saved option: foo=0
c ***** CERR_80FeatureOnly 0x00004047 *******************************
store(&VERSION) '3.0'
c *******************************************************************
store(foo) '0'
begin Unicode > use(Main)
group(Main) using keys
if(foo = '1') + 'a' > 'foo.'
if(foo = '0') + 'a' > 'no foo.'
c ***** CERR_80FeatureOnly 0x00004047 *******************************
+ '1' > set(foo = '1') save(foo)
+ '0' > set(foo = '0') save(foo)
c *******************************************************************

View file

@ -0,0 +1,24 @@
store(&NAME) '022 - options with preset'
c Description: Tests basic option rules with a preset supplied
c keys: [K_A][K_1][K_A][K_0][K_A]
c expected: foo.foo.no foo.
c context:
c option: foo=1
c expected option: foo=0
c saved option: foo=0
store(&VERSION) '8.0'
store(foo) '0'
begin Unicode > use(Main)
group(Main) using keys
c ***** CERR_InvalidIf 0x00004049 ***********************************
if(foo '1') + 'a' > 'foo.'
c *******************************************************************
if(foo = '0') + 'a' > 'no foo.'
+ '1' > set(foo = '1') save(foo)
+ '0' > set(foo = '0') save(foo)

View file

@ -0,0 +1,23 @@
store(&NAME) '025 - options with reset'
c Description: Tests basic option rules with reset
c keys: [K_A][K_1][K_A][K_0][K_A][K_3]
c expected: foo.foo.no foo.
c context:
c option: foo=1
c expected option: foo=1
store(&version) '10.0'
store(foo) '0'
begin Unicode > use(Main)
group(Main) using keys
if(foo = '1') + 'a' > 'foo.'
if(foo = '0') + 'a' > 'no foo.'
+ '1' > set(foo = '1')
+ '0' > set(foo = '0')
c ***** CERR_InvalidReset 0x0000404A ********************************
+ '3' > reset
c *******************************************************************

View file

@ -0,0 +1,25 @@
store(&NAME) '025 - options with reset'
c Description: Tests basic option rules with reset
c keys: [K_A][K_1][K_A][K_0][K_A][K_3]
c expected: foo.foo.no foo.
c context:
c option: foo=1
c expected option: foo=1
store(&version) '10.0'
store(foo) '0'
begin Unicode > use(Main)
group(Main) using keys
if(foo = '1') + 'a' > 'foo.'
if(foo = '0') + 'a' > 'no foo.'
c ***** CERR_InvalidReset 0x0000404B ********************************
+ '1' > set(
+ '0' > set
c *******************************************************************
+ '3' > reset(foo)

View file

@ -0,0 +1,23 @@
store(&NAME) '023 - options with save'
c Description: Tests basic option rules with save
c keys: [K_A][K_1][K_A][K_0][K_A][K_2]
c expected: no foo.foo.no foo.
c context:
c expected option: foo=0
c saved option: foo=0
store(&version) '10.0'
store(foo) '0'
begin Unicode > use(Main)
group(Main) using keys
if(foo = '1') + 'a' > 'foo.'
if(foo = '0') + 'a' > 'no foo.'
+ '1' > set(foo = '1')
+ '0' > set(foo = '0')
c ***** CERR_InvalidSave 0x0000404C *********************************
+ '2' > save
c *******************************************************************

View file

@ -0,0 +1,130 @@
store(&VERSION) '10.0'
store(&NAME) 'Balochi Phonetic'
store(&TARGETS) 'any'
store(&KMW_RTL) '1'
store(&LAYOUTFILE) 'balochi_phonetic.keyman-touch-layout'
store(&KEYBOARDVERSION) '1.4.2'
store(&COPYRIGHT) '© 2017-2021 SIL International'
store(&MESSAGE) 'The Balochi Phonetic keyboard is distributed under The MIT License (MIT).'
store(&KMW_HELPTEXT) 'This is a phonetically organized Balochi keyboard.'
store(&VISUALKEYBOARD) 'balochi_phonetic.kvks'
store(&BITMAP) 'CERR__balochi_phonetic.ico'
c ***** CERR_InvalidEthnologueCode 0x0000404D **********************
store(&EthnologueCode) "xxxx"
c ******************************************************************
begin Unicode > use(main)
group(main) using keys
+ [CTRL B08] > ''
+ [CTRL B09] > ''
+ [CTRL B10] > ''
+ [SHIFT CTRL E11] > '“'
+ [SHIFT CTRL E12] > '”'
+ [CTRL E11] > ''
+ [CTRL E12] > ''
+ [CTRL K_K] > 'ء'
+ [CTRL K_D] > 'ذ'
+ [K_EQUAL] > '='
+ [SHIFT K_8] > '*'
+ [SHIFT K_7] > '&'
+ [SHIFT K_5] > '%'
+ [SHIFT K_4] > '$'
+ [SHIFT K_3] > '#'
+ [SHIFT K_2] > '@'
+ [SHIFT K_1] > '!'
+ [SHIFT K_N] > 'ں'
+ [K_BKSLASH] > '۔'
+ [K_LBRKT] > ']'
+ [K_RBRKT] > '['
+ [K_F] > 'َ'
+ [K_V] > 'ِ'
+ [K_X] > 'ش'
+ [SHIFT K_H] > 'ح'
+ [SHIFT K_G] > 'ص'
+ [SHIFT K_Y] > 'ي'
+ [CTRL K_0] > '۰'
+ [CTRL K_9] > '۹'
+ [CTRL K_8] > '۸'
+ [CTRL K_7] > '۷'
+ [CTRL K_6] > '۶'
+ [CTRL K_5] > '۵'
+ [CTRL K_4] > '۴'
+ [CTRL K_3] > '۳'
+ [CTRL K_2] > '۲'
+ [CTRL K_1] > '۱'
+ [K_SLASH] > '/'
+ [K_HYPHEN] > '-'
+ [SHIFT K_COLON] > ':'
+ [SHIFT K_QUOTE] > '"'
+ [K_QUOTE] > U+0027
+ [K_O] > 'ُ'
+ [SHIFT K_O] > 'ْ'
+ [K_BKQUOTE] > 'ء'
+ [SHIFT K_W] > 'أ'
+ [SHIFT K_P] > 'ّ'
+ [SHIFT K_BKQUOTE] > 'ٔ'
+ [SHIFT K_J] > 'ض'
+ [SHIFT K_9] > ')'
+ [SHIFT K_RBRKT] > '{'
+ [SHIFT K_LBRKT] > '}'
+ [SHIFT K_0] > '('
+ [SHIFT K_SLASH] > '؟'
+ [SHIFT K_K] > 'ع'
+ [SHIFT K_EQUAL] > '«'
+ [SHIFT K_HYPHEN] > '»'
+ [SHIFT K_I] > 'ً'
+ [SHIFT K_PERIOD] > ''
+ [SHIFT K_COMMA] > ''
+ [SHIFT K_L] > 'ـ'
+ [SHIFT K_U] > 'ۀ'
+ [SHIFT K_B] > 'ة'
+ [SHIFT K_M] > 'غ'
+ [SHIFT K_F] > 'ف'
+ [SHIFT K_E] > 'ۓ'
+ [SHIFT K_Q] > 'ق'
+ [K_0] > '0'
+ [K_9] > '9'
+ [K_8] > '8'
+ [K_7] > '7'
+ [K_6] > '6'
+ [K_5] > '5'
+ [K_4] > '4'
+ [K_3] > '3'
+ [K_2] > '2'
+ [K_1] > '1'
+ [K_I] > 'ێ'
+ [SHIFT K_D] > 'ڈ'
+ [K_G] > 'گ'
+ [K_U] > 'ۆ'
+ [SHIFT K_R] > 'ڑ'
+ [SHIFT K_6] > ''
+ [SHIFT K_T] > 'ٹ'
+ [SHIFT K_V] > 'ظ'
+ [SHIFT K_C] > 'ط'
+ [SHIFT K_X] > 'خ'
+ [SHIFT K_Z] > 'ژ'
+ [SHIFT K_S] > 'ث'
+ [SHIFT K_A] > 'آ'
+ [K_PERIOD] > '.'
+ [K_COMMA] > '،'
+ [K_M] > 'م'
+ [K_N] > 'ن'
+ [K_B] > 'ب'
+ [K_C] > 'چ'
+ [K_Z] > 'ز'
+ [K_P] > 'پ'
+ [K_Y] > 'ی'
+ [K_T] > 'ت'
+ [K_R] > 'ر'
+ [K_E] > 'ے'
+ [K_W] > 'و'
+ [K_Q] > 'ئ'
+ [K_COLON] > '؛'
+ [K_L] > 'ل'
+ [K_K] > 'ک'
+ [K_J] > 'ج'
+ [K_H] > 'ه'
+ [K_D] > 'د'
+ [K_S] > 'س'
+ [K_A] > 'ا'

View file

@ -0,0 +1,29 @@
store(&NAME) '026 - system stores'
c Description: Tests platform and baselayout system store rules
c keys: [K_1][K_2][K_3][K_4][K_A][K_B]
c expected: windows.desktop.hardware.native.en-US.kbdus.dll.
c context:
c (default) option: &platform=windows desktop hardware native <-- ignored by test
c (default) option: &baseLayout=kbdus.dll <-- ignored by test
c (default) option: &baseLayoutAlt=en-US <-- ignored by test
c ***** CERR_90FeatureOnly_IfSystemStores 0x0000404F ****************
store(&version) '3.0'
c *******************************************************************
store(digit) '1234567890'
store(letter) 'abcdefghij'
begin Unicode > use(Main)
group(Main) using keys
platform('windows') + '1' > 'windows.'
platform('desktop') + '2' > 'desktop.'
platform('hardware') + '3' > 'hardware.'
platform('native') + '4' > 'native.'
+ any(digit) > 'platform-fail.'
baselayout('en-US') + 'a' > 'en-US.'
baselayout('kbdus.dll') + 'b' > 'kbdus.dll.'
+ any(letter) > 'baselayout-fail.'

View file

@ -0,0 +1,130 @@
c ***** CERR_90FeatureOnlyLayoutFile 0x0000405C ********************
store(&VERSION) '4.0'
c ******************************************************************
store(&NAME) 'Balochi Phonetic'
store(&TARGETS) 'any'
store(&KMW_RTL) '1'
store(&LAYOUTFILE) 'balochi_phonetic.keyman-touch-layout'
store(&KEYBOARDVERSION) '1.4.2'
store(&COPYRIGHT) '© 2017-2021 SIL International'
store(&MESSAGE) 'The Balochi Phonetic keyboard is distributed under The MIT License (MIT).'
store(&KMW_HELPTEXT) 'This is a phonetically organized Balochi keyboard.'
store(&VISUALKEYBOARD) 'balochi_phonetic.kvks'
store(&BITMAP) 'CERR__balochi_phonetic.ico'
begin Unicode > use(main)
group(main) using keys
+ [CTRL B08] > ''
+ [CTRL B09] > ''
+ [CTRL B10] > ''
+ [SHIFT CTRL E11] > '“'
+ [SHIFT CTRL E12] > '”'
+ [CTRL E11] > ''
+ [CTRL E12] > ''
+ [CTRL K_K] > 'ء'
+ [CTRL K_D] > 'ذ'
+ [K_EQUAL] > '='
+ [SHIFT K_8] > '*'
+ [SHIFT K_7] > '&'
+ [SHIFT K_5] > '%'
+ [SHIFT K_4] > '$'
+ [SHIFT K_3] > '#'
+ [SHIFT K_2] > '@'
+ [SHIFT K_1] > '!'
+ [SHIFT K_N] > 'ں'
+ [K_BKSLASH] > '۔'
+ [K_LBRKT] > ']'
+ [K_RBRKT] > '['
+ [K_F] > 'َ'
+ [K_V] > 'ِ'
+ [K_X] > 'ش'
+ [SHIFT K_H] > 'ح'
+ [SHIFT K_G] > 'ص'
+ [SHIFT K_Y] > 'ي'
+ [CTRL K_0] > '۰'
+ [CTRL K_9] > '۹'
+ [CTRL K_8] > '۸'
+ [CTRL K_7] > '۷'
+ [CTRL K_6] > '۶'
+ [CTRL K_5] > '۵'
+ [CTRL K_4] > '۴'
+ [CTRL K_3] > '۳'
+ [CTRL K_2] > '۲'
+ [CTRL K_1] > '۱'
+ [K_SLASH] > '/'
+ [K_HYPHEN] > '-'
+ [SHIFT K_COLON] > ':'
+ [SHIFT K_QUOTE] > '"'
+ [K_QUOTE] > U+0027
+ [K_O] > 'ُ'
+ [SHIFT K_O] > 'ْ'
+ [K_BKQUOTE] > 'ء'
+ [SHIFT K_W] > 'أ'
+ [SHIFT K_P] > 'ّ'
+ [SHIFT K_BKQUOTE] > 'ٔ'
+ [SHIFT K_J] > 'ض'
+ [SHIFT K_9] > ')'
+ [SHIFT K_RBRKT] > '{'
+ [SHIFT K_LBRKT] > '}'
+ [SHIFT K_0] > '('
+ [SHIFT K_SLASH] > '؟'
+ [SHIFT K_K] > 'ع'
+ [SHIFT K_EQUAL] > '«'
+ [SHIFT K_HYPHEN] > '»'
+ [SHIFT K_I] > 'ً'
+ [SHIFT K_PERIOD] > ''
+ [SHIFT K_COMMA] > ''
+ [SHIFT K_L] > 'ـ'
+ [SHIFT K_U] > 'ۀ'
+ [SHIFT K_B] > 'ة'
+ [SHIFT K_M] > 'غ'
+ [SHIFT K_F] > 'ف'
+ [SHIFT K_E] > 'ۓ'
+ [SHIFT K_Q] > 'ق'
+ [K_0] > '0'
+ [K_9] > '9'
+ [K_8] > '8'
+ [K_7] > '7'
+ [K_6] > '6'
+ [K_5] > '5'
+ [K_4] > '4'
+ [K_3] > '3'
+ [K_2] > '2'
+ [K_1] > '1'
+ [K_I] > 'ێ'
+ [SHIFT K_D] > 'ڈ'
+ [K_G] > 'گ'
+ [K_U] > 'ۆ'
+ [SHIFT K_R] > 'ڑ'
+ [SHIFT K_6] > ''
+ [SHIFT K_T] > 'ٹ'
+ [SHIFT K_V] > 'ظ'
+ [SHIFT K_C] > 'ط'
+ [SHIFT K_X] > 'خ'
+ [SHIFT K_Z] > 'ژ'
+ [SHIFT K_S] > 'ث'
+ [SHIFT K_A] > 'آ'
+ [K_PERIOD] > '.'
+ [K_COMMA] > '،'
+ [K_M] > 'م'
+ [K_N] > 'ن'
+ [K_B] > 'ب'
+ [K_C] > 'چ'
+ [K_Z] > 'ز'
+ [K_P] > 'پ'
+ [K_Y] > 'ی'
+ [K_T] > 'ت'
+ [K_R] > 'ر'
+ [K_E] > 'ے'
+ [K_W] > 'و'
+ [K_Q] > 'ئ'
+ [K_COLON] > '؛'
+ [K_L] > 'ل'
+ [K_K] > 'ک'
+ [K_J] > 'ج'
+ [K_H] > 'ه'
+ [K_D] > 'د'
+ [K_S] > 'س'
+ [K_A] > 'ا'

View file

@ -0,0 +1,130 @@
c ***** CERR_90FeatureOnlyKeyboardVersion 0x0000405D ***************
store(&VERSION) '4.0'
c ******************************************************************
store(&NAME) 'Balochi Phonetic'
store(&TARGETS) 'any'
store(&KMW_RTL) '1'
store(&LAYOUTFILE) 'balochi_phonetic.keyman-touch-layout'
store(&KEYBOARDVERSION) '1.4.2'
store(&COPYRIGHT) '© 2017-2021 SIL International'
store(&MESSAGE) 'The Balochi Phonetic keyboard is distributed under The MIT License (MIT).'
store(&KMW_HELPTEXT) 'This is a phonetically organized Balochi keyboard.'
store(&VISUALKEYBOARD) 'balochi_phonetic.kvks'
store(&BITMAP) 'CERR__balochi_phonetic.ico'
begin Unicode > use(main)
group(main) using keys
+ [CTRL B08] > ''
+ [CTRL B09] > ''
+ [CTRL B10] > ''
+ [SHIFT CTRL E11] > '“'
+ [SHIFT CTRL E12] > '”'
+ [CTRL E11] > ''
+ [CTRL E12] > ''
+ [CTRL K_K] > 'ء'
+ [CTRL K_D] > 'ذ'
+ [K_EQUAL] > '='
+ [SHIFT K_8] > '*'
+ [SHIFT K_7] > '&'
+ [SHIFT K_5] > '%'
+ [SHIFT K_4] > '$'
+ [SHIFT K_3] > '#'
+ [SHIFT K_2] > '@'
+ [SHIFT K_1] > '!'
+ [SHIFT K_N] > 'ں'
+ [K_BKSLASH] > '۔'
+ [K_LBRKT] > ']'
+ [K_RBRKT] > '['
+ [K_F] > 'َ'
+ [K_V] > 'ِ'
+ [K_X] > 'ش'
+ [SHIFT K_H] > 'ح'
+ [SHIFT K_G] > 'ص'
+ [SHIFT K_Y] > 'ي'
+ [CTRL K_0] > '۰'
+ [CTRL K_9] > '۹'
+ [CTRL K_8] > '۸'
+ [CTRL K_7] > '۷'
+ [CTRL K_6] > '۶'
+ [CTRL K_5] > '۵'
+ [CTRL K_4] > '۴'
+ [CTRL K_3] > '۳'
+ [CTRL K_2] > '۲'
+ [CTRL K_1] > '۱'
+ [K_SLASH] > '/'
+ [K_HYPHEN] > '-'
+ [SHIFT K_COLON] > ':'
+ [SHIFT K_QUOTE] > '"'
+ [K_QUOTE] > U+0027
+ [K_O] > 'ُ'
+ [SHIFT K_O] > 'ْ'
+ [K_BKQUOTE] > 'ء'
+ [SHIFT K_W] > 'أ'
+ [SHIFT K_P] > 'ّ'
+ [SHIFT K_BKQUOTE] > 'ٔ'
+ [SHIFT K_J] > 'ض'
+ [SHIFT K_9] > ')'
+ [SHIFT K_RBRKT] > '{'
+ [SHIFT K_LBRKT] > '}'
+ [SHIFT K_0] > '('
+ [SHIFT K_SLASH] > '؟'
+ [SHIFT K_K] > 'ع'
+ [SHIFT K_EQUAL] > '«'
+ [SHIFT K_HYPHEN] > '»'
+ [SHIFT K_I] > 'ً'
+ [SHIFT K_PERIOD] > ''
+ [SHIFT K_COMMA] > ''
+ [SHIFT K_L] > 'ـ'
+ [SHIFT K_U] > 'ۀ'
+ [SHIFT K_B] > 'ة'
+ [SHIFT K_M] > 'غ'
+ [SHIFT K_F] > 'ف'
+ [SHIFT K_E] > 'ۓ'
+ [SHIFT K_Q] > 'ق'
+ [K_0] > '0'
+ [K_9] > '9'
+ [K_8] > '8'
+ [K_7] > '7'
+ [K_6] > '6'
+ [K_5] > '5'
+ [K_4] > '4'
+ [K_3] > '3'
+ [K_2] > '2'
+ [K_1] > '1'
+ [K_I] > 'ێ'
+ [SHIFT K_D] > 'ڈ'
+ [K_G] > 'گ'
+ [K_U] > 'ۆ'
+ [SHIFT K_R] > 'ڑ'
+ [SHIFT K_6] > ''
+ [SHIFT K_T] > 'ٹ'
+ [SHIFT K_V] > 'ظ'
+ [SHIFT K_C] > 'ط'
+ [SHIFT K_X] > 'خ'
+ [SHIFT K_Z] > 'ژ'
+ [SHIFT K_S] > 'ث'
+ [SHIFT K_A] > 'آ'
+ [K_PERIOD] > '.'
+ [K_COMMA] > '،'
+ [K_M] > 'م'
+ [K_N] > 'ن'
+ [K_B] > 'ب'
+ [K_C] > 'چ'
+ [K_Z] > 'ز'
+ [K_P] > 'پ'
+ [K_Y] > 'ی'
+ [K_T] > 'ت'
+ [K_R] > 'ر'
+ [K_E] > 'ے'
+ [K_W] > 'و'
+ [K_Q] > 'ئ'
+ [K_COLON] > '؛'
+ [K_L] > 'ل'
+ [K_K] > 'ک'
+ [K_J] > 'ج'
+ [K_H] > 'ه'
+ [K_D] > 'د'
+ [K_S] > 'س'
+ [K_A] > 'ا'

View file

@ -0,0 +1,130 @@
store(&VERSION) '10.0'
store(&NAME) 'Balochi Phonetic'
store(&TARGETS) 'any'
store(&KMW_RTL) '1'
store(&LAYOUTFILE) 'balochi_phonetic.keyman-touch-layout'
c ***** CERR_KeyboardVersionFormatInvalid 0x0000405E ***************
store(&KEYBOARDVERSION) 'abc'
c ******************************************************************
store(&COPYRIGHT) '© 2017-2021 SIL International'
store(&MESSAGE) 'The Balochi Phonetic keyboard is distributed under The MIT License (MIT).'
store(&KMW_HELPTEXT) 'This is a phonetically organized Balochi keyboard.'
store(&VISUALKEYBOARD) 'balochi_phonetic.kvks'
store(&BITMAP) 'CERR__balochi_phonetic.ico'
begin Unicode > use(main)
group(main) using keys
+ [CTRL B08] > ''
+ [CTRL B09] > ''
+ [CTRL B10] > ''
+ [SHIFT CTRL E11] > '“'
+ [SHIFT CTRL E12] > '”'
+ [CTRL E11] > ''
+ [CTRL E12] > ''
+ [CTRL K_K] > 'ء'
+ [CTRL K_D] > 'ذ'
+ [K_EQUAL] > '='
+ [SHIFT K_8] > '*'
+ [SHIFT K_7] > '&'
+ [SHIFT K_5] > '%'
+ [SHIFT K_4] > '$'
+ [SHIFT K_3] > '#'
+ [SHIFT K_2] > '@'
+ [SHIFT K_1] > '!'
+ [SHIFT K_N] > 'ں'
+ [K_BKSLASH] > '۔'
+ [K_LBRKT] > ']'
+ [K_RBRKT] > '['
+ [K_F] > 'َ'
+ [K_V] > 'ِ'
+ [K_X] > 'ش'
+ [SHIFT K_H] > 'ح'
+ [SHIFT K_G] > 'ص'
+ [SHIFT K_Y] > 'ي'
+ [CTRL K_0] > '۰'
+ [CTRL K_9] > '۹'
+ [CTRL K_8] > '۸'
+ [CTRL K_7] > '۷'
+ [CTRL K_6] > '۶'
+ [CTRL K_5] > '۵'
+ [CTRL K_4] > '۴'
+ [CTRL K_3] > '۳'
+ [CTRL K_2] > '۲'
+ [CTRL K_1] > '۱'
+ [K_SLASH] > '/'
+ [K_HYPHEN] > '-'
+ [SHIFT K_COLON] > ':'
+ [SHIFT K_QUOTE] > '"'
+ [K_QUOTE] > U+0027
+ [K_O] > 'ُ'
+ [SHIFT K_O] > 'ْ'
+ [K_BKQUOTE] > 'ء'
+ [SHIFT K_W] > 'أ'
+ [SHIFT K_P] > 'ّ'
+ [SHIFT K_BKQUOTE] > 'ٔ'
+ [SHIFT K_J] > 'ض'
+ [SHIFT K_9] > ')'
+ [SHIFT K_RBRKT] > '{'
+ [SHIFT K_LBRKT] > '}'
+ [SHIFT K_0] > '('
+ [SHIFT K_SLASH] > '؟'
+ [SHIFT K_K] > 'ع'
+ [SHIFT K_EQUAL] > '«'
+ [SHIFT K_HYPHEN] > '»'
+ [SHIFT K_I] > 'ً'
+ [SHIFT K_PERIOD] > ''
+ [SHIFT K_COMMA] > ''
+ [SHIFT K_L] > 'ـ'
+ [SHIFT K_U] > 'ۀ'
+ [SHIFT K_B] > 'ة'
+ [SHIFT K_M] > 'غ'
+ [SHIFT K_F] > 'ف'
+ [SHIFT K_E] > 'ۓ'
+ [SHIFT K_Q] > 'ق'
+ [K_0] > '0'
+ [K_9] > '9'
+ [K_8] > '8'
+ [K_7] > '7'
+ [K_6] > '6'
+ [K_5] > '5'
+ [K_4] > '4'
+ [K_3] > '3'
+ [K_2] > '2'
+ [K_1] > '1'
+ [K_I] > 'ێ'
+ [SHIFT K_D] > 'ڈ'
+ [K_G] > 'گ'
+ [K_U] > 'ۆ'
+ [SHIFT K_R] > 'ڑ'
+ [SHIFT K_6] > ''
+ [SHIFT K_T] > 'ٹ'
+ [SHIFT K_V] > 'ظ'
+ [SHIFT K_C] > 'ط'
+ [SHIFT K_X] > 'خ'
+ [SHIFT K_Z] > 'ژ'
+ [SHIFT K_S] > 'ث'
+ [SHIFT K_A] > 'آ'
+ [K_PERIOD] > '.'
+ [K_COMMA] > '،'
+ [K_M] > 'م'
+ [K_N] > 'ن'
+ [K_B] > 'ب'
+ [K_C] > 'چ'
+ [K_Z] > 'ز'
+ [K_P] > 'پ'
+ [K_Y] > 'ی'
+ [K_T] > 'ت'
+ [K_R] > 'ر'
+ [K_E] > 'ے'
+ [K_W] > 'و'
+ [K_Q] > 'ئ'
+ [K_COLON] > '؛'
+ [K_L] > 'ل'
+ [K_K] > 'ک'
+ [K_J] > 'ج'
+ [K_H] > 'ه'
+ [K_D] > 'د'
+ [K_S] > 'س'
+ [K_A] > 'ا'

View file

@ -0,0 +1,130 @@
store(&VERSION) '4.0'
store(&NAME) 'Balochi Phonetic'
store(&TARGETS) 'any'
store(&KMW_RTL) '1'
store(&LAYOUTFILE) 'balochi_phonetic.keyman-touch-layout'
store(&KEYBOARDVERSION) '1.4.2'
store(&COPYRIGHT) '© 2017-2021 SIL International'
store(&MESSAGE) 'The Balochi Phonetic keyboard is distributed under The MIT License (MIT).'
store(&KMW_HELPTEXT) 'This is a phonetically organized Balochi keyboard.'
store(&VISUALKEYBOARD) 'balochi_phonetic.kvks'
store(&BITMAP) 'CERR__balochi_phonetic.ico'
c ***** CERR_90FeatureOnlyEmbedCSS 0x00004060 **********************
store(&KMW_EMBEDCSS) 'naijatype.css'
c ******************************************************************
begin Unicode > use(main)
group(main) using keys
+ [CTRL B08] > ''
+ [CTRL B09] > ''
+ [CTRL B10] > ''
+ [SHIFT CTRL E11] > '“'
+ [SHIFT CTRL E12] > '”'
+ [CTRL E11] > ''
+ [CTRL E12] > ''
+ [CTRL K_K] > 'ء'
+ [CTRL K_D] > 'ذ'
+ [K_EQUAL] > '='
+ [SHIFT K_8] > '*'
+ [SHIFT K_7] > '&'
+ [SHIFT K_5] > '%'
+ [SHIFT K_4] > '$'
+ [SHIFT K_3] > '#'
+ [SHIFT K_2] > '@'
+ [SHIFT K_1] > '!'
+ [SHIFT K_N] > 'ں'
+ [K_BKSLASH] > '۔'
+ [K_LBRKT] > ']'
+ [K_RBRKT] > '['
+ [K_F] > 'َ'
+ [K_V] > 'ِ'
+ [K_X] > 'ش'
+ [SHIFT K_H] > 'ح'
+ [SHIFT K_G] > 'ص'
+ [SHIFT K_Y] > 'ي'
+ [CTRL K_0] > '۰'
+ [CTRL K_9] > '۹'
+ [CTRL K_8] > '۸'
+ [CTRL K_7] > '۷'
+ [CTRL K_6] > '۶'
+ [CTRL K_5] > '۵'
+ [CTRL K_4] > '۴'
+ [CTRL K_3] > '۳'
+ [CTRL K_2] > '۲'
+ [CTRL K_1] > '۱'
+ [K_SLASH] > '/'
+ [K_HYPHEN] > '-'
+ [SHIFT K_COLON] > ':'
+ [SHIFT K_QUOTE] > '"'
+ [K_QUOTE] > U+0027
+ [K_O] > 'ُ'
+ [SHIFT K_O] > 'ْ'
+ [K_BKQUOTE] > 'ء'
+ [SHIFT K_W] > 'أ'
+ [SHIFT K_P] > 'ّ'
+ [SHIFT K_BKQUOTE] > 'ٔ'
+ [SHIFT K_J] > 'ض'
+ [SHIFT K_9] > ')'
+ [SHIFT K_RBRKT] > '{'
+ [SHIFT K_LBRKT] > '}'
+ [SHIFT K_0] > '('
+ [SHIFT K_SLASH] > '؟'
+ [SHIFT K_K] > 'ع'
+ [SHIFT K_EQUAL] > '«'
+ [SHIFT K_HYPHEN] > '»'
+ [SHIFT K_I] > 'ً'
+ [SHIFT K_PERIOD] > ''
+ [SHIFT K_COMMA] > ''
+ [SHIFT K_L] > 'ـ'
+ [SHIFT K_U] > 'ۀ'
+ [SHIFT K_B] > 'ة'
+ [SHIFT K_M] > 'غ'
+ [SHIFT K_F] > 'ف'
+ [SHIFT K_E] > 'ۓ'
+ [SHIFT K_Q] > 'ق'
+ [K_0] > '0'
+ [K_9] > '9'
+ [K_8] > '8'
+ [K_7] > '7'
+ [K_6] > '6'
+ [K_5] > '5'
+ [K_4] > '4'
+ [K_3] > '3'
+ [K_2] > '2'
+ [K_1] > '1'
+ [K_I] > 'ێ'
+ [SHIFT K_D] > 'ڈ'
+ [K_G] > 'گ'
+ [K_U] > 'ۆ'
+ [SHIFT K_R] > 'ڑ'
+ [SHIFT K_6] > ''
+ [SHIFT K_T] > 'ٹ'
+ [SHIFT K_V] > 'ظ'
+ [SHIFT K_C] > 'ط'
+ [SHIFT K_X] > 'خ'
+ [SHIFT K_Z] > 'ژ'
+ [SHIFT K_S] > 'ث'
+ [SHIFT K_A] > 'آ'
+ [K_PERIOD] > '.'
+ [K_COMMA] > '،'
+ [K_M] > 'م'
+ [K_N] > 'ن'
+ [K_B] > 'ب'
+ [K_C] > 'چ'
+ [K_Z] > 'ز'
+ [K_P] > 'پ'
+ [K_Y] > 'ی'
+ [K_T] > 'ت'
+ [K_R] > 'ر'
+ [K_E] > 'ے'
+ [K_W] > 'و'
+ [K_Q] > 'ئ'
+ [K_COLON] > '؛'
+ [K_L] > 'ل'
+ [K_K] > 'ک'
+ [K_J] > 'ج'
+ [K_H] > 'ه'
+ [K_D] > 'د'
+ [K_S] > 'س'
+ [K_A] > 'ا'

View file

@ -0,0 +1,130 @@
c ***** CERR_90FeatureOnlyTargets 0x00004061 ***********************
store(&VERSION) '4.0'
c ******************************************************************
store(&NAME) 'Balochi Phonetic'
store(&TARGETS) 'any'
store(&KMW_RTL) '1'
store(&LAYOUTFILE) 'balochi_phonetic.keyman-touch-layout'
store(&KEYBOARDVERSION) '1.4.2'
store(&COPYRIGHT) '© 2017-2021 SIL International'
store(&MESSAGE) 'The Balochi Phonetic keyboard is distributed under The MIT License (MIT).'
store(&KMW_HELPTEXT) 'This is a phonetically organized Balochi keyboard.'
store(&VISUALKEYBOARD) 'balochi_phonetic.kvks'
store(&BITMAP) 'CERR__balochi_phonetic.ico'
begin Unicode > use(main)
group(main) using keys
+ [CTRL B08] > ''
+ [CTRL B09] > ''
+ [CTRL B10] > ''
+ [SHIFT CTRL E11] > '“'
+ [SHIFT CTRL E12] > '”'
+ [CTRL E11] > ''
+ [CTRL E12] > ''
+ [CTRL K_K] > 'ء'
+ [CTRL K_D] > 'ذ'
+ [K_EQUAL] > '='
+ [SHIFT K_8] > '*'
+ [SHIFT K_7] > '&'
+ [SHIFT K_5] > '%'
+ [SHIFT K_4] > '$'
+ [SHIFT K_3] > '#'
+ [SHIFT K_2] > '@'
+ [SHIFT K_1] > '!'
+ [SHIFT K_N] > 'ں'
+ [K_BKSLASH] > '۔'
+ [K_LBRKT] > ']'
+ [K_RBRKT] > '['
+ [K_F] > 'َ'
+ [K_V] > 'ِ'
+ [K_X] > 'ش'
+ [SHIFT K_H] > 'ح'
+ [SHIFT K_G] > 'ص'
+ [SHIFT K_Y] > 'ي'
+ [CTRL K_0] > '۰'
+ [CTRL K_9] > '۹'
+ [CTRL K_8] > '۸'
+ [CTRL K_7] > '۷'
+ [CTRL K_6] > '۶'
+ [CTRL K_5] > '۵'
+ [CTRL K_4] > '۴'
+ [CTRL K_3] > '۳'
+ [CTRL K_2] > '۲'
+ [CTRL K_1] > '۱'
+ [K_SLASH] > '/'
+ [K_HYPHEN] > '-'
+ [SHIFT K_COLON] > ':'
+ [SHIFT K_QUOTE] > '"'
+ [K_QUOTE] > U+0027
+ [K_O] > 'ُ'
+ [SHIFT K_O] > 'ْ'
+ [K_BKQUOTE] > 'ء'
+ [SHIFT K_W] > 'أ'
+ [SHIFT K_P] > 'ّ'
+ [SHIFT K_BKQUOTE] > 'ٔ'
+ [SHIFT K_J] > 'ض'
+ [SHIFT K_9] > ')'
+ [SHIFT K_RBRKT] > '{'
+ [SHIFT K_LBRKT] > '}'
+ [SHIFT K_0] > '('
+ [SHIFT K_SLASH] > '؟'
+ [SHIFT K_K] > 'ع'
+ [SHIFT K_EQUAL] > '«'
+ [SHIFT K_HYPHEN] > '»'
+ [SHIFT K_I] > 'ً'
+ [SHIFT K_PERIOD] > ''
+ [SHIFT K_COMMA] > ''
+ [SHIFT K_L] > 'ـ'
+ [SHIFT K_U] > 'ۀ'
+ [SHIFT K_B] > 'ة'
+ [SHIFT K_M] > 'غ'
+ [SHIFT K_F] > 'ف'
+ [SHIFT K_E] > 'ۓ'
+ [SHIFT K_Q] > 'ق'
+ [K_0] > '0'
+ [K_9] > '9'
+ [K_8] > '8'
+ [K_7] > '7'
+ [K_6] > '6'
+ [K_5] > '5'
+ [K_4] > '4'
+ [K_3] > '3'
+ [K_2] > '2'
+ [K_1] > '1'
+ [K_I] > 'ێ'
+ [SHIFT K_D] > 'ڈ'
+ [K_G] > 'گ'
+ [K_U] > 'ۆ'
+ [SHIFT K_R] > 'ڑ'
+ [SHIFT K_6] > ''
+ [SHIFT K_T] > 'ٹ'
+ [SHIFT K_V] > 'ظ'
+ [SHIFT K_C] > 'ط'
+ [SHIFT K_X] > 'خ'
+ [SHIFT K_Z] > 'ژ'
+ [SHIFT K_S] > 'ث'
+ [SHIFT K_A] > 'آ'
+ [K_PERIOD] > '.'
+ [K_COMMA] > '،'
+ [K_M] > 'م'
+ [K_N] > 'ن'
+ [K_B] > 'ب'
+ [K_C] > 'چ'
+ [K_Z] > 'ز'
+ [K_P] > 'پ'
+ [K_Y] > 'ی'
+ [K_T] > 'ت'
+ [K_R] > 'ر'
+ [K_E] > 'ے'
+ [K_W] > 'و'
+ [K_Q] > 'ئ'
+ [K_COLON] > '؛'
+ [K_L] > 'ل'
+ [K_K] > 'ک'
+ [K_J] > 'ج'
+ [K_H] > 'ه'
+ [K_D] > 'د'
+ [K_S] > 'س'
+ [K_A] > 'ا'

View file

@ -0,0 +1,22 @@
c caps_lock_layer_3620 generated from template at 2021-11-30 14:58:52
c with name "Caps Lock Layer 3620"
store(&VERSION) '10.0'
store(&NAME) 'Caps Lock Layer 3620'
store(&COPYRIGHT) '©'
store(&KEYBOARDVERSION) '1.0'
store(&TARGETS) 'any'
store(&VISUALKEYBOARD) 'caps_lock_layer_3620.kvks'
store(&LAYOUTFILE) 'caps_lock_layer_3620.keyman-touch-layout'
begin Unicode > use(main)
store(key) [K_A] .. [K_Z] [SHIFT K_A] .. [SHIFT K_Z]
c ***** CERR_ExpansionMustFollowCharacterOrVKey 0x00004064 **********
store(out) .. 'z' 'A' .. 'Z'
c *******************************************************************
store(&CasedKeys) [K_A] .. [K_Z]
group(main) using keys
+ any(key) > index(out, 1)

View file

@ -0,0 +1,34 @@
c This file tests that invalid expansions are caught
store(&NAME) 'Test Invalid Expansions'
begin Unicode > use(main)
group(main) using keys
c Backward ranges
store(char_range_backward) 'c' .. 'a'
store(key_range_backward) [K_E] .. [K_A]
store(char_range_empty) 'c' .. 'c'
store(key_range_empty) [K_E] .. [K_E]
c Incomplete ranges
store(range_open) ..
store(char_range_open_end) 'a' ..
store(char_range_open_start) .. 'z'
store(key_range_open_end) [K_A] ..
store(key_range_open_start) .. [K_Z]
c Inconsistent ranges
store(char_range_to_key) 'a' .. [K_Z]
store(key_range_to_char) [K_A] .. 'z'
store(char_range_to_statement) 'a' .. nul
store(key_range_to_statement) [K_A] .. nul
store(char_range_from_statement) nul .. 'a'
store(key_range_from_statement) nul .. [K_A]
store(key_range_shift_inconsistent) [SHIFT K_A] .. [K_Z]

View file

@ -0,0 +1,34 @@
c This file tests that invalid expansions are caught
store(&NAME) 'Test Invalid Expansions'
begin Unicode > use(main)
group(main) using keys
c Backward ranges
store(char_range_backward) 'c' .. 'a'
store(key_range_backward) [K_E] .. [K_A]
store(char_range_empty) 'c' .. 'c'
store(key_range_empty) [K_E] .. [K_E]
c Incomplete ranges
store(range_open) ..
store(char_range_open_end) 'a' ..
store(char_range_open_start) .. 'z'
store(key_range_open_end) [K_A] ..
store(key_range_open_start) .. [K_Z]
c Inconsistent ranges
store(char_range_to_key) 'a' .. [K_Z]
store(key_range_to_char) [K_A] .. 'z'
store(char_range_to_statement) 'a' .. nul
store(key_range_to_statement) [K_A] .. nul
store(char_range_from_statement) nul .. 'a'
store(key_range_from_statement) nul .. [K_A]
store(key_range_shift_inconsistent) [SHIFT K_A] .. [K_Z]

View file

@ -0,0 +1,34 @@
c This file tests that invalid expansions are caught
store(&NAME) 'Test Invalid Expansions'
begin Unicode > use(main)
group(main) using keys
c Backward ranges
store(char_range_backward) 'c' .. 'a'
store(key_range_backward) [K_E] .. [K_A]
store(char_range_empty) 'c' .. 'c'
store(key_range_empty) [K_E] .. [K_E]
c Incomplete ranges
store(range_open) ..
store(char_range_open_end) 'a' ..
store(char_range_open_start) .. 'z'
store(key_range_open_end) [K_A] ..
store(key_range_open_start) .. [K_Z]
c Inconsistent ranges
store(char_range_to_key) 'a' .. [K_Z]
store(key_range_to_char) [K_A] .. 'z'
store(char_range_to_statement) 'a' .. nul
store(key_range_to_statement) [K_A] .. nul
store(char_range_from_statement) nul .. 'a'
store(key_range_from_statement) nul .. [K_A]
store(key_range_shift_inconsistent) [SHIFT K_A] .. [K_Z]

View file

@ -0,0 +1,34 @@
c This file tests that invalid expansions are caught
store(&NAME) 'Test Invalid Expansions'
begin Unicode > use(main)
group(main) using keys
c Backward ranges
store(char_range_backward) 'c' .. 'a'
store(key_range_backward) [K_E] .. [K_A]
store(char_range_empty) 'c' .. 'c'
store(key_range_empty) [K_E] .. [K_E]
c Incomplete ranges
store(range_open) ..
store(char_range_open_end) 'a' ..
store(char_range_open_start) .. 'z'
store(key_range_open_end) [K_A] ..
store(key_range_open_start) .. [K_Z]
c Inconsistent ranges
store(char_range_to_key) 'a' .. [K_Z]
store(key_range_to_char) [K_A] .. 'z'
store(char_range_to_statement) 'a' .. nul
store(key_range_to_statement) [K_A] .. nul
store(char_range_from_statement) nul .. 'a'
store(key_range_from_statement) nul .. [K_A]
store(key_range_shift_inconsistent) [SHIFT K_A] .. [K_Z]

View file

@ -0,0 +1,10 @@
c Tests cased keys - invalid codes
store(&NAME) 'Test &CasedKeys'
begin Unicode > use(main)
group(main) using keys
store(&CasedKeys) U+1000
+ [K_A] > 'aaah'
+ [SHIFT K_A] > 'AAAH'

View file

@ -0,0 +1,10 @@
c Tests cased keys - invalid codes
store(&NAME) 'Test &CasedKeys'
begin Unicode > use(main)
group(main) using keys
store(&CasedKeys) [SHIFT K_1]
+ [K_A] > 'aaah'
+ [SHIFT K_A] > 'AAAH'

View file

@ -0,0 +1,11 @@
c Tests cased keys - invalid with mnemonic layout
store(&NAME) 'Test &CasedKeys'
store(&mnemoniclayout) '1'
begin Unicode > use(main)
group(main) using keys
store(&CasedKeys) [K_A] [K_E] [K_I] [K_O] [K_U] [K_1] .. [K_4]
+ [K_A] > 'aaah'
+ [SHIFT K_A] > 'AAAH'

View file

@ -0,0 +1,12 @@
c should fail to compile, readonly group uses() non-readonly group
begin Unicode > use(main)
group(main) using keys
group(foo) readonly
'a' > use(bar)
group(bar)

View file

@ -0,0 +1,11 @@
c Should fail to compile, `context` must be omitted or first statement in output
begin Unicode > use(main)
group(main) using keys
group(foo) readonly
'a' > use(bar) context
group(bar) readonly

View file

@ -0,0 +1,9 @@
c Should fail to compile, group is not readonly
begin Unicode > use(main)
begin NewContext > use(NewContext)
group(NewContext)
group(main) using keys

View file

@ -0,0 +1,8 @@
c Should fail to compile, group is not readonly
begin Unicode > use(main)
begin PostKeystroke > use(PostKeystroke)
group(PostKeystroke)
group(main) using keys

View file

@ -0,0 +1,131 @@
store(&VERSION) '10.0'
store(&NAME) 'Balochi Phonetic'
store(&TARGETS) 'any'
store(&KMW_RTL) '1'
store(&LAYOUTFILE) 'balochi_phonetic.keyman-touch-layout'
store(&KEYBOARDVERSION) '1.4.2'
store(&COPYRIGHT) '© 2017-2021 SIL International'
store(&MESSAGE) 'The Balochi Phonetic keyboard is distributed under The MIT License (MIT).'
store(&KMW_HELPTEXT) 'This is a phonetically organized Balochi keyboard.'
store(&VISUALKEYBOARD) 'balochi_phonetic.kvks'
store(&BITMAP) 'CERR__balochi_phonetic.ico'
begin Unicode > use(main)
c ***** CERR_DuplicateGroup 0x00004071 ******************************
group(main) using keys
c *******************************************************************
group(main) using keys
+ [CTRL B08] > ''
+ [CTRL B09] > ''
+ [CTRL B10] > ''
+ [SHIFT CTRL E11] > '“'
+ [SHIFT CTRL E12] > '”'
+ [CTRL E11] > ''
+ [CTRL E12] > ''
+ [CTRL K_K] > 'ء'
+ [CTRL K_D] > 'ذ'
+ [K_EQUAL] > '='
+ [SHIFT K_8] > '*'
+ [SHIFT K_7] > '&'
+ [SHIFT K_5] > '%'
+ [SHIFT K_4] > '$'
+ [SHIFT K_3] > '#'
+ [SHIFT K_2] > '@'
+ [SHIFT K_1] > '!'
+ [SHIFT K_N] > 'ں'
+ [K_BKSLASH] > '۔'
+ [K_LBRKT] > ']'
+ [K_RBRKT] > '['
+ [K_F] > 'َ'
+ [K_V] > 'ِ'
+ [K_X] > 'ش'
+ [SHIFT K_H] > 'ح'
+ [SHIFT K_G] > 'ص'
+ [SHIFT K_Y] > 'ي'
+ [CTRL K_0] > '۰'
+ [CTRL K_9] > '۹'
+ [CTRL K_8] > '۸'
+ [CTRL K_7] > '۷'
+ [CTRL K_6] > '۶'
+ [CTRL K_5] > '۵'
+ [CTRL K_4] > '۴'
+ [CTRL K_3] > '۳'
+ [CTRL K_2] > '۲'
+ [CTRL K_1] > '۱'
+ [K_SLASH] > '/'
+ [K_HYPHEN] > '-'
+ [SHIFT K_COLON] > ':'
+ [SHIFT K_QUOTE] > '"'
+ [K_QUOTE] > U+0027
+ [K_O] > 'ُ'
+ [SHIFT K_O] > 'ْ'
+ [K_BKQUOTE] > 'ء'
+ [SHIFT K_W] > 'أ'
+ [SHIFT K_P] > 'ّ'
+ [SHIFT K_BKQUOTE] > 'ٔ'
+ [SHIFT K_J] > 'ض'
+ [SHIFT K_9] > ')'
+ [SHIFT K_RBRKT] > '{'
+ [SHIFT K_LBRKT] > '}'
+ [SHIFT K_0] > '('
+ [SHIFT K_SLASH] > '؟'
+ [SHIFT K_K] > 'ع'
+ [SHIFT K_EQUAL] > '«'
+ [SHIFT K_HYPHEN] > '»'
+ [SHIFT K_I] > 'ً'
+ [SHIFT K_PERIOD] > ''
+ [SHIFT K_COMMA] > ''
+ [SHIFT K_L] > 'ـ'
+ [SHIFT K_U] > 'ۀ'
+ [SHIFT K_B] > 'ة'
+ [SHIFT K_M] > 'غ'
+ [SHIFT K_F] > 'ف'
+ [SHIFT K_E] > 'ۓ'
+ [SHIFT K_Q] > 'ق'
+ [K_0] > '0'
+ [K_9] > '9'
+ [K_8] > '8'
+ [K_7] > '7'
+ [K_6] > '6'
+ [K_5] > '5'
+ [K_4] > '4'
+ [K_3] > '3'
+ [K_2] > '2'
+ [K_1] > '1'
+ [K_I] > 'ێ'
+ [SHIFT K_D] > 'ڈ'
+ [K_G] > 'گ'
+ [K_U] > 'ۆ'
+ [SHIFT K_R] > 'ڑ'
+ [SHIFT K_6] > ''
+ [SHIFT K_T] > 'ٹ'
+ [SHIFT K_V] > 'ظ'
+ [SHIFT K_C] > 'ط'
+ [SHIFT K_X] > 'خ'
+ [SHIFT K_Z] > 'ژ'
+ [SHIFT K_S] > 'ث'
+ [SHIFT K_A] > 'آ'
+ [K_PERIOD] > '.'
+ [K_COMMA] > '،'
+ [K_M] > 'م'
+ [K_N] > 'ن'
+ [K_B] > 'ب'
+ [K_C] > 'چ'
+ [K_Z] > 'ز'
+ [K_P] > 'پ'
+ [K_Y] > 'ی'
+ [K_T] > 'ت'
+ [K_R] > 'ر'
+ [K_E] > 'ے'
+ [K_W] > 'و'
+ [K_Q] > 'ئ'
+ [K_COLON] > '؛'
+ [K_L] > 'ل'
+ [K_K] > 'ک'
+ [K_J] > 'ج'
+ [K_H] > 'ه'
+ [K_D] > 'د'
+ [K_S] > 'س'
+ [K_A] > 'ا'

View file

@ -0,0 +1,133 @@
store(&VERSION) '10.0'
store(&NAME) 'Balochi Phonetic'
store(&TARGETS) 'any'
store(&KMW_RTL) '1'
store(&LAYOUTFILE) 'balochi_phonetic.keyman-touch-layout'
store(&KEYBOARDVERSION) '1.4.2'
store(&COPYRIGHT) '© 2017-2021 SIL International'
c ***** DuplicateStore 0x00004072 ***********************************
store(&COPYRIGHT) '© ABC'
c *******************************************************************
store(&MESSAGE) 'The Balochi Phonetic keyboard is distributed under The MIT License (MIT).'
store(&KMW_HELPTEXT) 'This is a phonetically organized Balochi keyboard.'
store(&VISUALKEYBOARD) 'balochi_phonetic.kvks'
store(&BITMAP) 'CERR__balochi_phonetic.ico'
begin Unicode > use(main)
group(main) using keys
+ [CTRL B08] > ''
+ [CTRL B09] > ''
+ [CTRL B10] > ''
+ [SHIFT CTRL E11] > '“'
+ [SHIFT CTRL E12] > '”'
+ [CTRL E11] > ''
+ [CTRL E12] > ''
+ [CTRL K_K] > 'ء'
+ [CTRL K_D] > 'ذ'
+ [K_EQUAL] > '='
+ [SHIFT K_8] > '*'
+ [SHIFT K_7] > '&'
+ [SHIFT K_5] > '%'
+ [SHIFT K_4] > '$'
+ [SHIFT K_3] > '#'
+ [SHIFT K_2] > '@'
+ [SHIFT K_1] > '!'
+ [SHIFT K_N] > 'ں'
+ [K_BKSLASH] > '۔'
+ [K_LBRKT] > ']'
+ [K_RBRKT] > '['
+ [K_F] > 'َ'
+ [K_V] > 'ِ'
+ [K_X] > 'ش'
+ [SHIFT K_H] > 'ح'
+ [SHIFT K_G] > 'ص'
+ [SHIFT K_Y] > 'ي'
+ [CTRL K_0] > '۰'
+ [CTRL K_9] > '۹'
+ [CTRL K_8] > '۸'
+ [CTRL K_7] > '۷'
+ [CTRL K_6] > '۶'
+ [CTRL K_5] > '۵'
+ [CTRL K_4] > '۴'
+ [CTRL K_3] > '۳'
+ [CTRL K_2] > '۲'
+ [CTRL K_1] > '۱'
+ [K_SLASH] > '/'
+ [K_HYPHEN] > '-'
+ [SHIFT K_COLON] > ':'
+ [SHIFT K_QUOTE] > '"'
+ [K_QUOTE] > U+0027
+ [K_O] > 'ُ'
+ [SHIFT K_O] > 'ْ'
+ [K_BKQUOTE] > 'ء'
+ [SHIFT K_W] > 'أ'
+ [SHIFT K_P] > 'ّ'
+ [SHIFT K_BKQUOTE] > 'ٔ'
+ [SHIFT K_J] > 'ض'
+ [SHIFT K_9] > ')'
+ [SHIFT K_RBRKT] > '{'
+ [SHIFT K_LBRKT] > '}'
+ [SHIFT K_0] > '('
+ [SHIFT K_SLASH] > '؟'
+ [SHIFT K_K] > 'ع'
+ [SHIFT K_EQUAL] > '«'
+ [SHIFT K_HYPHEN] > '»'
+ [SHIFT K_I] > 'ً'
+ [SHIFT K_PERIOD] > ''
+ [SHIFT K_COMMA] > ''
+ [SHIFT K_L] > 'ـ'
+ [SHIFT K_U] > 'ۀ'
+ [SHIFT K_B] > 'ة'
+ [SHIFT K_M] > 'غ'
+ [SHIFT K_F] > 'ف'
+ [SHIFT K_E] > 'ۓ'
+ [SHIFT K_Q] > 'ق'
+ [K_0] > '0'
+ [K_9] > '9'
+ [K_8] > '8'
+ [K_7] > '7'
+ [K_6] > '6'
+ [K_5] > '5'
+ [K_4] > '4'
+ [K_3] > '3'
+ [K_2] > '2'
+ [K_1] > '1'
+ [K_I] > 'ێ'
+ [SHIFT K_D] > 'ڈ'
+ [K_G] > 'گ'
+ [K_U] > 'ۆ'
+ [SHIFT K_R] > 'ڑ'
+ [SHIFT K_6] > ''
+ [SHIFT K_T] > 'ٹ'
+ [SHIFT K_V] > 'ظ'
+ [SHIFT K_C] > 'ط'
+ [SHIFT K_X] > 'خ'
+ [SHIFT K_Z] > 'ژ'
+ [SHIFT K_S] > 'ث'
+ [SHIFT K_A] > 'آ'
+ [K_PERIOD] > '.'
+ [K_COMMA] > '،'
+ [K_M] > 'م'
+ [K_N] > 'ن'
+ [K_B] > 'ب'
+ [K_C] > 'چ'
+ [K_Z] > 'ز'
+ [K_P] > 'پ'
+ [K_Y] > 'ی'
+ [K_T] > 'ت'
+ [K_R] > 'ر'
+ [K_E] > 'ے'
+ [K_W] > 'و'
+ [K_Q] > 'ئ'
+ [K_COLON] > '؛'
+ [K_L] > 'ل'
+ [K_K] > 'ک'
+ [K_J] > 'ج'
+ [K_H] > 'ه'
+ [K_D] > 'د'
+ [K_S] > 'س'
+ [K_A] > 'ا'

View file

@ -0,0 +1,132 @@
store(&VERSION) '10.0'
store(&NAME) 'Balochi Phonetic'
store(&TARGETS) 'any'
store(&KMW_RTL) '1'
store(&LAYOUTFILE) 'balochi_phonetic.keyman-touch-layout'
store(&KEYBOARDVERSION) '1.4.2'
store(&COPYRIGHT) '© 2017-2021 SIL International'
store(&MESSAGE) 'The Balochi Phonetic keyboard is distributed under The MIT License (MIT).'
store(&KMW_HELPTEXT) 'This is a phonetically organized Balochi keyboard.'
store(&VISUALKEYBOARD) 'balochi_phonetic.kvks'
store(&BITMAP) 'CERR__balochi_phonetic.ico'
begin Unicode > use(main)
c ***** CERR_RepeatedBegin 0x00004073 *******************************
begin Unicode > use(main)
c *******************************************************************
group(main) using keys
+ [CTRL B08] > ''
+ [CTRL B09] > ''
+ [CTRL B10] > ''
+ [SHIFT CTRL E11] > '“'
+ [SHIFT CTRL E12] > '”'
+ [CTRL E11] > ''
+ [CTRL E12] > ''
+ [CTRL K_K] > 'ء'
+ [CTRL K_D] > 'ذ'
+ [K_EQUAL] > '='
+ [SHIFT K_8] > '*'
+ [SHIFT K_7] > '&'
+ [SHIFT K_5] > '%'
+ [SHIFT K_4] > '$'
+ [SHIFT K_3] > '#'
+ [SHIFT K_2] > '@'
+ [SHIFT K_1] > '!'
+ [SHIFT K_N] > 'ں'
+ [K_BKSLASH] > '۔'
+ [K_LBRKT] > ']'
+ [K_RBRKT] > '['
+ [K_F] > 'َ'
+ [K_V] > 'ِ'
+ [K_X] > 'ش'
+ [SHIFT K_H] > 'ح'
+ [SHIFT K_G] > 'ص'
+ [SHIFT K_Y] > 'ي'
+ [CTRL K_0] > '۰'
+ [CTRL K_9] > '۹'
+ [CTRL K_8] > '۸'
+ [CTRL K_7] > '۷'
+ [CTRL K_6] > '۶'
+ [CTRL K_5] > '۵'
+ [CTRL K_4] > '۴'
+ [CTRL K_3] > '۳'
+ [CTRL K_2] > '۲'
+ [CTRL K_1] > '۱'
+ [K_SLASH] > '/'
+ [K_HYPHEN] > '-'
+ [SHIFT K_COLON] > ':'
+ [SHIFT K_QUOTE] > '"'
+ [K_QUOTE] > U+0027
+ [K_O] > 'ُ'
+ [SHIFT K_O] > 'ْ'
+ [K_BKQUOTE] > 'ء'
+ [SHIFT K_W] > 'أ'
+ [SHIFT K_P] > 'ّ'
+ [SHIFT K_BKQUOTE] > 'ٔ'
+ [SHIFT K_J] > 'ض'
+ [SHIFT K_9] > ')'
+ [SHIFT K_RBRKT] > '{'
+ [SHIFT K_LBRKT] > '}'
+ [SHIFT K_0] > '('
+ [SHIFT K_SLASH] > '؟'
+ [SHIFT K_K] > 'ع'
+ [SHIFT K_EQUAL] > '«'
+ [SHIFT K_HYPHEN] > '»'
+ [SHIFT K_I] > 'ً'
+ [SHIFT K_PERIOD] > ''
+ [SHIFT K_COMMA] > ''
+ [SHIFT K_L] > 'ـ'
+ [SHIFT K_U] > 'ۀ'
+ [SHIFT K_B] > 'ة'
+ [SHIFT K_M] > 'غ'
+ [SHIFT K_F] > 'ف'
+ [SHIFT K_E] > 'ۓ'
+ [SHIFT K_Q] > 'ق'
+ [K_0] > '0'
+ [K_9] > '9'
+ [K_8] > '8'
+ [K_7] > '7'
+ [K_6] > '6'
+ [K_5] > '5'
+ [K_4] > '4'
+ [K_3] > '3'
+ [K_2] > '2'
+ [K_1] > '1'
+ [K_I] > 'ێ'
+ [SHIFT K_D] > 'ڈ'
+ [K_G] > 'گ'
+ [K_U] > 'ۆ'
+ [SHIFT K_R] > 'ڑ'
+ [SHIFT K_6] > ''
+ [SHIFT K_T] > 'ٹ'
+ [SHIFT K_V] > 'ظ'
+ [SHIFT K_C] > 'ط'
+ [SHIFT K_X] > 'خ'
+ [SHIFT K_Z] > 'ژ'
+ [SHIFT K_S] > 'ث'
+ [SHIFT K_A] > 'آ'
+ [K_PERIOD] > '.'
+ [K_COMMA] > '،'
+ [K_M] > 'م'
+ [K_N] > 'ن'
+ [K_B] > 'ب'
+ [K_C] > 'چ'
+ [K_Z] > 'ز'
+ [K_P] > 'پ'
+ [K_Y] > 'ی'
+ [K_T] > 'ت'
+ [K_R] > 'ر'
+ [K_E] > 'ے'
+ [K_W] > 'و'
+ [K_Q] > 'ئ'
+ [K_COLON] > '؛'
+ [K_L] > 'ل'
+ [K_K] > 'ک'
+ [K_J] > 'ج'
+ [K_H] > 'ه'
+ [K_D] > 'د'
+ [K_S] > 'س'
+ [K_A] > 'ا'

View file

@ -0,0 +1,7 @@
c This file tests absurdly long expansions
store(&NAME) 'Test Expansions'
begin Unicode > use(main)
group(main) using keys
store(schar_range) U+0020 .. U+10FFFF

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -12,6 +12,7 @@
#define KEYMAN_VersionWin "$VersionWin"
#define KEYMAN_VersionWin_W L"$VersionWin"
#define KEYMAN_VersionWin_W16 u"$VersionWin"
#define KEYMAN_VersionRelease "$VersionRelease"
#define KEYMAN_VersionRelease_W L"$VersionRelease"

View file

@ -346,6 +346,7 @@ static_assert(sizeof(COMP_STORE) == KEYBOARDFILESTORE_SIZE, "COMP_STORE must be
struct COMP_KEY {
WORD Key;
WORD _reserved;
DWORD Line;
DWORD ShiftFlags;
DWORD dpOutput;
@ -404,9 +405,18 @@ typedef COMP_STORE *PCOMP_STORE;
typedef COMP_KEY *PCOMP_KEY;
typedef COMP_GROUP *PCOMP_GROUP;
typedef struct _COMPILER_OPTIONS {
DWORD dwSize;
BOOL ShouldAddCompilerVersion;
BOOL UseKmcmpLib;
} COMPILER_OPTIONS;
typedef COMPILER_OPTIONS *PCOMPILER_OPTIONS;
typedef int (CALLBACK *CompilerMessageProc)(int line, DWORD dwMsgCode, LPSTR szText);
extern "C" BOOL __declspec(dllexport) CompileKeyboardFile(PSTR pszInfile, PSTR pszOutfile, BOOL FSaveDebug, BOOL ACompilerWarningsAsErrors, BOOL AWarnDeprecatedCode, CompilerMessageProc pMsgProc); // I4865 // I4866
//extern "C" BOOL __declspec(dllexport) CompileKeyboardFile(PSTR pszInfile, PSTR pszOutfile, BOOL FSaveDebug, BOOL ACompilerWarningsAsErrors, BOOL AWarnDeprecatedCode, CompilerMessageProc pMsgProc); // I4865 // I4866
#endif // _COMPILER_H

View file

@ -1,4 +1,12 @@
#pragma once
extern PCWSTR VKeyNames[256];
extern PCWSTR VKeyISO9995Names[256];
#ifdef USE_CHAR16_T
#include <km_types.h>
#define VKEY_CHAR KMX_UCHAR
#else
#define VKEY_CHAR WCHAR
#define lpuch(x) L ## x
#endif
extern const VKEY_CHAR* VKeyNames[256];
extern const VKEY_CHAR* VKeyISO9995Names[256];

View file

@ -17,10 +17,9 @@
*/
#include "pch.h"
#include "../include/vkeys.h"
#define lpuch(x) L ## x
PCWSTR VKeyNames[256] = {
const VKEY_CHAR* VKeyNames[256] = {
// Key Codes
lpuch("K_?00"), // &H0
lpuch("K_LBUTTON"), // &H1
@ -292,7 +291,7 @@ PCWSTR VKeyNames[256] = {
lpuch("K_?FF") // &HFF
};
PCWSTR VKeyISO9995Names[256] = {
const VKEY_CHAR* VKeyISO9995Names[256] = {
// Key Codes
lpuch(""), // lpuch("K_?00"), // &H0
lpuch(""), // lpuch("K_LBUTTON"), // &H1

View file

@ -393,6 +393,8 @@ const
SRegValue_IDEOptAutoSaveBeforeCompiling = 'auto save before compiling'; // CU
SRegValue_IDEOptOSKAutoSaveBeforeImporting = 'osk auto save before importing'; // CU
SRegValue_IDEOptUseLegacyCompiler = 'use legacy compiler'; // CU
// Note: keeping 'web host port' reg value name to ensure settings maintained
// from version 14.0 and earlier of Keyman Developer. Other values are
// new with Keyman Developer 15.0

3
core/.gitignore vendored
View file

@ -1,6 +1,7 @@
.vs/
build/
configure/
resources/
# cross-compile for meson wasm, built from wasm.build.<platform>.in
wasm.build
@ -10,8 +11,6 @@ TIER.md
VERSION.md
shellHelperFunctions.sh
src/rust/keyman_keyboard_processor/target/
# The following files/subdirs are generated by autotools when building ibus-keyman.
# They can be removed after we convert ibus-keyman to use meson.
.deps/

View file

@ -121,6 +121,14 @@ builder_describe_outputs \
build:arch /core/build/arch/$CONFIGURATION/src/libkmnkbp0.a \
build:wasm /core/build/wasm/$CONFIGURATION/src/libkmnkbp0.a
# Import our standard compiler defines; this is copied from
# /resources/build/meson/standard.meson.build by build.sh, because meson doesn't
# allow us to reference a file outside its root
if builder_has_action configure; then
mkdir -p "$THIS_SCRIPT_PATH/resources"
cp "$KEYMAN_ROOT/resources/build/meson/standard.meson.build" "$THIS_SCRIPT_PATH/resources/meson.build"
fi
# Iterate through all possible targets; note that targets that cannot be built
# on the current platform have already been excluded through the archtargets
# settings above

View file

@ -14,27 +14,19 @@ project('keyboardprocessor', 'cpp', 'c',
'warning_level=2'],
meson_version: '>=0.53.0')
compiler = meson.get_compiler('cpp')
# Import our standard compiler defines; this is copied from
# /resources/build/standard.meson.build by build.sh, because
# meson doesn't allow us to reference a file outside its root
subdir('resources')
lib_version = '0.0.0'
py = import('python')
python = py.find_installation()
# Once we can assume meson 0.60 we can delete this
# (https://mesonbuild.com/Release-notes-for-0-60-0.html#msvc-compiler-now-assumes-utf8-source-code-by-default)
if compiler.get_id() == 'msvc'
add_global_arguments('/source-charset:utf-8', language: ['c', 'cpp'])
endif
message('host_machine.system(): ' + host_machine.system())
message('compiler.get_id(): ' + compiler.get_id())
cc = meson.get_compiler('c')
# TODO: Shared includes may use namespaces, etc which need future tidyup.
# For now, we use KMN_KBP to inject the km::kbp::kmx namespace
defns = ['-DKMN_KBP']
defns += ['-DKMN_KBP']
# #define DEBUG when we are on a debug build
if get_option('buildtype') == 'debug'

View file

@ -4,58 +4,21 @@
# Authors: Tim Eves (TSE)
#
defns += ['-DKMN_KBP_EXPORTING']
version_res = []
if compiler.get_id() == 'gcc' or compiler.get_id() == 'clang'
warns = [
'-Wctor-dtor-privacy',
'-Wdouble-promotion',
'-Wendif-labels',
'-Wno-unknown-pragmas',
'-Wno-missing-field-initializers',
'-Wnon-virtual-dtor',
'-Wshadow'
]
flags = [
'-fvisibility=hidden',
'-fvisibility-inlines-hidden'
]
links = []
if compiler.get_id() == 'clang'
warns += [
'-Wimplicit-fallthrough',
'-Wno-double-promotion',
'-Wshorten-64-to-32'
]
endif
if host_machine.system() == 'darwin'
warns += ['-Wno-ctor-dtor-privacy', '-Wno-non-virtual-dtor']
endif
endif
if compiler.get_id() == 'msvc'
warns = []
flags = []
defns += [
'-D_SCL_SECURE_NO_WARNINGS',
'-D_CRT_SECURE_NO_WARNINGS',
'-DUNICODE'
]
links = []
# TODO: shouldn't this be defined only for dylib and not static lib?
defns += ['-DKMN_KBP_EXPORTING']
if cpp_compiler.get_id() == 'msvc'
defns += ['-DUNICODE']
# /n = append null
# /c65001 = utf-8 file format
version_res += import('windows').compile_resources('version.rc', args:['/n','/c65001'])
endif
if compiler.get_id() == 'emscripten'
warns = []
flags = []
defns = ['-DKMN_KBP']
links = []
if cpp_compiler.get_id() == 'emscripten'
# TODO: why do we need this defn here?
defns += ['-DKMN_KBP']
endif
kmx_files = files(

View file

@ -1,4 +1,6 @@
if compiler.get_id() == 'gcc' or compiler.get_id() == 'clang' or compiler.get_id() == 'emscripten'
# TODO -- why are these differing from the standard.meson.build flags?
if cpp_compiler.get_id() == 'gcc' or cpp_compiler.get_id() == 'clang' or cpp_compiler.get_id() == 'emscripten'
warns = [
'-Wno-missing-field-initializers',
'-Wno-unused-parameter'

View file

@ -22,7 +22,7 @@ if get_option('keyman_core_tests')
if get_option('default_library') != 'static'
ctypes_void_p_size = ['-c', 'import ctypes; print(ctypes.sizeof(ctypes.c_void_p))']
r = run_command(python, ctypes_void_p_size)
python_ctypes_compatible = r.stdout().to_int() == compiler.sizeof('void *')
python_ctypes_compatible = r.stdout().to_int() == cpp_compiler.sizeof('void *')
if not python_ctypes_compatible
message('Python ctypes is incompatible with built shared object. Disabling some tests.')
endif

View file

@ -4,7 +4,7 @@
# Authors: Tim Eves (TSE)
#
if compiler.get_id() == 'emscripten'
if cpp_compiler.get_id() == 'emscripten'
tests_flags = ['-lnodefs.js']
else
tests_flags = []

View file

@ -312,11 +312,11 @@ void test_store_offsets() {
km_kbp_state_debug_item{KM_KBP_DEBUG_BEGIN, KM_KBP_DEBUG_FLAG_UNICODE, {KM_KBP_VKEY_B, 0, 'b'}},
km_kbp_state_debug_item{KM_KBP_DEBUG_GROUP_ENTER, 0, {}, {u"", &gp}},
// store_offsets: 6 = store #, 1 = index into store, 6 = store #, 0 = index into store
// store_offsets: 5 = store #, 1 = index into store, 6 = store #, 0 = index into store
// store: store(diaeresisBase) 'ae'
// context: exay
km_kbp_state_debug_item{KM_KBP_DEBUG_RULE_ENTER, 0, {}, {u"exay", &gp, &kpb, {6, 1, 6, 0, 0xFFFF}}},
km_kbp_state_debug_item{KM_KBP_DEBUG_RULE_EXIT, 0, {}, {u"exay", &gp, &kpb, {6, 1, 6, 0, 0xFFFF}, 6}},
km_kbp_state_debug_item{KM_KBP_DEBUG_RULE_ENTER, 0, {}, {u"exay", &gp, &kpb, {5, 1, 5, 0, 0xFFFF}}},
km_kbp_state_debug_item{KM_KBP_DEBUG_RULE_EXIT, 0, {}, {u"exay", &gp, &kpb, {5, 1, 5, 0, 0xFFFF}, 6}},
km_kbp_state_debug_item{KM_KBP_DEBUG_GROUP_EXIT, 0, {}, {u"", &gp, nullptr, {}, 6}},
km_kbp_state_debug_item{KM_KBP_DEBUG_END, 0, {}, {u"", nullptr, nullptr, {}, 6}},

View file

@ -4,7 +4,8 @@
# Authors: Tim Eves (TSE)
#
if compiler.get_id() == 'gcc' or compiler.get_id() == 'clang' or compiler.get_id() == 'emscripten'
# TODO -- why are these differing from the standard.meson.build flags?
if cpp_compiler.get_id() == 'gcc' or cpp_compiler.get_id() == 'clang' or cpp_compiler.get_id() == 'emscripten'
warns = [
'-Wno-missing-field-initializers',
'-Wno-unused-parameter'
@ -13,7 +14,7 @@ else
warns = []
endif
defns+=['-DKMN_KBP_STATIC']
local_defns = ['-DKMN_KBP_STATIC']
tests = [
['context-api', 'context_api.cpp'],
['keyboard-api', 'keyboard_api.cpp'],
@ -24,7 +25,7 @@ tests = [
['kmx_context', 'test_kmx_context.cpp'],
]
if compiler.get_id() == 'emscripten'
if cpp_compiler.get_id() == 'emscripten'
tests_flags = ['--embed-file', join_paths(meson.current_source_dir(),'..','kmx','@/')]
source_path = '/'
test_path = '/'
@ -36,7 +37,7 @@ endif
foreach t : tests
bin = executable(t[0], t[1],
cpp_args: defns + warns,
cpp_args: local_defns + defns + warns,
include_directories: [inc, libsrc],
link_args: links + tests_flags,
objects: lib.extract_all_objects(recursive: false))

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show more