diff --git a/src/text.c b/src/text.c index dedde3a1..409479fe 100644 --- a/src/text.c +++ b/src/text.c @@ -286,14 +286,20 @@ void do_indent_marked(ssize_t cols) /* Keep track of the change in the current line. */ if (f == openfile->mark_begin && - openfile->mark_begin_x > indent_new && - openfile->mark_begin_x >= indent_shift) - openfile->mark_begin_x -= indent_shift; + openfile->mark_begin_x > indent_new) { + if (openfile->mark_begin_x <= indent_len) + openfile->mark_begin_x = indent_new; + else + openfile->mark_begin_x -= indent_shift; + } if (f == openfile->current && openfile->current_x > - indent_new && openfile->current_x >= - indent_shift) - openfile->current_x -= indent_shift; + indent_new) { + if (openfile->current_x <= indent_len) + openfile->current_x = indent_new; + else + openfile->current_x -= indent_shift; + } /* We've unindented, so set indent_changed to TRUE. */ if (!indent_changed)