From f56cc9e0e94856c27e55174b3af1a2b6830fadb8 Mon Sep 17 00:00:00 2001
From: David Lawrence Ramsey <pooka109@gmail.com>
Date: Thu, 29 Jul 2004 14:32:17 +0000
Subject: [PATCH] in do_replace_loop(), make sure old_pww is updated to the
 current value of placewewant when a new match is found, so that edit_redraw()
 will redraw the screen properly when only placewewant changes

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1872 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
---
 ChangeLog    | 6 ++++++
 src/search.c | 5 ++++-
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/ChangeLog b/ChangeLog
index 3f6b65e6..f3393aed 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -124,6 +124,12 @@ CVS code -
   nregcomp()
 	- Rename the variable flags to eflags so as not to conflict with
 	  the global flags. (DLR)
+- search.c:
+  do_replace_loop()
+	- Make sure old_pww is updated to the current value of
+	  placewewant when a new match is found, so that edit_redraw()
+	  will redraw the screen properly when only placewewant changes.
+	  (DLR, found by Mike Frysinger)
 - utils.c:
   parse_num()
 	- New function to parse numeric values, so that we don't have to
diff --git a/src/search.c b/src/search.c
index 56839e59..4d153c2d 100644
--- a/src/search.c
+++ b/src/search.c
@@ -635,8 +635,11 @@ int do_replace_loop(const char *needle, const filestruct *real_current,
 	}
 #endif
 
-	if (!replaceall)
+	if (!replaceall) {
+	    placewewant = xplustabs();
 	    edit_redraw(current_save, old_pww);
+	    old_pww = placewewant;
+	}
 
 #ifdef HAVE_REGEX_H
 	if (ISSET(USE_REGEXP))
-- 
GitLab