]> git.eshelyaron.com Git - emacs.git/commitdiff
Also teach loaddefs-gen.el about shorthands (bug#63480)
authorJoão Távora <joaotavora@gmail.com>
Thu, 30 Nov 2023 02:09:57 +0000 (20:09 -0600)
committerEshel Yaron <me@eshelyaron.com>
Sun, 4 Feb 2024 11:05:18 +0000 (12:05 +0100)
* lisp/emacs-lisp/loaddefs-gen.el (loaddefs-generate--parse-file):
Make aware of read-symbol-shorthands.

(cherry picked from commit c52d17d91ade6c789d8672dbd1301ba86ba4d7d1)

lisp/emacs-lisp/loaddefs-gen.el

index 5f152d3b509c4130f21fd5f576e8cd74e7e28eea..bf5cd24f161a4c2799a0f1222ef19b683a60fac5 100644 (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).