X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/8743d4cb20748ac0384085a486236e2e6c5b3be0..16f45d1b8d556362a0668f192e4453f126946b1c:/lisp/help.el diff --git a/lisp/help.el b/lisp/help.el index 2c39c4c6da..97887b1c81 100644 --- a/lisp/help.el +++ b/lisp/help.el @@ -99,8 +99,7 @@ (list (concat "\\`\\(" name-char "+\\)\\(\\(:\\)\\|\\('\\)\\)") '(1 (if (match-beginning 3) font-lock-function-name-face - font-lock-variable-name-face) - nil t)) + font-lock-variable-name-face))) ;; ;; Words inside `' which tend to be symbol names. (list (concat "`\\(" sym-char sym-char "+\\)'") @@ -667,12 +666,15 @@ Argument is a command definition, usually a symbol with a function definition." (message "%s is not on any key" definition))) nil) -(defun locate-library (library &optional nosuffix) - "Show the full path name of Emacs library LIBRARY. +(defun locate-library (library &optional nosuffix path) + "Show the precise file name of Emacs library LIBRARY. This command searches the directories in `load-path' like `M-x load-library' to find the file that `M-x load-library RET LIBRARY RET' would load. Optional second arg NOSUFFIX non-nil means don't add suffixes `.elc' or `.el' -to the specified name LIBRARY (a la calling `load' instead of `load-library')." +to the specified name LIBRARY. + +If the optional third arg PATH is specified, that list of directories +is used instead of `load-path'." (interactive "sLocate library: ") (catch 'answer (mapcar @@ -685,8 +687,22 @@ to the specified name LIBRARY (a la calling `load' instead of `load-library')." (progn (message "Library is file %s" try) (throw 'answer try))))) - (if nosuffix '("") '(".elc" ".el" "")))) - load-path) + (if nosuffix + '("") + (let ((basic '(".elc" ".el" "")) + (compressed '(".Z" ".gz" ""))) + ;; If autocompression mode is on, + ;; consider all combinations of library suffixes + ;; and compression suffixes. + (if (rassq 'jka-compr-handler file-name-handler-alist) + (apply 'nconc + (mapcar '(lambda (compelt) + (mapcar '(lambda (baselt) + (concat baselt compelt)) + basic)) + compressed)) + basic))))) + (or path load-path)) (message "No library %s in search path" library) nil))