1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-10 08:10:21 -08:00

Avoid loading cl-lib as result of invoking 'load-library'

* lisp/emacs-lisp/find-func.el (find-function--any-subform-p):
Don't use 'cl-destructuring-bind'.
(find-library--from-load-history): Don't use 'cl-loop'.
* lisp/thingatpt.el (thing-at-point): Don't use 'cl-loop'.  This
avoids loading cl-lib whenever thingatpt.el is loaded, for
example, as result of "M-x load-library".
This commit is contained in:
Eli Zaretskii 2023-11-18 10:13:37 +02:00
parent ae06e0275d
commit bb64e3a798
2 changed files with 23 additions and 16 deletions

View file

@ -42,8 +42,6 @@
;;; Code:
(eval-when-compile (require 'cl-lib))
;;; User variables:
(defgroup find-function nil
@ -247,13 +245,19 @@ LIBRARY should be a string (the name of the library)."
;; LIBRARY may be "foo.el" or "foo".
(let ((load-re
(concat "\\(" (regexp-quote (file-name-sans-extension library)) "\\)"
(regexp-opt (get-load-suffixes)) "\\'")))
(cl-loop
for (file . _) in load-history thereis
(and (stringp file) (string-match load-re file)
(let ((dir (substring file 0 (match-beginning 1)))
(basename (match-string 1 file)))
(locate-file basename (list dir) (find-library-suffixes)))))))
(regexp-opt (get-load-suffixes)) "\\'"))
(alist load-history)
elt file found)
(while (and alist (null found))
(setq elt (car alist)
alist (cdr alist)
file (car elt)
found (and (stringp file) (string-match load-re file)
(let ((dir (substring file 0 (match-beginning 1)))
(basename (match-string 1 file)))
(locate-file basename (list dir)
(find-library-suffixes))))))
found))
(defvar find-function-C-source-directory
(let ((dir (expand-file-name "src" source-directory)))
@ -469,7 +473,8 @@ Return t if any PRED returns t."
((not (consp form)) nil)
((funcall pred form) t)
(t
(cl-destructuring-bind (left-child . right-child) form
(let ((left-child (car form))
(right-child (cdr form)))
(or
(find-function--any-subform-p left-child pred)
(find-function--any-subform-p right-child pred))))))