Subject: bug#76313: New function `replace-region`

From: Stefan Kangas <[email-masked]>
Date: Sat, 8 Mar 2025 03:50:17 -0800

Eli Zaretskii <[email-masked]> writes:

>> From: Stefan Kangas <[email-masked]>
>> Date: Sat, 8 Mar 2025 01:46:20 -0800
>> Cc: [email-masked], [email-masked], [email-masked]
>>
>> Eli Zaretskii <[email-masked]> writes:
>>
>> > I'm saying that the documentation aspect of this is not the real
>> > problem.  Once we agree on the code and API changes, updating the
>> > documentation is a no-brainer, and I don't expect it to trigger an
>> > argument.
>> >
>> > The problem here is how to provide the functionality without
>> > complicating Emacs with yet another API, where we already have two.
>>
>> OK, thanks.  That makes it more clear to me what you're saying.
>>
>> I don't have any better solution to propose than:
>>
>>     a) Obsoleting `replace-buffer-contents`.
>>
>>     b) Renaming `replace-region-contents` to `replace-region-carefully`.
>>
>> I think both of these would make sense independently of `replace-region`.
>> How about we move ahead with those, and then revisit the situation once
>> that is done?
>
> I'm not sure I understand: are you suggesting to do the above, and

Do we agree about points a) and b) above?  If yes, can we do that now?
Alternatively, can we do either a) or b)?

> I'm not sure I understand: are you suggesting to do the above, and
> _then_ add a new replace-region function?  I thought I already
> explained why doing so will not resolve the problems I had with the
> addition of a new API?

I actually don't have any proposal for how to proceed after a) and b).
I don't know what might be needed.  The best proposals that exist have
been detailed in this thread.

I think it's for you to say, either "here's what I need to feel
comfortable with adding `replace-region`", or "I see no way of making me
feel comfortable with adding `replace-region`".  I'm currently reading
you as saying the latter.

If my reading is correct, I think we should close this issue after we
have decided what to do about my a) and b) above.  And then move on.