[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.


   (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

reply via email to

[Prev in Thread] Current Thread [Next in Thread]