changeset 21264:9eb6fcceba90

(normal-top-level-add-subdirs-to-load-path): New function.
author Karl Heuer <kwzh@gnu.org>
date Mon, 23 Mar 1998 00:15:20 +0000
parents 4a9b37818fac
children 4ed8d9f3dd4b
files lisp/startup.el
diffstat 1 files changed, 20 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/startup.el	Mon Mar 23 00:14:06 1998 +0000
+++ b/lisp/startup.el	Mon Mar 23 00:15:20 1998 +0000
@@ -333,6 +333,26 @@
 
 (defvar init-file-had-error nil)
 
+(defun normal-top-level-add-subdirs-to-load-path ()
+  "Add all subdirectories of current directory to `load-path'."
+  (let (dirs 
+	(pending (list default-directory)))
+    ;; This loop does a breadth-first tree walk on DIR's subtree,
+    ;; putting each subdir into DIRS as its contents are examined.
+    (while pending
+      (setq dirs (cons (car pending) dirs))
+      (setq pending (cdr pending))
+      (let ((contents (directory-files (car dirs)))
+	    (default-directory (car dirs)))
+	(while contents
+	  (unless (member (car contents)
+			  '("." ".." "RCS"))
+	    (when (file-directory-p (car contents))
+	      (setq pending (nconc pending
+				   (list (expand-file-name (car contents)))))))
+	  (setq contents (cdr contents)))))
+    (normal-top-level-add-to-load-path dirs)))
+
 ;; This function is called from the subdirs.el file.
 (defun normal-top-level-add-to-load-path (dirs)
   (let ((tail load-path)