Also teach loaddefs-gen.el about shorthands (bug#63480)

* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--parse-file):
Make aware of read-symbol-shorthands.
This commit is contained in:
João Távora 2023-11-29 20:09:57 -06:00
parent 0f715f9c15
commit c52d17d91a

View file

@ -378,6 +378,7 @@ don't include."
(let ((defs nil)
(load-name (loaddefs-generate--file-load-name file main-outfile))
(compute-prefixes t)
read-symbol-shorthands
local-outfile inhibit-autoloads)
(with-temp-buffer
(insert-file-contents file)
@ -399,7 +400,19 @@ don't include."
(setq inhibit-autoloads (read (current-buffer)))))
(save-excursion
(when (re-search-forward "autoload-compute-prefixes: *" nil t)
(setq compute-prefixes (read (current-buffer))))))
(setq compute-prefixes (read (current-buffer)))))
(save-excursion
;; since we're "open-coding" we have to repeat more
;; complicated logic in `hack-local-variables'.
(when (re-search-forward "read-symbol-shorthands: *" nil t)
(let* ((commentless (replace-regexp-in-string
"\n\\s-*;+" ""
(buffer-substring (point) (point-max))))
(unsorted-shorthands (car (read-from-string commentless))))
(setq read-symbol-shorthands
(sort unsorted-shorthands
(lambda (sh1 sh2)
(> (length (car sh1)) (length (car sh2))))))))))
;; We always return the package version (even for pre-dumped
;; files).