1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
|
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
|
-
+
+
|
}
static int v_dispatch(const Uint16*code) {
int i=msgvars.arg1.u;
if(msgvars.arg1.t!=TY_NUMBER) Throw("Type mismatch");
if(!i || (msgvars.arg1.u&~0xFF) || !code[i]) {
StackReq(0,1);
Push(msgvars.arg2);
if(!code[256] || !v_bool(msgvars.arg2)) Push(msgvars.arg2);
}
if(msgvars.arg1.u&~0xFF) {
if(current_key && !v_bool(msgvars.arg3)) key_ignored=all_flushed=1;
return 0;
}
if(!i) return 0;
if(current_key && !v_bool(msgvars.arg3) && !(keymask[i>>3]&(1<<(i&7)))) key_ignored=all_flushed=1;
if(!code[i] && !v_bool(msgvars.arg2) && !msgvars.arg3.t && !msgvars.arg3.u && !key_ignored) i=256;
return code[i];
}
static int v_in(void) {
int p=vstackptr;
Value v;
while(vstackptr-- && vstack[vstackptr].t!=TY_MARK);
|