diff options
| author | Richard M. Stallman | 2002-09-29 17:51:45 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 2002-09-29 17:51:45 +0000 |
| commit | 98e942e0293fef05a410b07aed1594947b41fcbd (patch) | |
| tree | e7554be4b5ac8fad0ca3f81e323fcb6df688b8b6 | |
| parent | aac2d8b2fa5ca26bd5412153b8d48f1b90b24d23 (diff) | |
| download | emacs-98e942e0293fef05a410b07aed1594947b41fcbd.tar.gz emacs-98e942e0293fef05a410b07aed1594947b41fcbd.zip | |
(Freplace_match): Adjust match data for the substitution
just made in the buffer.
| -rw-r--r-- | src/search.c | 14 |
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. */) | |||
| 2567 | Fupcase_initials_region (make_number (search_regs.start[sub]), | 2567 | Fupcase_initials_region (make_number (search_regs.start[sub]), |
| 2568 | make_number (newpoint)); | 2568 | make_number (newpoint)); |
| 2569 | 2569 | ||
| 2570 | /* Adjust search data for this change. */ | ||
| 2571 | { | ||
| 2572 | int change = newpoint - search_regs.end[sub]; | ||
| 2573 | int i; | ||
| 2574 | |||
| 2575 | for (i = 0; i < search_regs.num_regs; i++) | ||
| 2576 | { | ||
| 2577 | if (search_regs.start[i] > newpoint) | ||
| 2578 | search_regs.start[i] += change; | ||
| 2579 | if (search_regs.end[i] > newpoint) | ||
| 2580 | search_regs.end[i] += change; | ||
| 2581 | } | ||
| 2582 | } | ||
| 2583 | |||
| 2570 | /* Put point back where it was in the text. */ | 2584 | /* Put point back where it was in the text. */ |
| 2571 | if (opoint <= 0) | 2585 | if (opoint <= 0) |
| 2572 | TEMP_SET_PT (opoint + ZV); | 2586 | TEMP_SET_PT (opoint + ZV); |