Commit 6a2fb145 authored by Stefan Monnier's avatar Stefan Monnier
Browse files

* lisp/emacs-lisp/find-func.el (find-library--load-name): New fun.

(find-library-name): Use it to find relative load names when provided
absolute file name.

Fixes: debbugs:8803
parent 3e0b797f
2011-07-01 Stefan Monnier <monnier@iro.umontreal.ca>
* emacs-lisp/find-func.el (find-library--load-name): New fun.
(find-library-name): Use it to find relative load names when provided
absolute file name (bug#8803).
2011-06-30 Lars Magne Ingebrigtsen <larsi@gnus.org>
* textmodes/flyspell.el (flyspell-word): Consider words that
......@@ -14,7 +20,7 @@
* progmodes/cc-guess.el: New file.
* progmodes/cc-langs.el (c-mode-menu): Added "Style..." submenu.
* progmodes/cc-langs.el (c-mode-menu): Add "Style..." submenu.
* progmodes/cc-styles.el (cc-choose-style-for-mode): New function
derived from `c-basic-common-init'.
......
......@@ -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)."
......@@ -155,6 +164,16 @@ LIBRARY should be a string (the name of the library)."
(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
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment