[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
replace-regexp at end of buffer
From: |
Johan Bockgård |
Subject: |
replace-regexp at end of buffer |
Date: |
Thu, 22 Feb 2007 19:57:57 +0100 |
User-agent: |
Gnus/5.110006 (No Gnus v0.6) Emacs/22.0.93 (gnu/linux) |
replace-regexp/perform-replace wrongly moves back a character when the
match is at end of buffer.
Run
(perform-replace "abc" "123" nil t nil)
on a buffer that ends in "abc" (no final newline).
Point ends up between 2 and 3.
This is because point could not move too far in this case, and so the
following correction shouldn't be done [perform-replace]:
;; The code preventing adjacent regexp matches in the condition
;; of the while-loop above will haven taken us one character
;; beyond the last replacement. Undo that.
(when (and regexp-flag (not match-again) (> replace-count 0))
(backward-char 1))
--
Johan Bockgård
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- replace-regexp at end of buffer,
Johan Bockgård <=