emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master a2201a2034a: (loaddefs-generate--parse-file): Be a bit more defen


From: Stefan Monnier
Subject: master a2201a2034a: (loaddefs-generate--parse-file): Be a bit more defensive
Date: Tue, 6 Feb 2024 13:21:33 -0500 (EST)

branch: master
commit a2201a2034a86b4cc90132ab2d920456866c11e3
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>

    (loaddefs-generate--parse-file): Be a bit more defensive
    
    * lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--parse-file):
    Don't fail in case of an error while generating the prefixes.
    (loaddefs-generate--compute-prefixes): Don't burp when
    `read-from-string` returns something else than a symbol.
---
 lisp/emacs-lisp/loaddefs-gen.el | 27 +++++++++++++++------------
 1 file changed, 15 insertions(+), 12 deletions(-)

diff --git a/lisp/emacs-lisp/loaddefs-gen.el b/lisp/emacs-lisp/loaddefs-gen.el
index 7eced43e735..7cfb14ace5f 100644
--- a/lisp/emacs-lisp/loaddefs-gen.el
+++ b/lisp/emacs-lisp/loaddefs-gen.el
@@ -489,10 +489,12 @@ don't include."
 
         (when (and autoload-compute-prefixes
                    compute-prefixes)
-          (when-let ((form (loaddefs-generate--compute-prefixes load-name)))
-            ;; This output needs to always go in the main loaddefs.el,
-            ;; regardless of `generated-autoload-file'.
-            (push (list main-outfile file form) defs)))))
+          (with-demoted-errors "%S"
+            (when-let
+                ((form (loaddefs-generate--compute-prefixes load-name)))
+              ;; This output needs to always go in the main loaddefs.el,
+              ;; regardless of `generated-autoload-file'.
+              (push (list main-outfile file form) defs))))))
     defs))
 
 (defun loaddefs-generate--compute-prefixes (load-name)
@@ -506,14 +508,15 @@ don't include."
                ;; Consider `read-symbol-shorthands'.
                (probe (let ((obarray (obarray-make)))
                         (car (read-from-string name)))))
-          (setq name (symbol-name probe))
-          (when (save-excursion
-                  (goto-char (match-beginning 0))
-                  (or (bobp)
-                      (progn
-                        (forward-line -1)
-                        (not (looking-at ";;;###autoload")))))
-            (push name prefs)))))
+          (when (symbolp name)
+            (setq name (symbol-name probe))
+            (when (save-excursion
+                    (goto-char (match-beginning 0))
+                    (or (bobp)
+                        (progn
+                          (forward-line -1)
+                          (not (looking-at ";;;###autoload")))))
+              (push name prefs))))))
     (loaddefs-generate--make-prefixes prefs load-name)))
 
 (defun loaddefs-generate--rubric (file &optional type feature compile)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]