summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Buffer.zig6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/Buffer.zig b/src/Buffer.zig
index 473674c..57ecd20 100644
--- a/src/Buffer.zig
+++ b/src/Buffer.zig
@@ -584,7 +584,11 @@ pub fn unindent(self: *Buffer) !void {
584 const desired_rsize = indentation_rsize - 1 - (indentation_rsize - 1) % self.config.tab_stop; 584 const desired_rsize = indentation_rsize - 1 - (indentation_rsize - 1) % self.config.tab_stop;
585 const desired_size = row.rxToCx(self.config, desired_rsize); 585 const desired_size = row.rxToCx(self.config, desired_rsize);
586 586
587 self.cx -= indentation_size - desired_size; 587 if (self.cx < indentation_size - desired_size) {
588 self.cx = 0;
589 } else {
590 self.cx -= indentation_size - desired_size;
591 }
588 592
589 // TODO: ArrayList needs orderedRemoveNItems 593 // TODO: ArrayList needs orderedRemoveNItems
590 while (indentation_size > desired_size) : (indentation_size -= 1) { 594 while (indentation_size > desired_size) : (indentation_size -= 1) {