Subject: bug#61321: 30.0.50; Fail to load file with file variables and CRLF EOL without EOL conversion

From: Kazuhiro Ito <[email-masked]>
Date: Mon, 06 Feb 2023 23:02:01 +0900

I receive user error in opening a file with file varibles and CRLF EOL
when I inhibit EOL conversion.

(let ((filename (expand-file-name "test.txt"
				  temporary-file-directory)))
  (with-temp-buffer
    (setq buffer-file-coding-system 'dos)
    (insert "This is a test.\n"
	    "\n"
	    "Local Variables:\n"
	    "comment-column: 0\n"
	    "End:\n")
    (write-file filename))
  (unwind-protect
      (let (;; (coding-system-for-read 'unix)
	    (inhibit-eol-conversion t)
	    )
	(find-file filename))
    (delete-file filename)))

-> Local variables entry is missing the suffix

I bumped this issue by calling url-retrieve-synchronously with
coding-system-for-read is let-bound to 'binary.  On MS-Windows, url
package saves cookies into a file with CRLF EOL and fails to load it
under such condition.

Of course I can fix the caller and have already fixed, but
inhibit-eol-conversion is customizable variable and file variables can
be set in any text files.  So this issue may occur in opening any
files, although it should have rarely been a real problem.  (I
confirmed that the issue had been introduced emacs 22 at the latest.)

-- 
Kazuhiro Ito