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

Reply via email to