+(defun riece-examine-modules (srcdir)
+ (let ((load-path (cons nil (cons srcdir load-path))))
+ (require 'riece-mcat)
+ (require 'riece-addon-modules)
+ (append riece-modules
+ riece-mcat-modules
+ (mapcar #'car riece-addon-modules))))
+
+(defun riece-examine ()
+ (princ (mapconcat #'symbol-name
+ (riece-examine-modules (car command-line-args-left))
+ " ")))
+
+(defun riece-update-mcat ()
+ (let* ((srcdir (car command-line-args-left))
+ (modules (riece-examine-modules srcdir))
+ (pointer riece-mcat-modules)
+ files)
+ (while pointer
+ (setq modules (delq (car pointer) modules)
+ pointer (cdr pointer)))
+ (setq files (mapcar (lambda (module)
+ (concat (symbol-name module) ".el"))
+ modules)
+ pointer riece-mcat-modules)
+ (while pointer
+ (riece-mcat-update files (concat (symbol-name (car pointer)) ".el")
+ (intern (concat (symbol-name (car pointer))
+ "-alist")))
+ (setq pointer (cdr pointer))))
+ ;; Workaround for an XEmacs 21.5 bug ("xemacs -batch -f <func> <arg1>"
+ ;; attempts to open <arg1> as a file after <func>).
+ (setq command-line-args-left (cdr command-line-args-left)))
+