From f58b5e88a7b00abf5ae3e8557335d0abfdbb518f Mon Sep 17 00:00:00 2001 From: Grant Horner Date: Tue, 9 Dec 2025 19:30:20 -0500 Subject: [PATCH] fix remaining selection backspace bugs --- src/main.odin | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main.odin b/src/main.odin index ec2d116..53bf8c2 100644 --- a/src/main.odin +++ b/src/main.odin @@ -137,18 +137,20 @@ main :: proc() { earliest_selection := get_selection_for_line(earliest_line[:], earliest.line) remove_range(earliest_line, earliest_selection.start, earliest_selection.end) if latest.line != earliest.line { - latest_line := &lines[latest.line] + latest_line := lines[latest.line] latest_selection := get_selection_for_line(latest_line[:], latest.line) append(earliest_line, string(latest_line[latest_selection.end:len(latest_line)])) - defer delete(latest_line^) ordered_remove(&lines, latest.line) - cursor.line -= 1 + delete(latest_line) + if selection.start.line < selection.end.line { + cursor.line -= 1 + } for i := earliest.line + 1; i < latest.line; i += 1 { line_to_remove := lines[i] defer delete(line_to_remove) ordered_remove(&lines, i) // NOTE(grant): Should we do this here? - if i < cursor.line { + if selection.start.line < selection.end.line { cursor.line -= 1 } }