(require 'bytecomp) (require 'cus-load) (require 'debug) (defsubst match-delete (regexp-list rlist) (mapcar '(lambda (ent) (let ((rl regexp-list)) (while (car rl) (if (and ent (string-match (car rl) ent)) (setq ent nil)) (setq rl (cdr rl))) ent)) (delq nil rlist))) (defsubst site-load-packages-find (find-dir) (let ((dfiles (directory-files find-dir nil)) files) (while (car dfiles) (unless (or (string= "." (car dfiles)) (string= ".." (car dfiles))) (setq files (append files (directory-files (concat find-dir (car dfiles)))))) (setq dfiles (cdr dfiles))) (delq nil (match-delete site-load-packages-excludes (mapcar '(lambda (file) (and (string-match ".*\\.elc" file) file)) files))))) (setq site-load-packages-excludes '("info" "where-was-i-db.elc" "quail.elc" "egg" "its" "calc" "calendar" "efs" "gnats" "send-pr" "igrep.elc" "compile.elc" "mule-trex.elc" "ledit.elc" "pcl-cvs" "cvs-" "eiff" "make-mode" "psgml" "speedbar" "custom-load" "crontab.elc" "filladapt.elc" "flyspell.elc" "sb-" "hexl.elc" "auto-autoloads.elc" ;; excludes )) (setq site-load-packages (append (site-load-packages-find "/usr/local/xemacs/lib/xemacs/xemacs-packages/lisp/") ;; (site-load-packages-find ;; "/usr/local/xemacs/lib/xemacs/site-lisp/") ))