]> git.eshelyaron.com Git - emacs.git/commitdiff
(loaddefs-generate--parse-file): Be a bit more defensive
authorStefan Monnier <monnier@iro.umontreal.ca>
Tue, 6 Feb 2024 18:21:22 +0000 (13:21 -0500)
committerEshel Yaron <me@eshelyaron.com>
Wed, 7 Feb 2024 10:56:07 +0000 (11:56 +0100)
* 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.

(cherry picked from commit a2201a2034a86b4cc90132ab2d920456866c11e3)

lisp/emacs-lisp/loaddefs-gen.el

index 7eced43e7354c1743f63d427948a4efe19a64e6b..7cfb14ace5f6e2f1ea292105b46ce0cbad1f8db8 100644 (file)
@@ -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)