summaryrefslogtreecommitdiff
path: root/elisp/geiser-impl.el
diff options
context:
space:
mode:
authorJose Antonio Ortega Ruiz <jao@gnu.org>2009-06-28 21:47:49 +0200
committerJose Antonio Ortega Ruiz <jao@gnu.org>2009-06-28 21:47:49 +0200
commitd0c74836bd62ec7adb853e8239af4005c1801aaf (patch)
tree95efb5a78bcce2cae2a47b1100bb35a9e2cb0c6c /elisp/geiser-impl.el
parent870d60071b8bb7d56bb3c9433b8b4b07d8206a60 (diff)
downloadgeiser-chez-d0c74836bd62ec7adb853e8239af4005c1801aaf.tar.gz
geiser-chez-d0c74836bd62ec7adb853e8239af4005c1801aaf.tar.bz2
Bug fix: initialisation loop removed.
Diffstat (limited to 'elisp/geiser-impl.el')
-rw-r--r--elisp/geiser-impl.el13
1 files changed, 8 insertions, 5 deletions
diff --git a/elisp/geiser-impl.el b/elisp/geiser-impl.el
index cb5daa8..32acade 100644
--- a/elisp/geiser-impl.el
+++ b/elisp/geiser-impl.el
@@ -64,7 +64,8 @@ determine its scheme flavour."
(defvar geiser-impl--impls nil)
(defun geiser-impl--register (impl)
- (when (require (geiser-impl--impl-feature impl) nil t)
+ (when (and (not (memq impl geiser-impl--impls))
+ (require (geiser-impl--impl-feature impl) nil t))
(add-to-list 'geiser-impl--impls impl)))
(defun geiser-impl--unregister (impl)
@@ -276,11 +277,13 @@ implementation to be used by Geiser."))
(load-library (format "geiser-%s" impl))))
+(provide 'geiser-impl)
+
+
;;; Initialization:
-(mapc 'geiser-impl--register
- (or geiser-impl-installed-implementations '(guile plt)))
+(eval-after-load 'geiser-impl
+ '(mapc 'geiser-impl--register
+ (or geiser-impl-installed-implementations '(guile plt))))
-
-(provide 'geiser-impl)
;;; geiser-impl.el ends here