diff options
author | Kartik Agaram <vc@akkartik.com> | 2020-09-19 22:33:44 -0700 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2020-09-19 22:33:44 -0700 |
commit | f32e575e387859af74f7023f9f02b32dee839962 (patch) | |
tree | 6c8c7115a8d0397f2154338c786308fa1c0f96a0 /apps/tile/word.mu | |
parent | 4449f4878138e2d7baa2b227098e2d03d0342f39 (diff) | |
download | mu-f32e575e387859af74f7023f9f02b32dee839962.tar.gz |
6811 - tile: left-cursor movement
Displayed cursor position is not yet correct, but insertions happen at the right cursor position.
Diffstat (limited to 'apps/tile/word.mu')
-rw-r--r-- | apps/tile/word.mu | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/apps/tile/word.mu b/apps/tile/word.mu index 9e683985..4c7b13dd 100644 --- a/apps/tile/word.mu +++ b/apps/tile/word.mu @@ -98,6 +98,42 @@ fn add-grapheme-to-word _self: (addr word), c: grapheme { add-grapheme-at-gap data, c } +fn cursor-at-start? _self: (addr word) -> result/eax: boolean { + var self/esi: (addr word) <- copy _self + var data/eax: (addr gap-buffer) <- get self, data + result <- gap-at-start? data +} + +fn cursor-at-end? _self: (addr word) -> result/eax: boolean { + var self/esi: (addr word) <- copy _self + var data/eax: (addr gap-buffer) <- get self, data + result <- gap-at-end? data +} + +fn cursor-left _self: (addr word) { + var self/esi: (addr word) <- copy _self + var data/eax: (addr gap-buffer) <- get self, data + var dummy/eax: grapheme <- gap-left data +} + +fn cursor-right _self: (addr word) { + var self/esi: (addr word) <- copy _self + var data/eax: (addr gap-buffer) <- get self, data + var dummy/eax: grapheme <- gap-right data +} + +fn cursor-to-start _self: (addr word) { + var self/esi: (addr word) <- copy _self + var data/eax: (addr gap-buffer) <- get self, data + gap-to-start data +} + +fn cursor-to-end _self: (addr word) { + var self/esi: (addr word) <- copy _self + var data/eax: (addr gap-buffer) <- get self, data + gap-to-end data +} + fn print-word screen: (addr screen), _self: (addr word) { var self/esi: (addr word) <- copy _self var data/eax: (addr gap-buffer) <- get self, data |