Commit 8965103a authored by Benno Schulenberg's avatar Benno Schulenberg
Browse files

tweaks: remove the group handling for undoing/redoing (un)indents

Indenting/unindenting always happens in a single contiguous block.
Lines that cannot or should not be indented or unindented do not
need to remembered separately as it follows from their content.
No related merge requests found
Showing with 12 additions and 14 deletions
+12 -14
......@@ -435,27 +435,25 @@ void do_unindent(void)
void handle_indent_action(undo *u, bool undoing, bool add_indent)
{
undo_group *group = u->grouping;
filestruct *line = fsfromline(group->top_line);
if (group->next != NULL)
statusline(ALERT, "Multiple groups -- please report a bug");
/* When redoing, reposition the cursor and let the indenter adjust it. */
if (!undoing)
goto_line_posx(u->lineno, u->begin);
while (group) {
filestruct *line = fsfromline(group->top_line);
/* For each line in the group, add or remove the individual indent. */
while (line && line->lineno <= group->bottom_line) {
char *blanks = group->indentations[line->lineno - group->top_line];
if (undoing ^ add_indent)
indent_a_line(line, blanks);
else
unindent_a_line(line, strlen(blanks));
/* For each line in the group, add or remove the individual indent. */
while (line && line->lineno <= group->bottom_line) {
char *blanks = group->indentations[line->lineno - group->top_line];
line = line->next;
}
if (undoing ^ add_indent)
indent_a_line(line, blanks);
else
unindent_a_line(line, strlen(blanks));
group = group->next;
line = line->next;
}
/* When undoing, reposition the cursor to the recorded location. */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment