GNU bug report logs -
#61321
30.0.50; Fail to load file with file variables and CRLF EOL without EOL conversion
Previous Next
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.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 61321 in the body.
You can then email your comments to 61321 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#61321
; Package
emacs
.
(Mon, 06 Feb 2023 14:04:01 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Kazuhiro Ito <kzhr <at> d1.dion.ne.jp>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Mon, 06 Feb 2023 14:04:01 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
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
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#61321
; Package
emacs
.
(Mon, 06 Feb 2023 15:18:01 GMT)
Full text and
rfc822 format available.
Message #8 received at 61321 <at> debbugs.gnu.org (full text, mbox):
> 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)
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#61321
; Package
emacs
.
(Mon, 06 Feb 2023 16:02:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 61321 <at> debbugs.gnu.org (full text, mbox):
> > (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
Reply sent
to
Eli Zaretskii <eliz <at> gnu.org>
:
You have taken responsibility.
(Mon, 06 Feb 2023 16:31:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
Kazuhiro Ito <kzhr <at> d1.dion.ne.jp>
:
bug acknowledged by developer.
(Mon, 06 Feb 2023 16:31:02 GMT)
Full text and
rfc822 format available.
Message #16 received at 61321-done <at> debbugs.gnu.org (full text, mbox):
> Date: Tue, 07 Feb 2023 01:01:53 +0900
> From: Kazuhiro Ito <kzhr <at> d1.dion.ne.jp>
> Cc: 61321 <at> 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.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Tue, 07 Mar 2023 12:24:07 GMT)
Full text and
rfc822 format available.
This bug report was last modified 1 year and 44 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.