Mercurial > emacs
changeset 59318:55722dde9e0a
(file-loadhist-lookup): New function.
(file-provides, file-requires): Use it.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sun, 02 Jan 2005 23:43:51 +0000 |
parents | d30f6c6ad0b5 |
children | 0a7f31475107 |
files | lisp/loadhist.el |
diffstat | 1 files changed, 19 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/loadhist.el Sun Jan 02 23:14:23 2005 +0000 +++ b/lisp/loadhist.el Sun Jan 02 23:43:51 2005 +0000 @@ -51,9 +51,26 @@ (error "%S is not a currently loaded feature" feature) (car (feature-symbols feature)))) +(defun file-loadhist-lookup (file) + "Return the `load-history' element for FILE." + ;; First look for FILE as given. + (let ((symbols (assoc file load-history))) + ;; Try converting a library name to an absolute file name. + (and (null symbols) + (let ((absname (find-library-name file))) + (if (not (equal absname file)) + (setq symbols (cdr (assoc absname load-history)))))) + ;; Try converting an absolute file name to a library name. + (and (null symbols) (string-match "[.]el\\'" file) + (let ((libname (file-name-nondirectory file))) + (string-match "[.]el\\'" libname) + (setq libname (substring libname 0 (match-beginning 0))) + (setq symbols (cdr (assoc libname load-history))))) + symbols)) + (defun file-provides (file) "Return the list of features provided by FILE." - (let ((symbols (cdr (assoc file load-history))) + (let ((symbols (file-loadhist-lookup file)) provides) (mapc (lambda (x) (if (and (consp x) (eq (car x) 'provide)) @@ -63,7 +80,7 @@ (defun file-requires (file) "Return the list of features required by FILE." - (let ((symbols (cdr (assoc file load-history))) + (let ((symbols (file-loadhist-lookup file)) requires) (mapc (lambda (x) (if (and (consp x) (eq (car x) 'require))