changeset 16273:14ff4afa06ec

(locate-library): Print no messages if called from Lisp.
author Richard M. Stallman <rms@gnu.org>
date Sat, 21 Sep 1996 23:07:06 +0000
parents b64d00e44e7b
children e9819849c533
files lisp/help.el
diffstat 1 files changed, 37 insertions(+), 31 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/help.el	Sat Sep 21 23:00:40 1996 +0000
+++ b/lisp/help.el	Sat Sep 21 23:07:06 1996 +0000
@@ -666,7 +666,7 @@
       (message "%s is not on any key" definition)))
   nil)
 
-(defun locate-library (library &optional nosuffix path)
+(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 `M-x load-library'
 to find the file that `M-x load-library RET LIBRARY RET' would load.
@@ -675,35 +675,41 @@
 
 If the optional third arg PATH is specified, that list of directories
 is used instead of `load-path'."
-  (interactive "sLocate library: ")
-  (catch 'answer
-    (mapcar
-     '(lambda (dir)
-	(mapcar
-	 '(lambda (suf)
-	    (let ((try (expand-file-name (concat library suf) dir)))
-	      (and (file-readable-p try)
-		   (null (file-directory-p try))
-		   (progn
-		     (message "Library is file %s" try)
-		     (throw 'answer try)))))
-	 (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))
+  (interactive (list (read-string "Locate library: ")
+		     nil nil
+		     t))
+  (let (result)
+    (catch 'answer
+      (mapcar
+       '(lambda (dir)
+	  (mapcar
+	   '(lambda (suf)
+	      (let ((try (expand-file-name (concat library suf) dir)))
+		(and (file-readable-p try)
+		     (null (file-directory-p try))
+		     (progn
+		       (setq result try)
+		       (throw 'answer try)))))
+	   (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)))
+    (and interactive-call
+	 (if result
+	     (message "Library is file %s" result)
+	   (message "No library %s in search path" library)))
+    result))
 
 ;;; help.el ends here