From eb4f90e182e1ecbd0d3a719bea4669779c1d4b56 Mon Sep 17 00:00:00 2001
From: David Lawrence Ramsey <pooka109@gmail.com>
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)
-- 
GitLab