mirror of https://github.com/japl-lang/jale.git
use 64 bit int for keycodes on all platforms
This commit is contained in:
parent
f79677ba14
commit
0d8a66b57e
|
@ -46,13 +46,13 @@ block:
|
||||||
keysByName[name] = i
|
keysByName[name] = i
|
||||||
keysById[i] = name
|
keysById[i] = name
|
||||||
|
|
||||||
var escapeSeqs*: Table[int, JaleKeycode]
|
var escapeSeqs*: Table[uint64, JaleKeycode]
|
||||||
|
|
||||||
proc defEscSeq(keys: seq[int], id: JaleKeycode) =
|
proc defEscSeq(keys: seq[int], id: JaleKeycode) =
|
||||||
var result = 0
|
var result: uint64 = 0'u64
|
||||||
for key in keys:
|
for key in keys:
|
||||||
result *= 256
|
result *= 256
|
||||||
result += key
|
result += key.uint64
|
||||||
if escapeSeqs.hasKey(result):
|
if escapeSeqs.hasKey(result):
|
||||||
raise newException(Defect, "Duplicate escape sequence definition")
|
raise newException(Defect, "Duplicate escape sequence definition")
|
||||||
escapeSeqs[result] = id
|
escapeSeqs[result] = id
|
||||||
|
@ -159,14 +159,14 @@ block:
|
||||||
defEscSeq(@[8], jkBackspace)
|
defEscSeq(@[8], jkBackspace)
|
||||||
|
|
||||||
proc getKey*: int =
|
proc getKey*: int =
|
||||||
var key: int = 0
|
var key: uint64 = 0
|
||||||
while true:
|
while true:
|
||||||
key *= 256
|
key *= 256
|
||||||
key += int(uniGetChr())
|
key += uniGetChr().uint64
|
||||||
if escapeSeqs.hasKey(key):
|
if escapeSeqs.hasKey(key):
|
||||||
if escapeSeqs[key] != jkContinue:
|
if escapeSeqs[key] != jkContinue:
|
||||||
key = int(escapeSeqs[key])
|
key = escapeSeqs[key].uint64
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
break
|
break
|
||||||
return key
|
return key.int
|
||||||
|
|
Loading…
Reference in New Issue