]> git.wh0rd.org Git - nano.git/commitdiff
clean up a bit of weirdness in do_replace_loop()
authorDavid Lawrence Ramsey <pooka109@gmail.com>
Mon, 29 Dec 2003 02:15:23 +0000 (02:15 +0000)
committerDavid Lawrence Ramsey <pooka109@gmail.com>
Mon, 29 Dec 2003 02:15:23 +0000 (02:15 +0000)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1606 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/search.c

index 5ff94c9e53f7c2a42f343708eedb0a23854c7353..5c0559f22f624bb9a1773e546837ccea8e72632a 100644 (file)
--- 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.
index 8b1c9f76b1faec959ed0602b8f75ff96a9bdf9b0..53c05208c39ec31a234384765602976cb29db133 100644 (file)
@@ -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. */