From 3de81bc33d4f13930a562ea7b6aee186bb2fe3da Mon Sep 17 00:00:00 2001 From: David Lawrence Ramsey Date: Mon, 22 Nov 2004 17:08:41 +0000 Subject: [PATCH] in do_replace_loop(), treat real_current as current and real_current_x as current_x instead of using copies of them (which aren't kept up to date) when calling findnextstr(); this fixes a problem where the search can wrap when it shouldn't and skip over all matches after the wrap point git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@2119 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- ChangeLog | 4 ++-- src/search.c | 7 +++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 75d161bc..3dfe9ed0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -290,8 +290,8 @@ CVS code - flag, and add new parameter needle_len (used to return the length of the match). (DLR) do_replace_loop() - - Miscellaneous cleanups: set current to real_current and - current_x to current_x_save, only turn the mark off and call + - Miscellaneous cleanups: treat real_current as current and + real_current_x as current_x, only turn the mark off and call edit_refresh() if the mark was originally on, and make length_change a ssize_t. (DLR) - Return ssize_t instead of int. (DLR) diff --git a/src/search.c b/src/search.c index bb4d58b9..fb775b69 100644 --- a/src/search.c +++ b/src/search.c @@ -671,8 +671,7 @@ ssize_t do_replace_loop(const char *needle, const filestruct { ssize_t numreplaced = -1; size_t match_len; - size_t pww_save = placewewant, current_x_save = *real_current_x; - const filestruct *current_save = real_current; + size_t pww_save = placewewant; bool replaceall = FALSE; #ifdef HAVE_REGEX_H /* The starting-line match and bol/eol regex flags. */ @@ -713,7 +712,7 @@ ssize_t do_replace_loop(const char *needle, const filestruct #else FALSE #endif - , current_save, current_x_save, needle, &match_len)) { + , real_current, *real_current_x, needle, &match_len)) { int i = 0; @@ -735,7 +734,7 @@ ssize_t do_replace_loop(const char *needle, const filestruct #endif if (!replaceall) { - edit_redraw(current_save, pww_save); + edit_redraw(real_current, pww_save); pww_save = placewewant; }