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
_______________________________________________
emacs-pretest-bug mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug