# HG changeset patch # User Richard M. Stallman # Date 1104709431 0 # Node ID 55722dde9e0a3d491fa0ea5a378a874ad890d30e # Parent d30f6c6ad0b5ecaa26ffbd961ccb02548043591e (file-loadhist-lookup): New function. (file-provides, file-requires): Use it. diff -r d30f6c6ad0b5 -r 55722dde9e0a lisp/loadhist.el --- 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))