Subject: bug#12598: 24.2; utf-8 codepoints in doc-strings and compression of .el and .elc files

From: Lars Ingebrigtsen <[email-masked]>
Date: Sat, 23 Apr 2022 18:18:26 +0200

Stefan Monnier <[email-masked]> writes:

> So re-enabling the
>
>   handler = Ffind_file_name_handler (file, Qload);
>
> code might be the best fix.  But does it really work?  I mean, with
> byte-compile-dynamic file for example (or to find the docstrings after
> loading the file)?

I've added a failing test case to Emacs 29.  If we re-enable that bit in
Fload, the test no longer fails (but there may be other test cases; feel
free to amend).

However, this makes files-tests-file-name-non-special-load fail --
perhaps Michael has some insights here; added to the CCs.

But the logic of Fload is pretty unclear.  It seems we do end up calling
find-file-name-handler anyway, but later:

  /* If FD is -2, that means openp found a magic file.  */
  if (fd == -2)
    {
      if (NILP (Fequal (found, file)))
	/* If FOUND is a different file name from FILE,
	   find its handler even if we have already inhibited
	   the `load' operation on FILE.  */
	handler = Ffind_file_name_handler (found, Qt);
      else
	handler = Ffind_file_name_handler (found, Qload);
      if (! NILP (handler))
	return call5 (handler, Qload, found, noerror, nomessage, Qt);

Hm...  is this just because of the way that test is set up?  

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no