* bug#61321: 30.0.50; Fail to load file with file variables and CRLF EOL without EOL conversion
@ 2023-02-06 14:02 Kazuhiro Ito
2023-02-06 15:17 ` Eli Zaretskii
0 siblings, 1 reply; 4+ messages in thread
From: Kazuhiro Ito @ 2023-02-06 14:02 UTC (permalink / raw)
To: 61321
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
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#61321: 30.0.50; Fail to load file with file variables and CRLF EOL without EOL conversion
2023-02-06 14:02 bug#61321: 30.0.50; Fail to load file with file variables and CRLF EOL without EOL conversion Kazuhiro Ito
@ 2023-02-06 15:17 ` Eli Zaretskii
2023-02-06 16:01 ` Kazuhiro Ito
0 siblings, 1 reply; 4+ messages in thread
From: Eli Zaretskii @ 2023-02-06 15:17 UTC (permalink / raw)
To: Kazuhiro Ito; +Cc: 61321
> Date: Mon, 06 Feb 2023 23:02:01 +0900
> From: Kazuhiro Ito <kzhr@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)
^ permalink raw reply related [flat|nested] 4+ messages in thread
* bug#61321: 30.0.50; Fail to load file with file variables and CRLF EOL without EOL conversion
2023-02-06 15:17 ` Eli Zaretskii
@ 2023-02-06 16:01 ` Kazuhiro Ito
2023-02-06 16:30 ` Eli Zaretskii
0 siblings, 1 reply; 4+ messages in thread
From: Kazuhiro Ito @ 2023-02-06 16:01 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 61321
> > (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!
--
Kazuhiro Ito
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#61321: 30.0.50; Fail to load file with file variables and CRLF EOL without EOL conversion
2023-02-06 16:01 ` Kazuhiro Ito
@ 2023-02-06 16:30 ` Eli Zaretskii
0 siblings, 0 replies; 4+ messages in thread
From: Eli Zaretskii @ 2023-02-06 16:30 UTC (permalink / raw)
To: Kazuhiro Ito; +Cc: 61321-done
> Date: Tue, 07 Feb 2023 01:01:53 +0900
> From: Kazuhiro Ito <kzhr@d1.dion.ne.jp>
> Cc: 61321@debbugs.gnu.org
>
> > > (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.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-02-06 16:30 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-02-06 14:02 bug#61321: 30.0.50; Fail to load file with file variables and CRLF EOL without EOL conversion Kazuhiro Ito
2023-02-06 15:17 ` Eli Zaretskii
2023-02-06 16:01 ` Kazuhiro Ito
2023-02-06 16:30 ` Eli Zaretskii
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.