Mercurial > emacs
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