Merge from trunk.
This commit is contained in:
commit
d0672f86c9
11 changed files with 518 additions and 69 deletions
|
@ -141,6 +141,15 @@ See the functions `find-function' and `find-variable'."
|
|||
(dolist (suffix (get-load-suffixes) (nreverse suffixes))
|
||||
(unless (string-match "elc" suffix) (push suffix suffixes)))))
|
||||
|
||||
(defun find-library--load-name (library)
|
||||
(let ((name library))
|
||||
(dolist (dir load-path)
|
||||
(let ((rel (file-relative-name library dir)))
|
||||
(if (and (not (string-match "\\`\\.\\./" rel))
|
||||
(< (length rel) (length name)))
|
||||
(setq name rel))))
|
||||
(unless (equal name library) name)))
|
||||
|
||||
(defun find-library-name (library)
|
||||
"Return the absolute file name of the Emacs Lisp source of LIBRARY.
|
||||
LIBRARY should be a string (the name of the library)."
|
||||
|
@ -148,13 +157,23 @@ LIBRARY should be a string (the name of the library)."
|
|||
;; the same name.
|
||||
(if (string-match "\\.el\\(c\\(\\..*\\)?\\)\\'" library)
|
||||
(setq library (replace-match "" t t library)))
|
||||
(or
|
||||
(or
|
||||
(locate-file library
|
||||
(or find-function-source-path load-path)
|
||||
(find-library-suffixes))
|
||||
(locate-file library
|
||||
(or find-function-source-path load-path)
|
||||
load-file-rep-suffixes)
|
||||
(when (file-name-absolute-p library)
|
||||
(let ((rel (find-library--load-name library)))
|
||||
(when rel
|
||||
(or
|
||||
(locate-file rel
|
||||
(or find-function-source-path load-path)
|
||||
(find-library-suffixes))
|
||||
(locate-file rel
|
||||
(or find-function-source-path load-path)
|
||||
load-file-rep-suffixes)))))
|
||||
(error "Can't find library %s" library)))
|
||||
|
||||
(defvar find-function-C-source-directory
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue