This commit is contained in:
Kartik K. Agaram 2021-06-04 19:58:20 -07:00
parent eb6758c61f
commit 81b3f72fb8
4 changed files with 10 additions and 10 deletions

View File

@ -32,7 +32,7 @@ fn render-environment screen: (addr screen), _self: (addr environment) {
render-globals-menu screen, globals
}
fn edit-environment _self: (addr environment), key: byte, data-disk: (addr disk) {
fn edit-environment _self: (addr environment), key: grapheme, data-disk: (addr disk) {
var self/esi: (addr environment) <- copy _self
var globals/edi: (addr global-table) <- get self, globals
var sandbox/ecx: (addr sandbox) <- get self, sandbox

View File

@ -184,7 +184,7 @@ fn render-globals screen: (addr screen), _self: (addr global-table) {
fn render-globals-menu screen: (addr screen), _self: (addr global-table) {
}
fn edit-globals _self: (addr global-table), key: byte, data-disk: (addr disk) {
fn edit-globals _self: (addr global-table), key: grapheme, data-disk: (addr disk) {
}
fn assign-or-create-global _self: (addr global-table), name: (addr array byte), value: (handle cell), trace: (addr trace) {

View File

@ -13,6 +13,7 @@ fn main screen: (addr screen), keyboard: (addr keyboard), data-disk: (addr disk)
var key/eax: byte <- read-key keyboard
compare key, 0
loop-if-=
var key/eax: grapheme <- copy key
edit-environment env, key, data-disk
}
loop

View File

@ -460,12 +460,11 @@ fn render-keyboard-menu screen: (addr screen) {
draw-text-rightward-from-cursor screen, " to sandbox ", width, 7/fg, 0xc5/bg=blue-bg
}
fn edit-sandbox _self: (addr sandbox), key: byte, globals: (addr global-table), data-disk: (addr disk), tweak-real-screen?: boolean {
fn edit-sandbox _self: (addr sandbox), key: grapheme, globals: (addr global-table), data-disk: (addr disk), tweak-real-screen?: boolean {
var self/esi: (addr sandbox) <- copy _self
var g/edx: grapheme <- copy key
# ctrl-s
{
compare g, 0x13/ctrl-s
compare key, 0x13/ctrl-s
break-if-!=
# if cursor is in trace, skip
var cursor-in-trace?/eax: (addr boolean) <- get self, cursor-in-trace?
@ -480,7 +479,7 @@ fn edit-sandbox _self: (addr sandbox), key: byte, globals: (addr global-table),
}
# ctrl-m
{
compare g, 0xd/ctrl-m
compare key, 0xd/ctrl-m
break-if-!=
# if cursor in data, switch to trace or fall through to keyboard
{
@ -544,7 +543,7 @@ fn edit-sandbox _self: (addr sandbox), key: byte, globals: (addr global-table),
break-if-=
var data-ah/eax: (addr handle gap-buffer) <- get self, data
var data/eax: (addr gap-buffer) <- lookup *data-ah
edit-gap-buffer data, g
edit-gap-buffer data, key
return
}
# if cursor in keyboard, send key to keyboard
@ -567,7 +566,7 @@ fn edit-sandbox _self: (addr sandbox), key: byte, globals: (addr global-table),
}
var keyboard-ah/eax: (addr handle gap-buffer) <- get keyboard-cell, keyboard-data
var keyboard/eax: (addr gap-buffer) <- lookup *keyboard-ah
edit-gap-buffer keyboard, g
edit-gap-buffer keyboard, key
return
}
# if cursor in trace, send key to trace
@ -579,7 +578,7 @@ fn edit-sandbox _self: (addr sandbox), key: byte, globals: (addr global-table),
var trace/eax: (addr trace) <- lookup *trace-ah
# if expanding the trace, first check if we need to run the sandbox again with a deeper trace
{
compare g, 0xa/newline
compare key, 0xa/newline
break-if-!=
{
var need-rerun?/eax: boolean <- cursor-too-deep? trace
@ -600,7 +599,7 @@ fn edit-sandbox _self: (addr sandbox), key: byte, globals: (addr global-table),
var save-addr/ecx: (addr trace-index-stash) <- address save
restore-indices trace, save-addr
}
edit-trace trace, g
edit-trace trace, key
return
}
}