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

From: Eli Zaretskii <[email-masked]>
Date: Sun, 03 Oct 2021 18:56:05 +0300

> From: João Távora <[email-masked]>
> Cc:  [email-masked]
> Date: Sun, 03 Oct 2021 16:34:19 +0100
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> > João, why didn't you simply insert
> >
> >   (alist-get 'elisp-shorthands (hack-local-variables--find-variables))
> >
> > in load-with-code-conversion, immediately after it calls
> > insert-file-contents?  Are there any problems with that, and if so,
> > what are they?
> 
> There shouldn't be any big problems.  As I said, I think that is
> cleaner.  However, doing it "from the outside" is safer (except for
> these insert-file-contents bugs/edge cases, which frankly escape me).
> 
> Your suggestion has a very minor problem, that you're doing this stuff
> in lisp/international/mule.el, which slightly icky.

Why "icky"?  The whole load-with-code-conversion stuff is defined
there, so that's a natural place for any things that need to be done
during loading, IMO.

> A bigger problem is that hack-local-variables--find-variables isn't
> defined at that point and the function will then be used to load
> lisp/files.el itself (which happens to be where h-l-v--f-v is defined).

You are talking about loadup?  We can easily condition the call by
that function's being fboundp, no?  Preloaded files, at least those
loaded before file.el, should not use shorthands, so bypassing the
call should not produce any problems.  Am I missing something?

> (BTW this is after the agreed renaming to read-symbol-shorthands, which
> I just pushed)

OK, thanks.