about summary refs log tree commit diff stats
path: root/apps/tile/gap-buffer.mu
diff options
context:
space:
mode:
Diffstat (limited to 'apps/tile/gap-buffer.mu')
-rw-r--r--apps/tile/gap-buffer.mu12
1 files changed, 12 insertions, 0 deletions
diff --git a/apps/tile/gap-buffer.mu b/apps/tile/gap-buffer.mu
index 75f88122..96e39aed 100644
--- a/apps/tile/gap-buffer.mu
+++ b/apps/tile/gap-buffer.mu
@@ -114,6 +114,18 @@ fn gap-to-end self: (addr gap-buffer) {
   }
 }
 
+fn gap-at-start? _self: (addr gap-buffer) -> result/eax: boolean {
+  var self/esi: (addr gap-buffer) <- copy _self
+  var left/eax: (addr grapheme-stack) <- get self, left
+  result <- grapheme-stack-empty? left
+}
+
+fn gap-at-end? _self: (addr gap-buffer) -> result/eax: boolean {
+  var self/esi: (addr gap-buffer) <- copy _self
+  var right/eax: (addr grapheme-stack) <- get self, right
+  result <- grapheme-stack-empty? right
+}
+
 fn gap-right _self: (addr gap-buffer) -> result/eax: grapheme {
 $gap-right:body: {
   var self/esi: (addr gap-buffer) <- copy _self