Subject: bug#50946: insert-file-contents can corrupt buffers. [Was: bug#50946: Emacs-28: Inadequate coding in hack-elisp-shorthands]

From: Alan Mackenzie <[email-masked]>
Date: Sun, 3 Oct 2021 13:33:59 +0000

Hello, Eli.

On Sun, Oct 03, 2021 at 15:40:24 +0300, Eli Zaretskii wrote:
> > Date: Sun, 3 Oct 2021 12:10:19 +0000
> > Cc: [email-masked], [email-masked]
> > From: Alan Mackenzie <[email-masked]>

[ .... ]

> > There are bugs in the documentation of insert-file-contents in the
> > elisp manual.  It confuses bytes with characters, and it fails to
> > mention the need to keep BEG and END at character boundaries.  I
> > propose installing the following patch to the release branch:

> Thanks, I will review this later.  However:

> > @@ -580,7 +583,8 @@ Reading from Files
> >  This function works like @code{insert-file-contents} except that it
> >  does not run @code{after-insert-file-functions}, and does not do
> >  format decoding, character code conversion, automatic uncompression,
> > -and so on.
> > +and so on.  @var{beg} and @var{end}, if non-@code{nil}, should be at
> > +character boundaries, as in @code{insert-file-contents}.
> >  @end defun

> I don't think I understand why you made this second correction:
> insert-file-contents-literally deals with bytes to begin with.

OK, thanks, I think I was mistaken, there.  Raw bytes is what we want
from i-f-c-literally.  I find this difficult to see from the text in
files.texi.  It describes the result in terms of the internal processing
rather than the effect seen by the user.  Maybe I could improve that.

> > The doc strings of insert-file-contents\(-literally\)? will also need to
> > be updated.

> In some sense, yes.

-- 
Alan Mackenzie (Nuremberg, Germany).