deadAsc(val1, val2, a) { global if !DeadSilence OutputChar(val1, val2) else CheckComp(val2) DeadKey := a } deadUni(val1, val2, a) { global if !DeadSilence SendUnicodeChar(val1, val2) else CheckComp(val2) DeadKey := a } undeadAsc(val) { global if DeadSilence send % val else send % "{bs}" . val } undeadUni(val){ global if !DeadSilence send {bs} SendUnicodeChar(val, "") } CheckDeadAsc(d,val) { global if (PriorDeadKey == d) { undeadAsc(val) return 1 } } CheckDeadUni(d,val) { global if (PriorDeadKey == d) { undeadUni(val) return 1 } } CheckDeadAsc12(d,val1,val2) { global if (PriorDeadKey == d){ if (Ebene = 1) and (val1 != "") { undeadAsc(val1) return 1 } else if (Ebene = 2) and (val2 != "") { undeadAsc(val2) return 1 } } } CheckDeadUni12(d,val1,val2) { global if(PriorDeadKey == d) { if (Ebene = 1) and (val1 != "") { undeadUni(val1) return 1 } else if (Ebene = 2) and (val2 != "") { undeadUni(val2) return 1 } } } CheckCompUni(d,val) { global if (CompKey == d) { PriorCompKey = CompKey = if !DeadCompose send {bs} isFurtherCompkey = 0 SendUnicodeChar(val, "") return 1 } } OutputChar(val1,val2) { global if (!CheckComp(val2)) send % "{blind}" . val1 } OutputChar12(val1,val2,val3,val4) { global if (Ebene = 1) c := val1 else c := val2 if (Ebene = 1) d := val3 else d := val4 if (!CheckComp(d)) if GetKeyState("Shift","P") and isMod2Locked send % "{blind}{Shift Up}" . c . "{Shift Down}" else send % "{blind}" . c } ;Folgende Funktion prüft, ob das eben geschriebene Zeichen eine gültige Coko ;fortsetzen KÖNNTE – falls ja, wird 1 zurückgegeben (die Eingabe soll blind erfolgen), ;andernfalls wird 0 zurückgegeben (das Zeichen soll ausgegeben werden). CheckComp(d) { global if (PriorDeadKey = "comp") { CompKey := "<" . d . ">" PriorDeadKey := DeadKey = CheckCompose() TryThirdCompKey = 0 return 1 } else if TryFourthCompKey { TryFourthCompKey = 0 CompKey := ThreeCompKeys . " " . "<" . d . ">" ThreeCompKeys = CheckCompose() if !(CompKey) { send {left}{bs}{right} return 1 } else CompKey = } else if TryThirdCompKey { TryThirdCompKey = 0 CompKey := PriorCompKey . " " . "<" . d . ">" CheckCompose() if CompKey { TryFourthCompKey = 1 ThreeCompKeys := CompKey CompKey = } else return 1 } else if PriorCompKey { CompKey := PriorCompKey . " " . "<" . d . ">" CheckCompose() if CompKey TryThirdCompKey = 1 return 1 } } CumulateDeadKey(a) { if DeadKey = a5 { if a = g1 DeadKey = a5g1 else if a = a1 DeadKey = a5a1 else if a = a2 DeadKey = a5a2 else if a = g1a2 DeadKey = a5g1a2 else if a = a1a2 DeadKey = a5a1a2 else if a = c1a2 DeadKey = a5c1a2 } else if DeadKey = g5 { if a = g1 DeadKey = g5g1 else if a = a1 DeadKey = g5a1 else if a = a2 DeadKey = g5a2 else if a = g1a2 DeadKey = g5g1a2 else if a = a1a2 DeadKey = g5a1a2 else if a = c1a2 DeadKey = g5c1a2 } else if DeadKey = g1 { if a = a5 DeadKey = a5g1 else if a = g5 DeadKey = g5g1 else if a = a2 DeadKey = g1a2 else if a = a5a2 DeadKey = a5g1a2 else if a = g5a2 DeadKey = g5g1a2 } }