changeset 17393:14c7f7b87c22

Initial revision
author Per Abrahamsen <abraham@dina.kvl.dk>
date Fri, 11 Apr 1997 13:09:47 +0000
parents 7cb4b3489fac
children b793e8f5a9c2
files lisp/cus-dep.el
diffstat 1 files changed, 67 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/cus-dep.el	Fri Apr 11 13:09:47 1997 +0000
@@ -0,0 +1,67 @@
+;;; cus-dep.el --- Find customization dependencies.
+;;
+;; Copyright (C) 1997 Free Software Foundation, Inc.
+;;
+;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
+;; Keywords: internal
+
+;;; Code:
+
+(require 'cl)
+(load-file "widget.el")
+(load-file "custom.el")
+(load-file "cus-face.el")
+
+(defun custom-make-dependencies ()
+  "Batch function to extract custom dependencies from .el files.
+Usage: emacs -batch -l ./cus-dep.el -f custom-make-dependencies"
+  (let ((enable-local-eval nil)
+	(files (directory-files "" nil "\\`[^=].*\\.el\\'" t))
+	file)
+    (while files
+      (setq file (car files)
+	    files (cdr files))
+      (message "Checking %s..." file)
+      (set-buffer (find-file-noselect file))
+      (goto-char (point-min))
+      (string-match "\\`\\(.*\\)\\.el\\'" file)
+      (condition-case nil
+	  (let ((name (file-name-nondirectory (match-string 1 file))))
+	    (while t
+	      (let ((expr (read (current-buffer))))
+		(when (and (listp expr)
+			   (memq (car expr) '(defcustom defface defgroup)))
+		  (eval expr)
+		  (put (nth 1 expr) 'custom-where name)))))
+	(error nil))
+      (kill-buffer (current-buffer))))
+  (message "Generating cus-load.el...")
+  (find-file "cus-load.el")
+  (erase-buffer)
+  (insert "\
+;;; cus-load.el --- automatically extracted custom dependencies
+;;
+;;; Code:
+")
+  (mapatoms (lambda (symbol)
+	      (let ((members (get symbol 'custom-group))
+		    item where found)
+		(when members
+		  (while members
+		    (setq item (car (car members))
+			  members (cdr members)
+			  where (get item 'custom-where))
+		    (unless (or (null where)
+				(member where found))
+		      (if found
+			  (insert " ")
+			(insert "(put '" (symbol-name symbol) 
+				" 'custom-loads '("))
+		      (insert (prin1-to-string where))
+		      (push where found)))
+		  (insert "))\n")))))
+  (insert "\n;;; cus-load.el ends here\n")
+  (save-buffer)
+  (message "Generating cus-load.el..."))
+
+;;; cus-dep.el ends here