Mercurial > emacs
diff lisp/subr.el @ 66508:ecdadc99bf8c
* subr.el (locate-library): Move from help-fns.el.
* help-fns.el (locate-library): Move to subr.el.
author | Romain Francoise <romain@orebokech.com> |
---|---|
date | Fri, 28 Oct 2005 16:55:48 +0000 |
parents | 167ad3f64775 |
children | 6b634736fd83 693e794b57bf |
line wrap: on
line diff
--- a/lisp/subr.el Fri Oct 28 16:44:46 2005 +0000 +++ b/lisp/subr.el Fri Oct 28 16:55:48 2005 +0000 @@ -1309,6 +1309,34 @@ (setq files (cdr files))) file))) +;;;###autoload +(defun locate-library (library &optional nosuffix path interactive-call) + "Show the precise file name of Emacs library LIBRARY. +This command searches the directories in `load-path' like `\\[load-library]' +to find the file that `\\[load-library] RET LIBRARY RET' would load. +Optional second arg NOSUFFIX non-nil means don't add suffixes `load-suffixes' +to the specified name LIBRARY. + +If the optional third arg PATH is specified, that list of directories +is used instead of `load-path'. + +When called from a program, the file name is normaly returned as a +string. When run interactively, the argument INTERACTIVE-CALL is t, +and the file name is displayed in the echo area." + (interactive (list (completing-read "Locate library: " + 'locate-file-completion + (cons load-path load-suffixes)) + nil nil + t)) + (let ((file (locate-file library + (or path load-path) + (append (unless nosuffix load-suffixes) '(""))))) + (if interactive-call + (if file + (message "Library is file %s" (abbreviate-file-name file)) + (message "No library %s in search path" library))) + file)) + ;;;; Specifying things to do later.