1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -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)
(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)))))))
(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))))))

View file

@ -52,7 +52,6 @@
;;; Code:
(require 'cl-lib)
(provide 'thingatpt)
(defvar thing-at-point-provider-alist nil
@ -175,11 +174,14 @@ See the file `thingatpt.el' for documentation on how to define
a symbol as a valid THING."
(let ((text
(cond
((cl-loop for (pthing . function) in thing-at-point-provider-alist
when (eq pthing thing)
for result = (funcall function)
when result
return result))
((let ((alist thing-at-point-provider-alist)
elt result)
(while (and alist (null result))
(setq elt (car alist)
alist (cdr alist))
(and (eq (car elt) thing)
(setq result (funcall (cdr elt)))))
result))
((get thing 'thing-at-point)
(funcall (get thing 'thing-at-point)))
(t