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

From: [email-masked] (GNU bug Tracking System)
Date: Mon, 06 Feb 2023 16:31:02 +0000

Your bug report

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

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
61321: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=61321
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#61321: 30.0.50; Fail to load file with file variables and CRLF EOL without EOL conversion
From: Eli Zaretskii <[email-masked]>
To: Kazuhiro Ito <[email-masked]>
Cc: [email-masked]
Date: Mon, 06 Feb 2023 18:30:10 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

> Date: Tue, 07 Feb 2023 01:01:53 +0900
> From: Kazuhiro Ito <[email-masked]>
> Cc: [email-masked]
> 
> > > (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
> > 
> > Thanks.  Does the patch below give good results?
> 
> I confirmed the problem was fixed.  Thank you for the quick fix!

Thanks, I've now installed this on the master branch, and I'm
therefore closing this bug.

Subject: 30.0.50; Fail to load file with file variables and CRLF EOL without EOL conversion
From: Kazuhiro Ito <[email-masked]>
To: [email-masked]
Date: Mon, 06 Feb 2023 23:02:01 +0900
List-Id: <debbugs-submit.debbugs.gnu.org>

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