use 64 bit int for keycodes on all platforms

This commit is contained in:
Productive2 2021-02-20 21:38:56 +01:00
parent f79677ba14
commit 0d8a66b57e
1 changed files with 7 additions and 7 deletions

View File

@ -46,13 +46,13 @@ block:
keysByName[name] = i
keysById[i] = name
var escapeSeqs*: Table[int, JaleKeycode]
var escapeSeqs*: Table[uint64, JaleKeycode]
proc defEscSeq(keys: seq[int], id: JaleKeycode) =
var result = 0
var result: uint64 = 0'u64
for key in keys:
result *= 256
result += key
result += key.uint64
if escapeSeqs.hasKey(result):
raise newException(Defect, "Duplicate escape sequence definition")
escapeSeqs[result] = id
@ -159,14 +159,14 @@ block:
defEscSeq(@[8], jkBackspace)
proc getKey*: int =
var key: int = 0
var key: uint64 = 0
while true:
key *= 256
key += int(uniGetChr())
key += uniGetChr().uint64
if escapeSeqs.hasKey(key):
if escapeSeqs[key] != jkContinue:
key = int(escapeSeqs[key])
key = escapeSeqs[key].uint64
break
else:
break
return key
return key.int