]> git.eshelyaron.com Git - emacs.git/commitdiff
(locate-library): New arg PATH. Handle autocompression mode.
authorRichard M. Stallman <rms@gnu.org>
Mon, 2 Sep 1996 01:16:42 +0000 (01:16 +0000)
committerRichard M. Stallman <rms@gnu.org>
Mon, 2 Sep 1996 01:16:42 +0000 (01:16 +0000)
lisp/help.el

index 8e1317ed0d4c526acc9bafb3e2519951ad07fe56..97887b1c81c453191210229878efa353027156db 100644 (file)
@@ -666,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)
+(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."
+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
@@ -684,8 +687,22 @@ to the specified name 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))