mirror of
https://github.com/keymanapp/keyman.git
synced 2026-10-06 14:07:32 +00:00
Full Developer KMW compilation update complete.
This commit is contained in:
parent
310df0cf89
commit
1f558e08d3
7 changed files with 230 additions and 515 deletions
|
|
@ -2,7 +2,7 @@
|
|||
"keyboard": {
|
||||
"id": "test_deadkeys",
|
||||
"name": "Keyman Deadkey Stress-Tester",
|
||||
"filename": "resources/keyboards/temp_test_deadkeys_hand.js",
|
||||
"filename": "resources/keyboards/test_deadkeys.js",
|
||||
"languages": {}
|
||||
},
|
||||
"inputTestSets": [
|
||||
|
|
|
|||
|
|
@ -1,10 +0,0 @@
|
|||
{
|
||||
"id": "test_deadkeys",
|
||||
"name":"Keyman Deadkey Stress-Tester",
|
||||
"languages":{
|
||||
"id":"en",
|
||||
"name": "English",
|
||||
"region": "World"
|
||||
},
|
||||
"filename":"resources/keyboards/temp_test_deadkeys_hand.js"
|
||||
}
|
||||
|
|
@ -1,377 +0,0 @@
|
|||
|
||||
KeymanWeb.KR(new Keyboard_test_deadkeys());
|
||||
|
||||
function Keyboard_test_deadkeys()
|
||||
{
|
||||
|
||||
this.KI="Keyboard_test_deadkeys";
|
||||
this.KN="Keyman Deadkey Stress-Tester";
|
||||
this.KMINVER="10.0";
|
||||
this.KV={F:' 1em "Arial"',K102:0};
|
||||
this.KDU=0;
|
||||
this.KLS={
|
||||
|
||||
};
|
||||
this.KV.BK=(function(x){
|
||||
var
|
||||
empty=Array.apply(null, Array(65)).map(String.prototype.valueOf,""),
|
||||
result=[], v, i,
|
||||
modifiers=['default','shift','ctrl','shift-ctrl','alt','shift-alt','ctrl-alt','shift-ctrl-alt'];
|
||||
for(i=modifiers.length-1;i>=0;i--) {
|
||||
v = x[modifiers[i]];
|
||||
if(v || result.length > 0) {
|
||||
result=(v ? v : empty).slice().concat(result);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
})(this.KLS);
|
||||
this.KH='';
|
||||
this.KM=0;
|
||||
this.KBVER="1.0";
|
||||
this.KMBM=0x0010;
|
||||
this.s_deadnums=[{d:0},{d:1},{d:2},{d:3},{d:4},{d:5},{d:6},{d:7},{d:8},{d:9}];
|
||||
this.s_livenums="0123456789";
|
||||
this.s_liveQwerty="qwerty";
|
||||
this.s_deadQwerty=[{d:10},{d:11},{d:12},{d:13},{d:14},{d:15}];
|
||||
this.KVER="10.0.1014.0";
|
||||
this.gs=function(t,e) {
|
||||
return this.g_main(t,e);
|
||||
};
|
||||
this.g_main=function(t,e) {
|
||||
var k=KeymanWeb,r=0,m=0;
|
||||
if(k.KKM(e, 0x4000, 0xBE)&&k.KFCM(7,t,['(','o',')',{t:'d',d:18},'(','o',')'])) { // Line 51
|
||||
r=m=1;
|
||||
k.KDC(7,t);
|
||||
k.KO(0,t,"dk(o)");
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0xBE)&&k.KFCM(4,t,[{t:'d',d:18},'(','m',')'])) { // Line 45
|
||||
r=m=1;
|
||||
k.KDC(4,t);
|
||||
k.KO(0,t,"dk(m)");
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0xBE)&&k.KFCM(4,t,['(','n',')',{t:'d',d:18}])) { // Line 48
|
||||
r=m=1;
|
||||
k.KDC(4,t);
|
||||
k.KO(0,t,"dk(n)");
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0xBE)&&k.KFCM(2,t,[{t:'d',d:16},{t:'d',d:17}])) { // Line 40
|
||||
r=m=1;
|
||||
k.KDC(2,t);
|
||||
k.KO(0,t,"(a)-(s)");
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0xBE)&&k.KFCM(2,t,[{t:'d',d:17},{t:'d',d:16}])) { // Line 41
|
||||
r=m=1;
|
||||
k.KDC(2,t);
|
||||
k.KO(0,t,"(s)+(a)");
|
||||
}
|
||||
// ---- START: Unsure where Developer would place these lines, which are fully handwritten. ---- //
|
||||
else if(k.KKM(e, 0x4000, 0xBE)&&k.KFCM(3,t,['?',{t:'a',a:this.s_deadQwerty},{t:'c',c:2}])) { // Line 78
|
||||
r=m=1;
|
||||
k.KDC(3,t);
|
||||
k.KO(0,t,'(');
|
||||
k.KIO(0,this.s_liveQwerty,2,t);
|
||||
k.KIO(0,this.s_liveQwerty,2,t);
|
||||
k.KO(0,t,')');
|
||||
}
|
||||
else if(k.KKM(e, 0x4010, 0x31)&&k.KFCM(1,t,[{t:'a',a:this.s_liveQwerty}])) { // Line 77
|
||||
r=m=1;
|
||||
k.KDC(3,t);
|
||||
k.KO(0,t,'?');
|
||||
k.KIO(0,this.s_deadQwerty,1,t);
|
||||
k.KIO(0,this.s_deadQwerty,1,t);
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0xBE)&&k.KFCM(1,t,[{t:'a',a:this.s_deadnums}])) { // Line 76
|
||||
r=m=1;
|
||||
k.KDC(1,t);
|
||||
k.KO(0,t,'#');
|
||||
k.KIO(0,this.s_livenums,1,t);
|
||||
}
|
||||
// ---- END: Unsure where Developer would place these lines, which are fully handwritten. ---- //
|
||||
else if(k.KKM(e, 0x4000, 0x30)) { // Line 64
|
||||
r=m=1;
|
||||
k.KDO(0,t,0);
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x31)) { // Line 65
|
||||
r=m=1;
|
||||
k.KDO(0,t,1);
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x32)) { // Line 66
|
||||
r=m=1;
|
||||
k.KDO(0,t,2);
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x33)) { // Line 67
|
||||
r=m=1;
|
||||
k.KDO(0,t,3);
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x34)) { // Line 68
|
||||
r=m=1;
|
||||
k.KDO(0,t,4);
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x35)) { // Line 69
|
||||
r=m=1;
|
||||
k.KDO(0,t,5);
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x36)) { // Line 70
|
||||
r=m=1;
|
||||
k.KDO(0,t,6);
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x37)) { // Line 71
|
||||
r=m=1;
|
||||
k.KDO(0,t,7);
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x38)) { // Line 72
|
||||
r=m=1;
|
||||
k.KDO(0,t,8);
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x39)) { // Line 73
|
||||
r=m=1;
|
||||
k.KDO(0,t,9);
|
||||
}
|
||||
else if(k.KKM(e, 0x4010, 0xBF)) { // Line 125
|
||||
r=m=1;
|
||||
k.KO(0,t,"ab > (a)(b) tests basic deadkey\rb > (b) only matches if \"a\" not pressed first\rbb > (b)+(b) Missing deadkey does not trigger match.\rbab > (b)+(a)+(b) deadkey at end of context\rac > x tests basic deadkey\rade > (a)(d)(e) deadkey at start of context\rfade > (f)-(a)-(d)-(e) deadkey in middle of context\ras. > (a)-(s) defined deadkey order (1/2)\rsa. > (s)+(a) defined deadkey order (2/2)\rm. > dk(m) deadkey output then letters\rn. > dk(n) letters output then deadkey\ro. > dk(o) letters, deadkey, letters\rpqr > (p)(q)(r) deadkey, unmatched, letters\rPQR > (P)(Q)(R) deadkey, deadkey, match, match\r12bb > success deadkey reordering (with the following)\r21bb > success \r21b > dead2 \r34bb > success \r43bb > success \rABCDE > success deadkey output before match(group) rule\r1. > #1 deadkey matched by any\rq! > ? same as above, with extra deadkey output.\rq!. > (qq) deadkey matched by context() in context\r\r");
|
||||
}
|
||||
else if(k.KKM(e, 0x4010, 0x41)) { // Line 93
|
||||
r=m=1;
|
||||
k.KDO(0,t,16);
|
||||
}
|
||||
else if(k.KKM(e, 0x4010, 0x42)&&k.KFCM(1, t, [{t:'d',d:16}])) { // Line 94
|
||||
r=m=1;
|
||||
k.KDC(1,t);
|
||||
k.KO(0,t,"ab");
|
||||
k.KDO(-1,t,21);
|
||||
}
|
||||
else if(k.KKM(e, 0x4010, 0x43)&&k.KFCM(1, t, [{t:'d',d:22}])) { // Line 95
|
||||
r=m=1;
|
||||
k.KDC(1,t);
|
||||
k.KO(0,t,"abc");
|
||||
}
|
||||
else if(k.KKM(e, 0x4010, 0x44)&&k.KFCM(3,t,['a','b','c'])) { // Line 92
|
||||
r=m=1;
|
||||
k.KDC(3,t);
|
||||
k.KO(0,t,"$abc$d");
|
||||
}
|
||||
else if(k.KKM(e, 0x4010, 0x45)&&k.KFCM(4,t,['a','b',{t:'d',d:23},'d'])) { // Line 96
|
||||
r=m=1;
|
||||
k.KDC(4,t);
|
||||
k.KO(0,t,"success");
|
||||
}
|
||||
else if(k.KKM(e, 0x4010, 0x50)) { // Line 58
|
||||
r=m=1;
|
||||
k.KDO(0,t,20);
|
||||
k.KDO(-1,t,20);
|
||||
k.KO(-1,t,"(P)");
|
||||
}
|
||||
else if(k.KKM(e, 0x4010, 0x51)&&k.KFCM(4,t,[{t:'d',d:20},'(','P',')'])) { // Line 59
|
||||
r=m=1;
|
||||
k.KDC(4,t);
|
||||
k.KO(0,t,"(P)(Q)");
|
||||
}
|
||||
else if(k.KKM(e, 0x4010, 0x52)&&k.KFCM(8,t,[{t:'d',d:20},{t:'d',d:20},'(','P',')','(','Q',')'])) { // Line 61
|
||||
r=m=1;
|
||||
k.KDC(8,t);
|
||||
k.KO(0,t,"ERROR");
|
||||
}
|
||||
else if(k.KKM(e, 0x4010, 0x52)&&k.KFCM(7,t,[{t:'d',d:20},'(','P',')','(','Q',')'])) { // Line 60
|
||||
r=m=1;
|
||||
k.KDC(7,t);
|
||||
k.KO(0,t,"(P)(Q)(R)");
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x41)) { // Line 18
|
||||
r=m=1;
|
||||
k.KDO(0,t,16);
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x42)&&k.KFCM(6,t,[{t:'d',d:2},'d','e','a','d','1'])) { // Line 84
|
||||
r=m=1;
|
||||
k.KDC(6,t);
|
||||
k.KO(0,t,"ERROR");
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x42)&&k.KFCM(6,t,[{t:'d',d:1},'d','e','a','d','2'])) { // Line 85
|
||||
r=m=1;
|
||||
k.KDC(6,t);
|
||||
k.KO(0,t,"success");
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x42)&&k.KFCM(6,t,[{t:'d',d:4},'d','e','a','d','3'])) { // Line 89
|
||||
r=m=1;
|
||||
k.KDC(6,t);
|
||||
k.KO(0,t,"success");
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x42)&&k.KFCM(6,t,[{t:'d',d:3},'d','e','a','d','4'])) { // Line 90
|
||||
r=m=1;
|
||||
k.KDC(6,t);
|
||||
k.KO(0,t,"ERROR");
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x42)&&k.KFCM(4,t,['(','b',')',{t:'d',d:16}])) { // Line 24
|
||||
r=m=1;
|
||||
k.KDC(4,t);
|
||||
k.KO(0,t,"(b)+(a)+(b)");
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x42)&&k.KFCM(3,t,['(','b',')'])) { // Line 23
|
||||
r=m=1;
|
||||
k.KDC(3,t);
|
||||
k.KO(0,t,"(b)+(b)");
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x42)&&k.KFCM(1, t, [{t:'d',d:16}])) { // Line 19
|
||||
r=m=1;
|
||||
k.KDC(1,t);
|
||||
k.KO(0,t,"(a)(b)");
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x42)&&k.KFCM(1, t, [{t:'d',d:2}])) { // Line 82
|
||||
r=m=1;
|
||||
k.KDC(1,t);
|
||||
k.KO(0,t,"dead2");
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x42)&&k.KFCM(1, t, [{t:'d',d:1}])) { // Line 83
|
||||
r=m=1;
|
||||
k.KDC(1,t);
|
||||
k.KO(0,t,"dead1");
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x42)&&k.KFCM(1, t, [{t:'d',d:4}])) { // Line 87
|
||||
r=m=1;
|
||||
k.KDC(1,t);
|
||||
k.KO(0,t,"dead4");
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x42)&&k.KFCM(1, t, [{t:'d',d:3}])) { // Line 88
|
||||
r=m=1;
|
||||
k.KDC(1,t);
|
||||
k.KO(0,t,"dead3");
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x42)) { // Line 20
|
||||
r=m=1;
|
||||
k.KO(0,t,"(b)");
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x43)&&k.KFCM(1, t, [{t:'d',d:16}])) { // Line 27
|
||||
r=m=1;
|
||||
k.KDC(1,t);
|
||||
k.KO(0,t,"x");
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x44)) { // Line 30
|
||||
r=m=1;
|
||||
k.KO(0,t,"d");
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x45)&&k.KFCM(3,t,['f',{t:'d',d:16},'d'])) { // Line 35
|
||||
r=m=1;
|
||||
k.KDC(3,t);
|
||||
k.KO(0,t,"(f)-(a)-(d)-(e)");
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x45)&&k.KFCM(2,t,[{t:'d',d:16},'d'])) { // Line 34
|
||||
r=m=1;
|
||||
k.KDC(2,t);
|
||||
k.KO(0,t,"(a)(d)(e)");
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x46)) { // Line 31
|
||||
r=m=1;
|
||||
k.KO(0,t,"f");
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x4D)) { // Line 44
|
||||
r=m=1;
|
||||
k.KDO(0,t,18);
|
||||
k.KO(-1,t,"(m)");
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x4E)) { // Line 47
|
||||
r=m=1;
|
||||
k.KO(0,t,"(n)");
|
||||
k.KDO(-1,t,18);
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x4F)) { // Line 50
|
||||
r=m=1;
|
||||
k.KO(0,t,"(o)");
|
||||
k.KDO(-1,t,18);
|
||||
k.KO(-1,t,"(o)");
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x50)) { // Line 54
|
||||
r=m=1;
|
||||
k.KDO(0,t,19);
|
||||
k.KDO(-1,t,10);
|
||||
k.KO(-1,t,"(p)");
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x51)&&k.KFCM(4,t,[{t:'d',d:10},'(','p',')'])) { // Line 55
|
||||
r=m=1;
|
||||
k.KDC(4,t);
|
||||
k.KO(0,t,"(p)(q)");
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x52)&&k.KFCM(7,t,[{t:'d',d:19},'(','p',')','(','q',')'])) { // Line 56
|
||||
r=m=1;
|
||||
k.KDC(7,t);
|
||||
k.KO(0,t,"(p)(q)(r)");
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x53)) { // Line 38
|
||||
r=m=1;
|
||||
k.KDO(0,t,17);
|
||||
}
|
||||
if(m) {
|
||||
|
||||
r=this.g_dead_reorder(t,e);
|
||||
}
|
||||
if(!m&&k.KIK(e)) {
|
||||
r=1;
|
||||
r=this.g_qwerty_out(t,e);
|
||||
}
|
||||
return r;
|
||||
};
|
||||
this.g_dead_reorder=function(t,e) {
|
||||
var k=KeymanWeb,r=1,m=0;
|
||||
if(k.KFCM(6,t,['$','a','b','c','$','d'])) { // Line 134
|
||||
m=1;
|
||||
k.KDC(6,t);
|
||||
k.KO(0,t,"ab");
|
||||
k.KDO(-1,t,23);
|
||||
k.KO(-1,t,"d");
|
||||
}
|
||||
else if(k.KFCM(3,t,['a','b',{t:'d',d:21}])) { // Line 133
|
||||
m=1;
|
||||
k.KDC(3,t);
|
||||
k.KDO(0,t,22);
|
||||
}
|
||||
else if(k.KFCM(2,t,[{t:'d',d:2},{t:'d',d:1}])) { // Line 130
|
||||
m=1;
|
||||
k.KDC(2,t);
|
||||
k.KDO(0,t,1);
|
||||
k.KDO(-1,t,2);
|
||||
}
|
||||
else if(k.KFCM(2,t,[{t:'d',d:3},{t:'d',d:4}])) { // Line 131
|
||||
m=1;
|
||||
k.KDC(2,t);
|
||||
k.KDO(0,t,4);
|
||||
k.KDO(-1,t,3);
|
||||
}
|
||||
else if(k.KFCM(2,t,[{t:'a',a:this.s_deadnums},{t:'i',i:{o:1,s:this.s_deadnums}}])) { // Line 138
|
||||
m=1;
|
||||
k.KDC(2,t);
|
||||
k.KO(0,t,'(');
|
||||
k.KIO(0,this.s_livenums,1,t);
|
||||
k.KO(0,t,')(');
|
||||
k.KIO(0,this.s_livenums,1,t);
|
||||
k.KO(0,t,')');
|
||||
}
|
||||
return r;
|
||||
};
|
||||
this.g_qwerty_out=function(t,e) {
|
||||
var k=KeymanWeb,r=0,m=0;
|
||||
if(k.KKM(e, 0x4000, 0x45)) { // Line 145
|
||||
r=m=1;
|
||||
k.KO(0,t,"e");
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x51)) { // Line 143
|
||||
r=m=1;
|
||||
k.KO(0,t,"q");
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x52)) { // Line 146
|
||||
r=m=1;
|
||||
k.KO(0,t,"r");
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x54)) { // Line 147
|
||||
r=m=1;
|
||||
k.KO(0,t,"t");
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x57)) { // Line 144
|
||||
r=m=1;
|
||||
k.KO(0,t,"w");
|
||||
}
|
||||
else if(k.KKM(e, 0x4000, 0x59)) { // Line 148
|
||||
r=m=1;
|
||||
k.KO(0,t,"y");
|
||||
}
|
||||
return r;
|
||||
};
|
||||
}
|
||||
|
|
@ -34,284 +34,376 @@ function Keyboard_test_deadkeys()
|
|||
this.KM=0;
|
||||
this.KBVER="1.0";
|
||||
this.KMBM=modCodes.SHIFT /* 0x0010 */;
|
||||
this.s_deadnums="..........";
|
||||
this.s_deadnums=[{d:0},{d:1},{d:2},{d:3},{d:4},{d:5},{d:6},{d:7},{d:8},{d:9}];
|
||||
this.s_livenums="0123456789";
|
||||
this.s_liveQwerty="qwerty";
|
||||
this.s_deadQwerty="......";
|
||||
this.KVER="10.0.1014.0";
|
||||
this.s_deadQwerty=[{d:10},{d:11},{d:12},{d:13},{d:14},{d:15}];
|
||||
this.KVER="10.0.700.0";
|
||||
this.gs=function(t,e) {
|
||||
return this.g_main(t,e);
|
||||
};
|
||||
this.g_main=function(t,e) {
|
||||
var k=KeymanWeb,r=0,m=0;
|
||||
if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_PERIOD /* 0xBE */)&&k.KCM(6,t,"(o)",3)&&k.KDM(3,t,18)&&k.KCM(3,t,"(o)",3)) { // Line 52
|
||||
if(k.KKM(e, modCodes.SHIFT | modCodes.VIRTUAL_KEY /* 0x4010 */, keyCodes.K_1 /* 0x31 */)&&k.KFCM(1,t,[{t:'a',a:this.s_liveQwerty}])) { // Line 77
|
||||
r=m=1;
|
||||
k.KO(6,t,"dk(o)");
|
||||
k.KDC(1,t);
|
||||
k.KO(-1,t,"?");
|
||||
k.KIO(-1,this.s_deadQwerty,1,t);
|
||||
k.KIO(-1,this.s_deadQwerty,1,t);
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_PERIOD /* 0xBE */)&&k.KDM(3,t,18)&&k.KCM(3,t,"(m)",3)) { // Line 46
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_PERIOD /* 0xBE */)&&k.KFCM(7,t,['(','o',')',{t:'d',d:18},'(','o',')'])) { // Line 51
|
||||
r=m=1;
|
||||
k.KO(3,t,"dk(m)");
|
||||
k.KDC(7,t);
|
||||
k.KO(-1,t,"dk(o)");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_PERIOD /* 0xBE */)&&k.KCM(3,t,"(n)",3)&&k.KDM(0,t,18)) { // Line 49
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_PERIOD /* 0xBE */)&&k.KFCM(4,t,[{t:'d',d:18},'(','m',')'])) { // Line 45
|
||||
r=m=1;
|
||||
k.KO(3,t,"dk(n)");
|
||||
k.KDC(4,t);
|
||||
k.KO(-1,t,"dk(m)");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_PERIOD /* 0xBE */)&&k.KDM(0,t,16)&&k.KDM(0,t,17)) { // Line 41
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_PERIOD /* 0xBE */)&&k.KFCM(4,t,['(','n',')',{t:'d',d:18}])) { // Line 48
|
||||
r=m=1;
|
||||
k.KO(0,t,"(a)-(s)");
|
||||
k.KDC(4,t);
|
||||
k.KO(-1,t,"dk(n)");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_PERIOD /* 0xBE */)&&k.KDM(0,t,17)&&k.KDM(0,t,16)) { // Line 42
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_PERIOD /* 0xBE */)&&k.KFCM(3,t,['?',{t:'a',a:this.s_deadQwerty},{t:'c',c:2}])) { // Line 78
|
||||
r=m=1;
|
||||
k.KO(0,t,"(s)+(a)");
|
||||
k.KDC(3,t);
|
||||
k.KO(-1,t,"(");
|
||||
k.KIO(-1,this.s_liveQwerty,2,t);
|
||||
k.KIO(-1,this.s_liveQwerty,2,t);
|
||||
k.KO(-1,t,")");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_0 /* 0x30 */)) { // Line 65
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_PERIOD /* 0xBE */)&&k.KFCM(2,t,[{t:'d',d:16},{t:'d',d:17}])) { // Line 40
|
||||
r=m=1;
|
||||
k.KDO(0,t,0);
|
||||
k.KDC(2,t);
|
||||
k.KO(-1,t,"(a)-(s)");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_1 /* 0x31 */)) { // Line 66
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_PERIOD /* 0xBE */)&&k.KFCM(2,t,[{t:'d',d:17},{t:'d',d:16}])) { // Line 41
|
||||
r=m=1;
|
||||
k.KDO(0,t,1);
|
||||
k.KDC(2,t);
|
||||
k.KO(-1,t,"(s)+(a)");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_2 /* 0x32 */)) { // Line 67
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_PERIOD /* 0xBE */)&&k.KFCM(1,t,[{t:'a',a:this.s_deadnums}])) { // Line 76
|
||||
r=m=1;
|
||||
k.KDO(0,t,2);
|
||||
k.KDC(1,t);
|
||||
k.KO(-1,t,"#");
|
||||
k.KIO(-1,this.s_livenums,1,t);
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_3 /* 0x33 */)) { // Line 68
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_0 /* 0x30 */)) { // Line 64
|
||||
r=m=1;
|
||||
k.KDO(0,t,3);
|
||||
k.KDC(0,t);
|
||||
k.KDO(-1,t,0);
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_4 /* 0x34 */)) { // Line 69
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_1 /* 0x31 */)) { // Line 65
|
||||
r=m=1;
|
||||
k.KDO(0,t,4);
|
||||
k.KDC(0,t);
|
||||
k.KDO(-1,t,1);
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_5 /* 0x35 */)) { // Line 70
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_2 /* 0x32 */)) { // Line 66
|
||||
r=m=1;
|
||||
k.KDO(0,t,5);
|
||||
k.KDC(0,t);
|
||||
k.KDO(-1,t,2);
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_6 /* 0x36 */)) { // Line 71
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_3 /* 0x33 */)) { // Line 67
|
||||
r=m=1;
|
||||
k.KDO(0,t,6);
|
||||
k.KDC(0,t);
|
||||
k.KDO(-1,t,3);
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_7 /* 0x37 */)) { // Line 72
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_4 /* 0x34 */)) { // Line 68
|
||||
r=m=1;
|
||||
k.KDO(0,t,7);
|
||||
k.KDC(0,t);
|
||||
k.KDO(-1,t,4);
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_8 /* 0x38 */)) { // Line 73
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_5 /* 0x35 */)) { // Line 69
|
||||
r=m=1;
|
||||
k.KDO(0,t,8);
|
||||
k.KDC(0,t);
|
||||
k.KDO(-1,t,5);
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_9 /* 0x39 */)) { // Line 74
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_6 /* 0x36 */)) { // Line 70
|
||||
r=m=1;
|
||||
k.KDO(0,t,9);
|
||||
k.KDC(0,t);
|
||||
k.KDO(-1,t,6);
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_7 /* 0x37 */)) { // Line 71
|
||||
r=m=1;
|
||||
k.KDC(0,t);
|
||||
k.KDO(-1,t,7);
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_8 /* 0x38 */)) { // Line 72
|
||||
r=m=1;
|
||||
k.KDC(0,t);
|
||||
k.KDO(-1,t,8);
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_9 /* 0x39 */)) { // Line 73
|
||||
r=m=1;
|
||||
k.KDC(0,t);
|
||||
k.KDO(-1,t,9);
|
||||
}
|
||||
else if(k.KKM(e, modCodes.SHIFT | modCodes.VIRTUAL_KEY /* 0x4010 */, keyCodes.K_SLASH /* 0xBF */)) { // Line 126
|
||||
r=m=1;
|
||||
k.KO(0,t,"ab > (a)(b) tests basic deadkey\rb > (b) only matches if \"a\" not pressed first\rbb > (b)+(b) Missing deadkey does not trigger match.\rbab > (b)+(a)+(b) deadkey at end of context\rac > x tests basic deadkey\rade > (a)(d)(e) deadkey at start of context\rfade > (f)-(a)-(d)-(e) deadkey in middle of context\ras. > (a)-(s) defined deadkey order (1/2)\rsa. > (s)+(a) defined deadkey order (2/2)\rm. > dk(m) deadkey output then letters\rn. > dk(n) letters output then deadkey\ro. > dk(o) letters, deadkey, letters\rpqr > (p)(q)(r) deadkey, unmatched, letters\rPQR > (P)(Q)(R) deadkey, deadkey, match, match\r12bb > success deadkey reordering (with the following)\r21bb > success \r21b > dead2 \r34bb > success \r43bb > success \rABCDE > success deadkey output before match(group) rule\r1. > #1 deadkey matched by any\rq! > ? same as above, with extra deadkey output.\rq!. > (qq) deadkey matched by context() in context\r\r");
|
||||
k.KDC(0,t);
|
||||
k.KO(-1,t,"ab > (a)(b) tests basic deadkey\rb > (b) only matches if \"a\" not pressed first\rbb > (b)+(b) Missing deadkey does not trigger match.\rbab > (b)+(a)+(b) deadkey at end of context\rac > x tests basic deadkey\rade > (a)(d)(e) deadkey at start of context\rfade > (f)-(a)-(d)-(e) deadkey in middle of context\ras. > (a)-(s) defined deadkey order (1/2)\rsa. > (s)+(a) defined deadkey order (2/2)\rm. > dk(m) deadkey output then letters\rn. > dk(n) letters output then deadkey\ro. > dk(o) letters, deadkey, letters\rpqr > (p)(q)(r) deadkey, unmatched, letters\rPQR > (P)(Q)(R) deadkey, deadkey, match, match\r12bb > success deadkey reordering (with the following)\r21bb > success \r21b > dead2 \r34bb > success \r43bb > success \rABCDE > success deadkey output before match(group) rule\r1. > #1 deadkey matched by any\rq! > ? same as above, with extra deadkey output.\rq!. > (qq) deadkey matched by context() in context\r11 > (1)(1) deadkey matched by index() within context.\r\r");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.SHIFT | modCodes.VIRTUAL_KEY /* 0x4010 */, keyCodes.K_A /* 0x41 */)) { // Line 94
|
||||
else if(k.KKM(e, modCodes.SHIFT | modCodes.VIRTUAL_KEY /* 0x4010 */, keyCodes.K_A /* 0x41 */)) { // Line 93
|
||||
r=m=1;
|
||||
k.KDO(0,t,16);
|
||||
k.KDC(0,t);
|
||||
k.KDO(-1,t,16);
|
||||
}
|
||||
else if(k.KKM(e, modCodes.SHIFT | modCodes.VIRTUAL_KEY /* 0x4010 */, keyCodes.K_B /* 0x42 */)&&k.KDM(0,t,16)) { // Line 95
|
||||
else if(k.KKM(e, modCodes.SHIFT | modCodes.VIRTUAL_KEY /* 0x4010 */, keyCodes.K_B /* 0x42 */)&&k.KFCM(1,t,[{t:'d',d:16}])) { // Line 94
|
||||
r=m=1;
|
||||
k.KO(0,t,"ab");
|
||||
k.KDC(1,t);
|
||||
k.KO(-1,t,"ab");
|
||||
k.KDO(-1,t,21);
|
||||
}
|
||||
else if(k.KKM(e, modCodes.SHIFT | modCodes.VIRTUAL_KEY /* 0x4010 */, keyCodes.K_C /* 0x43 */)&&k.KDM(0,t,22)) { // Line 96
|
||||
else if(k.KKM(e, modCodes.SHIFT | modCodes.VIRTUAL_KEY /* 0x4010 */, keyCodes.K_C /* 0x43 */)&&k.KFCM(1,t,[{t:'d',d:22}])) { // Line 95
|
||||
r=m=1;
|
||||
k.KO(0,t,"abc");
|
||||
k.KDC(1,t);
|
||||
k.KO(-1,t,"abc");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.SHIFT | modCodes.VIRTUAL_KEY /* 0x4010 */, keyCodes.K_D /* 0x44 */)&&k.KCM(3,t,"abc",3)) { // Line 97
|
||||
else if(k.KKM(e, modCodes.SHIFT | modCodes.VIRTUAL_KEY /* 0x4010 */, keyCodes.K_D /* 0x44 */)&&k.KFCM(3,t,['a','b','c'])) { // Line 96
|
||||
r=m=1;
|
||||
k.KO(3,t,"$abc$d");
|
||||
k.KDC(3,t);
|
||||
k.KO(-1,t,"$abc$d");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.SHIFT | modCodes.VIRTUAL_KEY /* 0x4010 */, keyCodes.K_E /* 0x45 */)&&k.KCM(3,t,"ab",2)&&k.KDM(1,t,23)&&k.KCM(1,t,"d",1)) { // Line 98
|
||||
else if(k.KKM(e, modCodes.SHIFT | modCodes.VIRTUAL_KEY /* 0x4010 */, keyCodes.K_E /* 0x45 */)&&k.KFCM(4,t,['a','b',{t:'d',d:23},'d'])) { // Line 97
|
||||
r=m=1;
|
||||
k.KO(3,t,"success");
|
||||
k.KDC(4,t);
|
||||
k.KO(-1,t,"success");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.SHIFT | modCodes.VIRTUAL_KEY /* 0x4010 */, keyCodes.K_P /* 0x50 */)) { // Line 59
|
||||
else if(k.KKM(e, modCodes.SHIFT | modCodes.VIRTUAL_KEY /* 0x4010 */, keyCodes.K_P /* 0x50 */)) { // Line 58
|
||||
r=m=1;
|
||||
k.KDO(0,t,20);
|
||||
k.KDC(0,t);
|
||||
k.KDO(-1,t,20);
|
||||
k.KDO(-1,t,20);
|
||||
k.KO(-1,t,"(P)");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.SHIFT | modCodes.VIRTUAL_KEY /* 0x4010 */, keyCodes.K_Q /* 0x51 */)&&k.KDM(3,t,20)&&k.KCM(3,t,"(P)",3)) { // Line 60
|
||||
else if(k.KKM(e, modCodes.SHIFT | modCodes.VIRTUAL_KEY /* 0x4010 */, keyCodes.K_Q /* 0x51 */)&&k.KFCM(4,t,[{t:'d',d:20},'(','P',')'])) { // Line 59
|
||||
r=m=1;
|
||||
k.KO(3,t,"(P)(Q)");
|
||||
k.KDC(4,t);
|
||||
k.KO(-1,t,"(P)(Q)");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.SHIFT | modCodes.VIRTUAL_KEY /* 0x4010 */, keyCodes.K_R /* 0x52 */)&&k.KDM(6,t,20)&&k.KDM(6,t,20)&&k.KCM(6,t,"(P)(Q)",6)) { // Line 62
|
||||
else if(k.KKM(e, modCodes.SHIFT | modCodes.VIRTUAL_KEY /* 0x4010 */, keyCodes.K_R /* 0x52 */)&&k.KFCM(8,t,[{t:'d',d:20},{t:'d',d:20},'(','P',')','(','Q',')'])) { // Line 61
|
||||
r=m=1;
|
||||
k.KO(6,t,"ERROR");
|
||||
k.KDC(8,t);
|
||||
k.KO(-1,t,"ERROR");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.SHIFT | modCodes.VIRTUAL_KEY /* 0x4010 */, keyCodes.K_R /* 0x52 */)&&k.KDM(6,t,20)&&k.KCM(6,t,"(P)(Q)",6)) { // Line 61
|
||||
else if(k.KKM(e, modCodes.SHIFT | modCodes.VIRTUAL_KEY /* 0x4010 */, keyCodes.K_R /* 0x52 */)&&k.KFCM(7,t,[{t:'d',d:20},'(','P',')','(','Q',')'])) { // Line 60
|
||||
r=m=1;
|
||||
k.KO(6,t,"(P)(Q)(R)");
|
||||
k.KDC(7,t);
|
||||
k.KO(-1,t,"(P)(Q)(R)");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_A /* 0x41 */)) { // Line 19
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_A /* 0x41 */)) { // Line 18
|
||||
r=m=1;
|
||||
k.KDO(0,t,16);
|
||||
k.KDC(0,t);
|
||||
k.KDO(-1,t,16);
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_B /* 0x42 */)&&k.KDM(5,t,2)&&k.KCM(5,t,"dead1",5)) { // Line 85
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_B /* 0x42 */)&&k.KFCM(6,t,[{t:'d',d:2},'d','e','a','d','1'])) { // Line 84
|
||||
r=m=1;
|
||||
k.KO(5,t,"ERROR");
|
||||
k.KDC(6,t);
|
||||
k.KO(-1,t,"ERROR");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_B /* 0x42 */)&&k.KDM(5,t,1)&&k.KCM(5,t,"dead2",5)) { // Line 86
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_B /* 0x42 */)&&k.KFCM(6,t,[{t:'d',d:1},'d','e','a','d','2'])) { // Line 85
|
||||
r=m=1;
|
||||
k.KO(5,t,"success");
|
||||
k.KDC(6,t);
|
||||
k.KO(-1,t,"success");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_B /* 0x42 */)&&k.KDM(5,t,4)&&k.KCM(5,t,"dead3",5)) { // Line 90
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_B /* 0x42 */)&&k.KFCM(6,t,[{t:'d',d:4},'d','e','a','d','3'])) { // Line 89
|
||||
r=m=1;
|
||||
k.KO(5,t,"success");
|
||||
k.KDC(6,t);
|
||||
k.KO(-1,t,"success");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_B /* 0x42 */)&&k.KDM(5,t,3)&&k.KCM(5,t,"dead4",5)) { // Line 91
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_B /* 0x42 */)&&k.KFCM(6,t,[{t:'d',d:3},'d','e','a','d','4'])) { // Line 90
|
||||
r=m=1;
|
||||
k.KO(5,t,"ERROR");
|
||||
k.KDC(6,t);
|
||||
k.KO(-1,t,"ERROR");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_B /* 0x42 */)&&k.KCM(3,t,"(b)",3)&&k.KDM(0,t,16)) { // Line 25
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_B /* 0x42 */)&&k.KFCM(4,t,['(','b',')',{t:'d',d:16}])) { // Line 24
|
||||
r=m=1;
|
||||
k.KO(3,t,"(b)+(a)+(b)");
|
||||
k.KDC(4,t);
|
||||
k.KO(-1,t,"(b)+(a)+(b)");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_B /* 0x42 */)&&k.KCM(3,t,"(b)",3)) { // Line 24
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_B /* 0x42 */)&&k.KFCM(3,t,['(','b',')'])) { // Line 23
|
||||
r=m=1;
|
||||
k.KO(3,t,"(b)+(b)");
|
||||
k.KDC(3,t);
|
||||
k.KO(-1,t,"(b)+(b)");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_B /* 0x42 */)&&k.KDM(0,t,16)) { // Line 20
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_B /* 0x42 */)&&k.KFCM(1,t,[{t:'d',d:16}])) { // Line 19
|
||||
r=m=1;
|
||||
k.KO(0,t,"(a)(b)");
|
||||
k.KDC(1,t);
|
||||
k.KO(-1,t,"(a)(b)");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_B /* 0x42 */)&&k.KDM(0,t,2)) { // Line 83
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_B /* 0x42 */)&&k.KFCM(1,t,[{t:'d',d:2}])) { // Line 82
|
||||
r=m=1;
|
||||
k.KO(0,t,"dead2");
|
||||
k.KDC(1,t);
|
||||
k.KO(-1,t,"dead2");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_B /* 0x42 */)&&k.KDM(0,t,1)) { // Line 84
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_B /* 0x42 */)&&k.KFCM(1,t,[{t:'d',d:1}])) { // Line 83
|
||||
r=m=1;
|
||||
k.KO(0,t,"dead1");
|
||||
k.KDC(1,t);
|
||||
k.KO(-1,t,"dead1");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_B /* 0x42 */)&&k.KDM(0,t,4)) { // Line 88
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_B /* 0x42 */)&&k.KFCM(1,t,[{t:'d',d:4}])) { // Line 87
|
||||
r=m=1;
|
||||
k.KO(0,t,"dead4");
|
||||
k.KDC(1,t);
|
||||
k.KO(-1,t,"dead4");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_B /* 0x42 */)&&k.KDM(0,t,3)) { // Line 89
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_B /* 0x42 */)&&k.KFCM(1,t,[{t:'d',d:3}])) { // Line 88
|
||||
r=m=1;
|
||||
k.KO(0,t,"dead3");
|
||||
k.KDC(1,t);
|
||||
k.KO(-1,t,"dead3");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_B /* 0x42 */)) { // Line 21
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_B /* 0x42 */)) { // Line 20
|
||||
r=m=1;
|
||||
k.KO(0,t,"(b)");
|
||||
k.KDC(0,t);
|
||||
k.KO(-1,t,"(b)");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_C /* 0x43 */)&&k.KDM(0,t,16)) { // Line 28
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_C /* 0x43 */)&&k.KFCM(1,t,[{t:'d',d:16}])) { // Line 27
|
||||
r=m=1;
|
||||
k.KO(0,t,"x");
|
||||
k.KDC(1,t);
|
||||
k.KO(-1,t,"x");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_D /* 0x44 */)) { // Line 31
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_D /* 0x44 */)) { // Line 30
|
||||
r=m=1;
|
||||
k.KO(0,t,"d");
|
||||
k.KDC(0,t);
|
||||
k.KO(-1,t,"d");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_E /* 0x45 */)&&k.KCM(2,t,"f",1)&&k.KDM(1,t,16)&&k.KCM(1,t,"d",1)) { // Line 36
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_E /* 0x45 */)&&k.KFCM(3,t,['f',{t:'d',d:16},'d'])) { // Line 35
|
||||
r=m=1;
|
||||
k.KO(2,t,"(f)-(a)-(d)-(e)");
|
||||
k.KDC(3,t);
|
||||
k.KO(-1,t,"(f)-(a)-(d)-(e)");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_E /* 0x45 */)&&k.KDM(1,t,16)&&k.KCM(1,t,"d",1)) { // Line 35
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_E /* 0x45 */)&&k.KFCM(2,t,[{t:'d',d:16},'d'])) { // Line 34
|
||||
r=m=1;
|
||||
k.KO(1,t,"(a)(d)(e)");
|
||||
k.KDC(2,t);
|
||||
k.KO(-1,t,"(a)(d)(e)");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_F /* 0x46 */)) { // Line 32
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_F /* 0x46 */)) { // Line 31
|
||||
r=m=1;
|
||||
k.KO(0,t,"f");
|
||||
k.KDC(0,t);
|
||||
k.KO(-1,t,"f");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_M /* 0x4D */)) { // Line 45
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_M /* 0x4D */)) { // Line 44
|
||||
r=m=1;
|
||||
k.KDO(0,t,18);
|
||||
k.KDC(0,t);
|
||||
k.KDO(-1,t,18);
|
||||
k.KO(-1,t,"(m)");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_N /* 0x4E */)) { // Line 48
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_N /* 0x4E */)) { // Line 47
|
||||
r=m=1;
|
||||
k.KO(0,t,"(n)");
|
||||
k.KDC(0,t);
|
||||
k.KO(-1,t,"(n)");
|
||||
k.KDO(-1,t,18);
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_O /* 0x4F */)) { // Line 51
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_O /* 0x4F */)) { // Line 50
|
||||
r=m=1;
|
||||
k.KO(0,t,"(o)");
|
||||
k.KDC(0,t);
|
||||
k.KO(-1,t,"(o)");
|
||||
k.KDO(-1,t,18);
|
||||
k.KO(-1,t,"(o)");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_P /* 0x50 */)) { // Line 55
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_P /* 0x50 */)) { // Line 54
|
||||
r=m=1;
|
||||
k.KDO(0,t,19);
|
||||
k.KDC(0,t);
|
||||
k.KDO(-1,t,19);
|
||||
k.KDO(-1,t,10);
|
||||
k.KO(-1,t,"(p)");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_Q /* 0x51 */)&&k.KDM(3,t,10)&&k.KCM(3,t,"(p)",3)) { // Line 56
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_Q /* 0x51 */)&&k.KFCM(4,t,[{t:'d',d:10},'(','p',')'])) { // Line 55
|
||||
r=m=1;
|
||||
k.KO(3,t,"(p)(q)");
|
||||
k.KDC(4,t);
|
||||
k.KO(-1,t,"(p)(q)");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_R /* 0x52 */)&&k.KDM(6,t,19)&&k.KCM(6,t,"(p)(q)",6)) { // Line 57
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_R /* 0x52 */)&&k.KFCM(7,t,[{t:'d',d:19},'(','p',')','(','q',')'])) { // Line 56
|
||||
r=m=1;
|
||||
k.KO(6,t,"(p)(q)(r)");
|
||||
k.KDC(7,t);
|
||||
k.KO(-1,t,"(p)(q)(r)");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_S /* 0x53 */)) { // Line 39
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_S /* 0x53 */)) { // Line 38
|
||||
r=m=1;
|
||||
k.KDO(0,t,17);
|
||||
k.KDC(0,t);
|
||||
k.KDO(-1,t,17);
|
||||
}
|
||||
if(m) {
|
||||
|
||||
k.KDC(-1,t);
|
||||
r=this.g_dead_reorder(t,e);
|
||||
}
|
||||
if(!m&&k.KIK(e)) {
|
||||
r=1;
|
||||
k.KDC(-1,t);
|
||||
r=this.g_qwerty_out(t,e);
|
||||
}
|
||||
return r;
|
||||
};
|
||||
this.g_dead_reorder=function(t,e) {
|
||||
var k=KeymanWeb,r=1,m=0;
|
||||
if(k.KCM(6,t,"$abc$d",6)) { // Line 135
|
||||
if(k.KFCM(6,t,['$','a','b','c','$','d'])) { // Line 134
|
||||
m=1;
|
||||
k.KO(6,t,"ab");
|
||||
k.KDC(6,t);
|
||||
k.KO(-1,t,"ab");
|
||||
k.KDO(-1,t,23);
|
||||
k.KO(-1,t,"d");
|
||||
}
|
||||
else if(k.KCM(2,t,"ab",2)&&k.KDM(0,t,21)) { // Line 134
|
||||
else if(k.KFCM(3,t,['a','b',{t:'d',d:21}])) { // Line 133
|
||||
m=1;
|
||||
k.KDO(2,t,22);
|
||||
k.KDC(3,t);
|
||||
k.KDO(-1,t,22);
|
||||
}
|
||||
else if(k.KDM(0,t,2)&&k.KDM(0,t,1)) { // Line 131
|
||||
else if(k.KFCM(2,t,[{t:'d',d:2},{t:'d',d:1}])) { // Line 130
|
||||
m=1;
|
||||
k.KDO(0,t,1);
|
||||
k.KDC(2,t);
|
||||
k.KDO(-1,t,1);
|
||||
k.KDO(-1,t,2);
|
||||
}
|
||||
else if(k.KDM(0,t,3)&&k.KDM(0,t,4)) { // Line 132
|
||||
else if(k.KFCM(2,t,[{t:'d',d:3},{t:'d',d:4}])) { // Line 131
|
||||
m=1;
|
||||
k.KDO(0,t,4);
|
||||
k.KDC(2,t);
|
||||
k.KDO(-1,t,4);
|
||||
k.KDO(-1,t,3);
|
||||
}
|
||||
else if(k.KFCM(2,t,[{t:'a',a:this.s_deadnums},{t:'i',i:{s:this.s_deadnums,o:1}}])) { // Line 138
|
||||
m=1;
|
||||
k.KDC(2,t);
|
||||
k.KO(-1,t,"(");
|
||||
k.KIO(-1,this.s_livenums,1,t);
|
||||
k.KO(-1,t,")(");
|
||||
k.KIO(-1,this.s_livenums,1,t);
|
||||
k.KO(-1,t,")");
|
||||
}
|
||||
return r;
|
||||
};
|
||||
this.g_qwerty_out=function(t,e) {
|
||||
var k=KeymanWeb,r=0,m=0;
|
||||
if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_E /* 0x45 */)) { // Line 146
|
||||
if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_E /* 0x45 */)) { // Line 145
|
||||
r=m=1;
|
||||
k.KO(0,t,"e");
|
||||
k.KDC(0,t);
|
||||
k.KO(-1,t,"e");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_Q /* 0x51 */)) { // Line 144
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_Q /* 0x51 */)) { // Line 143
|
||||
r=m=1;
|
||||
k.KO(0,t,"q");
|
||||
k.KDC(0,t);
|
||||
k.KO(-1,t,"q");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_R /* 0x52 */)) { // Line 147
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_R /* 0x52 */)) { // Line 146
|
||||
r=m=1;
|
||||
k.KO(0,t,"r");
|
||||
k.KDC(0,t);
|
||||
k.KO(-1,t,"r");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_T /* 0x54 */)) { // Line 148
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_T /* 0x54 */)) { // Line 147
|
||||
r=m=1;
|
||||
k.KO(0,t,"t");
|
||||
k.KDC(0,t);
|
||||
k.KO(-1,t,"t");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_W /* 0x57 */)) { // Line 145
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_W /* 0x57 */)) { // Line 144
|
||||
r=m=1;
|
||||
k.KO(0,t,"w");
|
||||
k.KDC(0,t);
|
||||
k.KO(-1,t,"w");
|
||||
}
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_Y /* 0x59 */)) { // Line 149
|
||||
else if(k.KKM(e, modCodes.VIRTUAL_KEY /* 0x4000 */, keyCodes.K_Y /* 0x59 */)) { // Line 148
|
||||
r=m=1;
|
||||
k.KO(0,t,"y");
|
||||
k.KDC(0,t);
|
||||
k.KO(-1,t,"y");
|
||||
}
|
||||
return r;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -73,9 +73,9 @@ c Basic digits > 'deadnums' - deadkey per number.
|
|||
+ '9' > dk(9)
|
||||
|
||||
c any/index with deadkeys in stores.
|
||||
c any(deadnums) + '.' > '#' index(livenums, 1)
|
||||
c any(liveQwerty) + '!' > '?' index(deadQwerty, 1) index(deadQwerty, 1)
|
||||
c '?' any(deadQwerty) context(2) + '.' > '(' index(liveQwerty, 2) index(liveQwerty, 2) ')'
|
||||
any(deadnums) + '.' > '#' index(livenums, 1)
|
||||
any(liveQwerty) + '!' > '?' index(deadQwerty, 1) index(deadQwerty, 1)
|
||||
'?' any(deadQwerty) context(2) + '.' > '(' index(liveQwerty, 2) index(liveQwerty, 2) ')'
|
||||
|
||||
c Two different versions are here to help ensure we don't get a 'lucky fix' due
|
||||
c to Developer's rule orderings. These two sets should end up with opposite orders.
|
||||
|
|
@ -135,7 +135,7 @@ dk(3) dk(4) > dk(4) dk(3)
|
|||
|
||||
c Since 'index' cannot function in the 'key' part of a rule, we place the
|
||||
c 'index in context' test within this group.
|
||||
c any(deadnums) index(deadnums, 1) > '(' index(livenums, 1) ')(' index(livenums, 1) ')'
|
||||
any(deadnums) index(deadnums, 1) > '(' index(livenums, 1) ')(' index(livenums, 1) ')'
|
||||
|
||||
c Needed for KMW testing, as the characters will not be output on plain keystrokes otherwise.
|
||||
group(qwerty_out) using keys
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -573,6 +573,15 @@ begin
|
|||
CheckStoreForInvalidFunctions(fkp, rec.Any.Store); // I1520
|
||||
FullContext := FullContext + Format('{t:''a'',a:this.s%s,n:1}', [JavaScript_Name(rec.Any.StoreIndex, rec.Any.Store.szName)]);
|
||||
end;
|
||||
CODE_CONTEXTEX:
|
||||
begin
|
||||
FullContext := FullContext + Format('{t:''c'',c:%d}', [rec.ContextEx.Index]); // I4611
|
||||
end;
|
||||
CODE_INDEX:
|
||||
begin
|
||||
FullContext := FullContext + Format('{t:''i'',i:{s:this.s%s,o:%d}}',
|
||||
[JavaScript_Name(rec.Index.StoreIndex, rec.Index.Store.szName), rec.Index.Index]); // I4611
|
||||
end;
|
||||
else
|
||||
|
||||
begin
|
||||
|
|
@ -1951,7 +1960,8 @@ const
|
|||
wcsentinel: WideString = #$FFFF;
|
||||
begin
|
||||
n := Pos(wcsentinel, store.dpString);
|
||||
if n > 0 then
|
||||
// Disable the check with version 10+, since we now support deadkeys in stores.
|
||||
if (n > 0) and not IsKeyboardVersion10OrLater then
|
||||
begin
|
||||
pwsz := PWideChar(store.dpString);
|
||||
Inc(pwsz, n-1);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue