| @@ -68,48 +68,6 @@ Otherwize hook it." | |||||
| (lambda () | (lambda () | ||||
| ,@body)))) | ,@body)))) | ||||
| ;; (defmacro safe-require-or-eval (feature) | |||||
| ;; "Require FEATURE if available. | |||||
| ;; At compile time the feature will be loaded immediately." | |||||
| ;; `(eval-and-compile | |||||
| ;; (message "safe-require-or-eval: Trying to require %s" ,feature) | |||||
| ;; (require ,feature nil t))) | |||||
| ;; (defmacro autoload-eval-lazily (feature &optional functions &rest body) | |||||
| ;; "Define autoloading FEATURE that defines FUNCTIONS. | |||||
| ;; FEATURE is a symbol. FUNCTIONS is a list of symbols. If FUNCTIONS is nil, | |||||
| ;; the function same as FEATURE is defined as autoloaded function. BODY is passed | |||||
| ;; to `eval-after-load'. | |||||
| ;; After this macro is expanded, this returns the path to library if FEATURE | |||||
| ;; found, otherwise returns nil." | |||||
| ;; (declare (indent 2) (debug t)) | |||||
| ;; (let* ((libname (symbol-name (eval feature))) | |||||
| ;; (libpath (locate-library libname))) | |||||
| ;; `(progn | |||||
| ;; (when (locate-library ,libname) | |||||
| ;; ,@(mapcar (lambda (f) | |||||
| ;; `(unless (fboundp ',f) | |||||
| ;; (progn | |||||
| ;; (message "Autoloaded function `%S' defined (%s)" | |||||
| ;; (quote ,f) | |||||
| ;; ,libpath) | |||||
| ;; (autoload (quote ,f) | |||||
| ;; ,libname | |||||
| ;; ,(concat "Autoloaded function defined in \"" | |||||
| ;; libpath | |||||
| ;; "\".") | |||||
| ;; t)))) | |||||
| ;; (or (eval functions) | |||||
| ;; `(,(eval feature))))) | |||||
| ;; (eval-after-load ,feature | |||||
| ;; (quote (progn | |||||
| ;; ,@body))) | |||||
| ;; (locate-library ,libname)))) | |||||
| ;; (when (autoload-eval-lazily 'tetris nil | |||||
| ;; (message "Tetris loaded!")) | |||||
| ;; (message "Tetris found!")) | |||||
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||||
| ;; package | ;; package | ||||