summaryrefslogtreecommitdiff
path: root/src/search.c
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>2002-09-29 17:51:45 +0000
committerRichard M. Stallman <rms@gnu.org>2002-09-29 17:51:45 +0000
commit98e942e0293fef05a410b07aed1594947b41fcbd (patch)
treee7554be4b5ac8fad0ca3f81e323fcb6df688b8b6 /src/search.c
parentaac2d8b2fa5ca26bd5412153b8d48f1b90b24d23 (diff)
downloademacs-98e942e0293fef05a410b07aed1594947b41fcbd.tar.gz
(Freplace_match): Adjust match data for the substitution
just made in the buffer.
Diffstat (limited to 'src/search.c')
-rw-r--r--src/search.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/search.c b/src/search.c
index f795eb40abe..6f6aa90b919 100644
--- a/src/search.c
+++ b/src/search.c
@@ -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);