diff options
| author | Stefan Monnier | 2025-03-28 00:46:53 -0400 |
|---|---|---|
| committer | Stefan Monnier | 2025-03-29 17:49:05 -0400 |
| commit | 7c82cc8b975175aebbad1c43ec1cd98b3232f482 (patch) | |
| tree | 2f2f5ac19ec7055442da0bd58507314d213b9bdd /src/coding.c | |
| parent | f60fc1287d499e8c93857b1b96e8bd2467b22c8d (diff) | |
| download | emacs-7c82cc8b975175aebbad1c43ec1cd98b3232f482.tar.gz emacs-7c82cc8b975175aebbad1c43ec1cd98b3232f482.zip | |
(replace-region-contents): Improve and promote (bug#76313)
Swap the role of `replace-region-contents` and `replace-buffer-contents`,
so `replace-region-contents` is the main function, implemented in C,
and `replace-buffer-contents` is a mere wrapper (marked as obsolete).
Also remove the need to rely on narrowing and on describing the
new text as a function.
Finally, allow MAX-SECS==0 to require a cheap replacement, and
add an INHERIT argument.
* src/editfns.c: Include `coding.h`.
(Freplace_region_contents): Rename from `Freplace_buffer_contents`.
Change calling convention to that of `replace-region-contents`.
Add more options for the SOURCE argument. Add INHERIT argument.
Skip the costly algorithm if MAX-SECS is 0.
* src/insdel.c (replace_range): Allow NEW to be a buffer.
* lisp/subr.el (replace-buffer-contents): New implementation.
* lisp/emacs-lisp/subr-x.el (replace-region-contents): Delete.
* doc/lispref/text.texi (Replacing): Document new API for
`replace-region-contents`. Remove documentation of
`replace-buffer-contents`.
* test/src/editfns-tests.el (replace-buffer-contents-1)
(replace-buffer-contents-2, replace-buffer-contents-bug31837):
Use `replace-region-contents`.
(editfns--replace-region): Delete.
(editfns-tests--replace-region): Use `replace-region-contents`.
Adds tests for new types of SOURCE args.
Diffstat (limited to 'src/coding.c')
| -rw-r--r-- | src/coding.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/coding.c b/src/coding.c index b0bd5d3a9ab..63b0dbeb18b 100644 --- a/src/coding.c +++ b/src/coding.c | |||
| @@ -7898,6 +7898,8 @@ code_conversion_save (bool with_work_buf, bool multibyte) | |||
| 7898 | bset_enable_multibyte_characters (current_buffer, multibyte ? Qt : Qnil); | 7898 | bset_enable_multibyte_characters (current_buffer, multibyte ? Qt : Qnil); |
| 7899 | if (EQ (workbuf, Vcode_conversion_reused_workbuf)) | 7899 | if (EQ (workbuf, Vcode_conversion_reused_workbuf)) |
| 7900 | reused_workbuf_in_use = true; | 7900 | reused_workbuf_in_use = true; |
| 7901 | /* FIXME: Maybe we should stay in the new workbuf, because we often | ||
| 7902 | switch right back to it anyway in order to initialize it further. */ | ||
| 7901 | set_buffer_internal (current); | 7903 | set_buffer_internal (current); |
| 7902 | } | 7904 | } |
| 7903 | 7905 | ||