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
commitb0e3391ace36cf2bb111ed0c56883dd1e0cb4117 (patch)
tree62c3ef8003f944b98fd16327bdc46a7d3e3e280a /elisp/geiser-impl.el
parent7eae5fdf9d5841027701b2f1d555543b472109b7 (diff)
downloadgeiser-b0e3391ace36cf2bb111ed0c56883dd1e0cb4117.tar.gz
geiser-b0e3391ace36cf2bb111ed0c56883dd1e0cb4117.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