From 860af8ecb1e102392a92f868175252bc3e06f561 Mon Sep 17 00:00:00 2001 From: Per Abrahamsen Date: Fri, 11 Apr 1997 13:09:47 +0000 Subject: [PATCH] Initial revision --- lisp/cus-dep.el | 67 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 lisp/cus-dep.el diff --git a/lisp/cus-dep.el b/lisp/cus-dep.el new file mode 100644 index 00000000000..d2364c29029 --- /dev/null +++ b/lisp/cus-dep.el @@ -0,0 +1,67 @@ +;;; cus-dep.el --- Find customization dependencies. +;; +;; Copyright (C) 1997 Free Software Foundation, Inc. +;; +;; Author: Per Abrahamsen +;; 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 -- 2.39.5