]> git.eshelyaron.com Git - emacs.git/commitdiff
Ensure that EXTRA-DATA are always written when generating autoloads
authorPhilip Kaludercic <philipk@posteo.net>
Sun, 7 May 2023 19:37:01 +0000 (21:37 +0200)
committerPhilip Kaludercic <philipk@posteo.net>
Fri, 12 May 2023 07:41:55 +0000 (09:41 +0200)
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate): Handle
edge-case where no autoloads are found.  (Bug#63260)

lisp/emacs-lisp/loaddefs-gen.el

index 2a46fb7a022f9b67fb083fd862b3b5406d0a661e..5db9af21508cf55c4b4547134c8ecfc9089ca77d 100644 (file)
@@ -656,7 +656,20 @@ instead of just updating them with the new/changed autoloads."
             (write-region (point-min) (point-max) loaddefs-file nil 'silent)
             (byte-compile-info
              (file-relative-name loaddefs-file (car (ensure-list dir)))
-             t "GEN")))))))
+             t "GEN")))))
+
+    ;; If processing files without any autoloads, the above loop will
+    ;; not generate any files.  If the function was invoked with
+    ;; EXTRA-DATA, we want to ensure that even if no autoloads were
+    ;; found, that at least a file will have been generated containing
+    ;; the contents of EXTRA-DATA:
+    (when (and extra-data (not (file-exists-p output-file)))
+      (with-temp-buffer
+        (insert (loaddefs-generate--rubric output-file nil t))
+        (search-backward "\f")
+        (insert extra-data)
+        (ensure-empty-lines 1)
+        (write-region (point-min) (point-max) output-file nil 'silent)))))
 
 (defun loaddefs-generate--print-form (def)
   "Print DEF in a format that makes sense for version control."