Subject: Re: bug#71370: 30.0.50; Please un-obsolete buffer-substring as a generalized variable

From: Eli Zaretskii <[email-masked]>
Date: Sun, 23 Mar 2025 14:53:24 +0200

> Cc: [email-masked], Ihor Radchenko <[email-masked]>,
>  Stefan Monnier <[email-masked]>, Adam Porter <[email-masked]>,
>  Andrea Corallo <[email-masked]>, Sean Whitton <[email-masked]>
> From: Stefan Kangas <[email-masked]>
> Date: Sun, 23 Mar 2025 12:48:26 +0000
> 
> Stefan Kangas <[email-masked]> writes:
> 
> > Michael Heerdegen <[email-masked]> writes:
> >
> >> Stefan Kangas <[email-masked]> writes:
> >>
> >>> If not, I think what Sean writes above is the way to go.
> >>
> >> What about what I said and Sean agreed to?  Did you read my replies?
> >
> > Yes, if you mean this part:
> >
> >         Please let's keep those two separate questions separate: (1) is a
> >         certain functionality useful, and (2) if it is, should it be provided,
> >         maybe even only, as a gv setter function.
> >
> > As for `buffer-substring`, if we can't have a function that provides
> > that functionality (the proposed `replace-region`), then (setf
> > (buffer-substring ...) ...) is clearly _not_ obsolete and shouldn't be
> > marked as such.
> >
> > As for `buffer-string`, I don't know any proposed replacement function,
> > so I think it's not obsolete on these grounds too.  FWIW, I don't see a
> > huge need for a replacement function, and I think a generalized variable
> > is perfectly serviceable in that case.
> 
> It seems like we can't find agreement on a way forward for adding
> `replace-region` in Bug#76313, or even on which functions to obsolete
> or how.

That is not a necessary condition for making buffer-substring a
generalized variable.  We could have an internal function, maybe not
even exposed to Lisp, to replace the buffer substring.  That will not
solve the more general replace-region dispute, but no one said we must
always kill all the birds in one blow.