From eb4f90e182e1ecbd0d3a719bea4669779c1d4b56 Mon Sep 17 00:00:00 2001 From: David Lawrence Ramsey Date: Fri, 5 May 2006 14:22:42 +0000 Subject: [PATCH] better handle position shifting when unindenting marked text git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3468 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- src/text.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) 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) -- 2.39.5