]> git.wh0rd.org Git - nano.git/commitdiff
miscellaneous cleanups in do_replace_loop(): set current to real_current
authorDavid Lawrence Ramsey <pooka109@gmail.com>
Fri, 8 Oct 2004 23:06:01 +0000 (23:06 +0000)
committerDavid Lawrence Ramsey <pooka109@gmail.com>
Fri, 8 Oct 2004 23:06:01 +0000 (23:06 +0000)
and current_x to current_x_save, only turn the mark off and call
edit_refresh() if the mark was originally on, and make length_change a
ssize_t

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1977 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/search.c

index 60805692e204ea6b2878bb72dfaced8dfaf3f3e5..12de2a7729a07e39f03846e1c357558540e8ea97 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -149,6 +149,11 @@ CVS code -
          the search prompt to the "Go To Line" prompt, since the
          toggling works both ways now and non-numeric text shouldn't be
          lost when going only one of those ways. (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
+         edit_refresh() if the mark was originally on, and make
+         length_change a ssize_t. (DLR)
   findnextstr()
        - Take the no_sameline parameter after can_display_wrap and
          wholewords, not after all other parameters. (DLR)
index a2ede844757fe0ab41b8f5e82b049fc92d561818..57613f7c6732a54c73b04c0413f27647f9f31218 100644 (file)
@@ -604,9 +604,9 @@ char *replace_line(const char *needle)
 }
 
 /* Step through each replace word and prompt user before replacing.
- * Parameters real_current and real_current_x are needed by the internal
- * speller, to allow the cursor position to be updated when a word
- * before the cursor is replaced by a shorter word.
+ * Parameters real_current and real_current_x are needed in order to
+ * allow the cursor position to be updated when a word before the cursor
+ * is replaced by a shorter word.
  *
  * needle is the string to seek.  We replace it with answer.  Return -1
  * if needle isn't found, else the number of replacements performed. */
@@ -614,8 +614,8 @@ int do_replace_loop(const char *needle, const filestruct *real_current,
        size_t *real_current_x, bool wholewords)
 {
     int numreplaced = -1;
-    size_t old_pww = placewewant, current_x_save = current_x;
-    const filestruct *current_save = current;
+    size_t old_pww = placewewant, current_x_save = *real_current_x;
+    const filestruct *current_save = real_current;
     bool replaceall = FALSE;
 #ifdef HAVE_REGEX_H
     /* The starting-line match and bol/eol regex flags. */
@@ -624,8 +624,10 @@ int do_replace_loop(const char *needle, const filestruct *real_current,
 #ifndef NANO_SMALL
     bool old_mark_set = ISSET(MARK_ISSET);
 
-    UNSET(MARK_ISSET);
-    edit_refresh();
+    if (old_mark_set) {
+       UNSET(MARK_ISSET);
+       edit_refresh();
+    }
 #endif
 
     while (findnextstr(TRUE, wholewords,
@@ -707,7 +709,7 @@ int do_replace_loop(const char *needle, const filestruct *real_current,
 
        if (i > 0 || replaceall) {      /* Yes, replace it!!!! */
            char *copy;
-           int length_change;
+           ssize_t length_change;
 
            if (i == 2)
                replaceall = TRUE;