From afb75f22b2702ad241ae7839aad3ba2ef707718d Mon Sep 17 00:00:00 2001 From: David Lawrence Ramsey Date: Mon, 29 Dec 2003 02:15:23 +0000 Subject: [PATCH] clean up a bit of weirdness in do_replace_loop() git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1606 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- ChangeLog | 7 +++++-- src/search.c | 20 ++++++-------------- 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5ff94c9e..5c0559f2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -83,8 +83,11 @@ CVS code - certain zero-length regex replacements ("^", "$", and "^$"). Add a no_sameline parameter to findnextstr(), and set it in the calls in do_replace_loop() when such regexes are found, so - that such regexes are only found once per line. (DLR; found by - Mike Frysinger and DLR) + that such regexes are only found once per line. Also change + length_change from a long to an int; size_t is unsuitable due + to its being unsigned. (DLR; found by Mike Frysinger and DLR) + David Benbennick: Add a few minor cleanups to + do_replace_loop(). - winio.c: get_kbinput(), get_accepted_kbinput() - Don't pass in the value of the REBIND_DELETE flag anymore. diff --git a/src/search.c b/src/search.c index 8b1c9f76..53c05208 100644 --- a/src/search.c +++ b/src/search.c @@ -622,7 +622,6 @@ int do_replace_loop(const char *prevanswer, const filestruct *begin, int beginline = 0, caretdollar = 0; #endif filestruct *fileptr = NULL; - char *copy; switch (*i) { case -1: /* Aborted enter. */ @@ -716,6 +715,9 @@ int do_replace_loop(const char *prevanswer, const filestruct *begin, do_replace_highlight(FALSE, exp_word); free(exp_word); curs_set(1); + + if (*i == -1) /* We canceled the replace. */ + break; } #ifdef HAVE_REGEX_H @@ -726,8 +728,8 @@ int do_replace_loop(const char *prevanswer, const filestruct *begin, #endif if (*i > 0 || replaceall) { /* Yes, replace it!!!! */ - long length_change; - size_t match_len; + char *copy; + int length_change; if (*i == 2) replaceall = 1; @@ -741,13 +743,6 @@ int do_replace_loop(const char *prevanswer, const filestruct *begin, length_change = strlen(copy) - strlen(current->data); -#ifdef HAVE_REGEX_H - if (ISSET(USE_REGEXP)) - match_len = regmatches[0].rm_eo - regmatches[0].rm_so; - else -#endif - match_len = strlen(prevanswer); - #ifndef NANO_SMALL if (current == mark_beginbuf && mark_beginx > current_x) { if (mark_beginx < current_x + match_len) @@ -780,10 +775,7 @@ int do_replace_loop(const char *prevanswer, const filestruct *begin, edit_refresh(); set_modified(); numreplaced++; - - } else if (*i == -1) /* Break out of the loop, else do - * nothing and continue loop. */ - break; + } } /* If text has been added to the magicline, make a new magicline. */ -- 2.39.5