about summary refs log tree commit diff stats
path: root/apps/tile/gap-buffer.mu
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2020-09-19 23:16:23 -0700
committerKartik Agaram <vc@akkartik.com>2020-09-19 23:16:23 -0700
commit593b95246c971bce26650141a7e3a0502c4abedb (patch)
treefbd4ed5a83633ca356d382b55da7973266ef18fb /apps/tile/gap-buffer.mu
parente43ff485e6fcff8cbf004d8db00c489a60437094 (diff)
downloadmu-593b95246c971bce26650141a7e3a0502c4abedb.tar.gz
6814 - tile: backspace deletes char or word
Diffstat (limited to 'apps/tile/gap-buffer.mu')
-rw-r--r--apps/tile/gap-buffer.mu6
1 files changed, 6 insertions, 0 deletions
diff --git a/apps/tile/gap-buffer.mu b/apps/tile/gap-buffer.mu
index 8a57fc5b..3d001cf6 100644
--- a/apps/tile/gap-buffer.mu
+++ b/apps/tile/gap-buffer.mu
@@ -169,6 +169,12 @@ fn gap-index _self: (addr gap-buffer) -> result/eax: int {
   result <- copy *top-addr
 }
 
+fn delete-before-gap _self: (addr gap-buffer) {
+  var self/eax: (addr gap-buffer) <- copy _self
+  var left/eax: (addr grapheme-stack) <- get self, left
+  var dummy/eax: grapheme <- pop-grapheme-stack left
+}
+
 fn gap-buffer-equal? _self: (addr gap-buffer), s: (addr array byte) -> result/eax: boolean {
 $gap-buffer-equal?:body: {
   var self/esi: (addr gap-buffer) <- copy _self