CE edit handle backspace deletion into previous line
All checks were successful
Build documentation / build-and-deploy (push) Successful in 2m17s

This commit is contained in:
2026-03-08 12:35:39 +01:00
parent f74f8ab122
commit cbc0bf4452

View File

@@ -227,6 +227,24 @@ void edit_start (const char* file_path, const char* text) {
gapbuffer_move (&editor.current_line->gb, editor.cursor.col);
editor.cursor.col--;
gapbuffer_backspace (&editor.current_line->gb);
} else {
if (editor.cursor.line > 0) {
struct list_node_link* prev = editor.current_line->lines_link.prev;
struct edit_line* prev_line = list_entry (prev, struct edit_line, lines_link);
size_t prev_len = gapbuffer_length (&prev_line->gb);
gapbuffer_concat (&wrealloc, NULL, &prev_line->gb, &editor.current_line->gb);
list_remove (editor.lines, &editor.current_line->lines_link);
free (editor.current_line->gb.buffer);
free (editor.current_line);
editor.current_line = prev_line;
editor.cursor.col = prev_len;
editor.cursor.line--;
editor.total_lines--;
}
}
}
break;