From c4dbdd55f514af41f20c0a4961b56170ce822010 Mon Sep 17 00:00:00 2001
From: David Lawrence Ramsey <pooka109@gmail.com>
Date: Mon, 6 Jun 2005 03:46:32 +0000
Subject: [PATCH] in do_replace_loop(), when moving to the next match, update
 the screen using edit_refresh() instead of edit_redraw(), as the latter won't
 work properly when we've replaced one or more instances of a string in copy
 and haven't yet updated current->data to match copy

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

diff --git a/ChangeLog b/ChangeLog
index 136d3be7..0badeffe 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -134,6 +134,12 @@ CVS code -
   replace_line()
 	- Make new_line_size and search_match_count size_t's, for
 	  consistency. (DLR)
+  do_replace_loop()
+	- When moving to the next match, update the screen using
+	  edit_refresh() instead of edit_redraw(), as the latter won't
+	  work properly when we've replaced one or more instances of a
+	  string in copy and haven't yet updated current->data to match
+	  copy. (DLR)
 - utils.c:
   num_of_digits()
 	- Use a size_t instead of an int, and rename to digits(). (DLR)
diff --git a/src/search.c b/src/search.c
index 0fbdac9a..45ec4f6f 100644
--- a/src/search.c
+++ b/src/search.c
@@ -681,7 +681,6 @@ ssize_t do_replace_loop(const char *needle, const filestruct
 {
     ssize_t numreplaced = -1;
     size_t match_len;
-    size_t pww_save = placewewant;
     bool replaceall = FALSE;
 #ifdef HAVE_REGEX_H
     /* The starting-line match and bol/eol regex flags. */
@@ -743,10 +742,8 @@ ssize_t do_replace_loop(const char *needle, const filestruct
 	}
 #endif
 
-	if (!replaceall) {
-	    edit_redraw(real_current, pww_save);
-	    pww_save = placewewant;
-	}
+	if (!replaceall)
+	    edit_refresh();
 
 	/* Record for the return value that we found the search
 	 * string. */
-- 
GitLab