]> git.eshelyaron.com Git - emacs.git/commitdiff
(Freplace_match): Adjust match data for the substitution
authorRichard M. Stallman <rms@gnu.org>
Sun, 29 Sep 2002 17:51:45 +0000 (17:51 +0000)
committerRichard M. Stallman <rms@gnu.org>
Sun, 29 Sep 2002 17:51:45 +0000 (17:51 +0000)
just made in the buffer.

src/search.c

index f795eb40abe58b194766652eb5fc8960813df465..6f6aa90b919fc23e7e1dad4611645baea9f98ec4 100644 (file)
@@ -2567,6 +2567,20 @@ since only regular expressions have distinguished subexpressions.  */)
     Fupcase_initials_region (make_number (search_regs.start[sub]),
                             make_number (newpoint));
 
+  /* Adjust search data for this change.  */
+  {
+    int change = newpoint - search_regs.end[sub];
+    int i;
+
+    for (i = 0; i < search_regs.num_regs; i++)
+      {
+       if (search_regs.start[i] > newpoint)
+         search_regs.start[i] += change;
+       if (search_regs.end[i] > newpoint)
+         search_regs.end[i] += change;
+      }
+  }
+
   /* Put point back where it was in the text.  */
   if (opoint <= 0)
     TEMP_SET_PT (opoint + ZV);