GNU bug report logs - #61321
30.0.50; Fail to load file with file variables and CRLF EOL without EOL conversion

Previous Next

Package: emacs;

Reported by: Kazuhiro Ito <kzhr <at> d1.dion.ne.jp>

Date: Mon, 6 Feb 2023 14:04:01 UTC

Severity: normal

Found in version 30.0.50

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #8 received at 61321 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Kazuhiro Ito <kzhr <at> d1.dion.ne.jp>
Cc: 61321 <at> debbugs.gnu.org
Subject: Re: bug#61321: 30.0.50;
 Fail to load file with file variables and CRLF EOL without EOL
 conversion
Date: Mon, 06 Feb 2023 17:17:46 +0200
> Date: Mon, 06 Feb 2023 23:02:01 +0900
> From: Kazuhiro Ito <kzhr <at> d1.dion.ne.jp>
> 
> (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?

diff --git a/lisp/files.el b/lisp/files.el
index 9da8244..b0ec6bb 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -4017,6 +4017,7 @@ hack-local-variables--find-variables
 	  (forward-line 1)
 	  (let ((startpos (point))
 	        endpos
+                (selective-p (eq selective-display t))
 	        (thisbuf (current-buffer)))
 	    (save-excursion
 	      (unless (let ((case-fold-search t))
@@ -4033,7 +4034,8 @@ hack-local-variables--find-variables
 	    (with-temp-buffer
 	      (insert-buffer-substring thisbuf startpos endpos)
 	      (goto-char (point-min))
-	      (subst-char-in-region (point) (point-max) ?\^m ?\n)
+              (if selective-p
+	          (subst-char-in-region (point) (point-max) ?\r ?\n))
 	      (while (not (eobp))
 	        ;; Discard the prefix.
 	        (if (looking-at prefix)




This bug report was last modified 2 years and 105 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.