emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/loadhist.el


From: Richard M . Stallman
Subject: [Emacs-diffs] Changes to emacs/lisp/loadhist.el
Date: Sun, 02 Jan 2005 18:56:09 -0500

Index: emacs/lisp/loadhist.el
diff -c emacs/lisp/loadhist.el:1.29 emacs/lisp/loadhist.el:1.30
*** emacs/lisp/loadhist.el:1.29 Mon Feb 16 17:49:26 2004
--- emacs/lisp/loadhist.el      Sun Jan  2 23:43:51 2005
***************
*** 51,59 ****
        (error "%S is not a currently loaded feature" feature)
      (car (feature-symbols feature))))
  
  (defun file-provides (file)
    "Return the list of features provided by FILE."
!   (let ((symbols (cdr (assoc file load-history)))
        provides)
      (mapc (lambda (x)
            (if (and (consp x) (eq (car x) 'provide))
--- 51,76 ----
        (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 (file-loadhist-lookup file))
        provides)
      (mapc (lambda (x)
            (if (and (consp x) (eq (car x) 'provide))
***************
*** 63,69 ****
  
  (defun file-requires (file)
    "Return the list of features required by FILE."
!   (let ((symbols (cdr (assoc file load-history)))
        requires)
      (mapc (lambda (x)
            (if (and (consp x) (eq (car x) 'require))
--- 80,86 ----
  
  (defun file-requires (file)
    "Return the list of features required by FILE."
!   (let ((symbols (file-loadhist-lookup file))
        requires)
      (mapc (lambda (x)
            (if (and (consp x) (eq (car x) 'require))




reply via email to

[Prev in Thread] Current Thread [Next in Thread]