diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/Buffer.zig | 6 |
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) { |