--- Begin Message ---
Subject: |
In CVS Emacs, replace-regexp doesn't honor inhibit-read-only. |
Date: |
Wed, 10 Sep 2008 11:44:32 -0400 |
In CVS Emacs, replace-regexp doesn't honor inhibit-read-only. To
reproduce, evaluate this form:
(let ((inhibit-read-only t))
(with-current-buffer (get-buffer-create "zzz")
(insert "fooxxxbar")
(replace-regexp "x+" "z" nil (point-min) (point-max))))
You will see this error: Buffer is read-only: #<buffer zzz>
This may be caused by this code in function perform-replace (in
lisp/replace.el):
(let ((inhibit-read-only
query-replace-skip-read-only))
The docstring for query-replace-skip-read-only says:
*Non-nil means `query-replace' and friends ignore read-only matches.
which does not seem to match how it is used in that let form, especially
since replace-regexp is not interactive like query-replace.
--
Fran
--- End Message ---
--- Begin Message ---
Subject: |
Re: In CVS Emacs, replace-regexp doesn't honor inhibit-read-only. |
Date: |
Wed, 10 Sep 2008 18:20:31 -0400 |
> In CVS Emacs, replace-regexp doesn't honor inhibit-read-only.
Thanks for spotting this. I've checked in a fix.
--- End Message ---