From: Eli Zaretskii <eliz@gnu.org>
To: Alan Mackenzie <acm@muc.de>
Cc: 50946@debbugs.gnu.org, joaotavora@gmail.com
Subject: bug#50946: Emacs-28: Inadequate coding in hack-elisp-shorthands
Date: Sat, 02 Oct 2021 18:00:38 +0300 [thread overview]
Message-ID: <83czonbhex.fsf@gnu.org> (raw)
In-Reply-To: <YVhwoE6DSwgqtLyg@ACM> (message from Alan Mackenzie on Sat, 2 Oct 2021 14:45:52 +0000)
> Date: Sat, 2 Oct 2021 14:45:52 +0000
> Cc: joaotavora@gmail.com, 50946@debbugs.gnu.org
> From: Alan Mackenzie <acm@muc.de>
>
> > > The five aspects I enumerated on my original bug report. Not checking
> > > for a properly formatted Local Variables: section
>
> > That is not part of the function in question, is it? It's in
> > hack-local-variables--find-variables, which we use everywhere.
>
> It is now. It wasn't when I raised the bug a day or two ago.
So this issue is no longer pertinent, right?
> > > not checking for lower-case in that variable being searched for
>
> > That's also in hack-local-variables--find-variables, right?
>
> It is now. It wasn't when I raised the bug
Also not pertinent, right?
> > > not going back at least 3000 characters
>
> > That is now fixed, right?
>
> No, it's not. In certain edge cases, it will go back fewer than 3000
> characters.
Does the patch below solve this?
> > > I worry, to a lesser degree, it is not entirely clear whether setting
> > > the elisp-shorthands variable in the first line of a short file should
> > > be valid or not. I don't think the current hack-elisp-shorthands is
> > > careful enough about this.
>
> > Why does it matter?
>
> Because the first line definition should either be valid or not valid.
> Currently it works for a sufficiently small file, but not for a normal
> sized file. This, I think, is a bug.
No, I don't think it's a bug, at least not a bug specific to
shorthands. That's how file-local variables work in general.
> Say you have a file 3150 bytes long, which is less than 3000 characters
> in Emacs. Your function will load only 3100 bytes, less than 3000
> characters, into the temporary buffer. It thus may fail to find a Local
> Variables section, even if this scenario is highly unusual.
This should be solved by the change below.
> Have you checked that things work if the first byte in your temporary
> buffer isn't at the start of a character?
I don't see why this matter, can you explain?
Here's the patch I promised:
diff --git a/lisp/shorthands.el b/lisp/shorthands.el
index b8204d6..6162efd 100644
--- a/lisp/shorthands.el
+++ b/lisp/shorthands.el
@@ -40,7 +40,10 @@ hack-elisp-shorthands
(with-temp-buffer
(while (and (< (buffer-size) 3000) (>= from 0))
(insert-file-contents fullname nil from to)
- (setq to from from (- from 100)))
+ (setq to from
+ from (cond
+ ((= from 0) -1)
+ (t (max 0 (- from 100))))))
;; FIXME: relies on the `hack-local-variables--find-variables'
;; detail of files.el. That function should be exported,
;; possibly be refactored into two parts, since we're only
next prev parent reply other threads:[~2021-10-02 15:00 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-01 17:10 bug#50946: Emacs-28: Inadequate coding in hack-elisp-shorthands Alan Mackenzie
2021-10-01 17:53 ` Eli Zaretskii
2021-10-01 21:15 ` João Távora
2021-10-02 6:10 ` Eli Zaretskii
2021-10-02 0:48 ` João Távora
2021-10-02 10:50 ` Alan Mackenzie
2021-10-02 11:13 ` João Távora
2021-10-02 11:38 ` João Távora
2021-10-02 12:38 ` Alan Mackenzie
2021-10-02 12:52 ` Eli Zaretskii
2021-10-02 13:57 ` Alan Mackenzie
2021-10-02 14:19 ` Eli Zaretskii
2021-10-02 14:45 ` Alan Mackenzie
2021-10-02 15:00 ` Eli Zaretskii [this message]
2021-10-02 20:07 ` Alan Mackenzie
2021-10-03 11:45 ` Eli Zaretskii
2021-10-03 12:10 ` bug#50946: insert-file-contents can corrupt buffers. [Was: bug#50946: Emacs-28: Inadequate coding in hack-elisp-shorthands] Alan Mackenzie
2021-10-03 12:40 ` Eli Zaretskii
2021-10-03 13:33 ` Alan Mackenzie
2021-10-03 15:04 ` bug#50946: insert-file-contents can corrupt buffers Alan Mackenzie
2021-10-03 15:25 ` Eli Zaretskii
2021-10-03 17:21 ` Alan Mackenzie
2021-10-03 17:36 ` Eli Zaretskii
2021-10-03 18:19 ` Alan Mackenzie
2021-10-03 15:34 ` bug#50946: insert-file-contents can corrupt buffers. [Was: bug#50946: Emacs-28: Inadequate coding in hack-elisp-shorthands] João Távora
2021-10-03 15:42 ` João Távora
2021-10-03 15:56 ` Eli Zaretskii
2021-10-03 16:02 ` João Távora
2021-10-03 16:20 ` Eli Zaretskii
2021-10-03 17:05 ` João Távora
2021-10-03 17:56 ` Eli Zaretskii
2021-10-03 18:59 ` João Távora
2021-10-03 19:51 ` Eli Zaretskii
2021-10-03 19:59 ` João Távora
2021-10-02 15:02 ` bug#50946: Emacs-28: Inadequate coding in hack-elisp-shorthands João Távora
2021-10-04 0:14 ` Richard Stallman
2021-10-02 14:47 ` João Távora
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=83czonbhex.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=50946@debbugs.gnu.org \
--cc=acm@muc.de \
--cc=joaotavora@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).