From fd31ef21c5b4679da9c2e26f5aeade8d667d9089 Mon Sep 17 00:00:00 2001 From: Alan Mackenzie Date: Sat, 22 Jan 2022 17:48:46 +0000 Subject: [PATCH] Don't use 'load-read-function' in byte-compile-from-buffer * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Call read-positioning-symbols directly, rather than binding load-read-function to it. This is so that a lower level use of load-read-function will not return a form containing symbols with position. --- lisp/emacs-lisp/bytecomp.el | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index 903dd50e34d..794dc531ea2 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -2303,8 +2303,11 @@ With argument ARG, insert value in current buffer after the form." (forward-line 1)) (not (eobp))) (let* ((lread--unescaped-character-literals nil) - (load-read-function #'read-positioning-symbols) - (form (funcall load-read-function inbuffer)) + ;; Don't bind `load-read-function' to + ;; `read-positioning-symbols' here. Calls to `read' + ;; at a lower level must not get symbols with + ;; position. + (form (read-positioning-symbols inbuffer)) (warning (byte-run--unescaped-character-literals-warning))) (when warning (byte-compile-warn-x form "%s" warning)) (byte-compile-toplevel-file-form form))) -- 2.39.5