diff options
author | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2009-06-28 21:47:49 +0200 |
---|---|---|
committer | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2009-06-28 21:47:49 +0200 |
commit | d0c74836bd62ec7adb853e8239af4005c1801aaf (patch) | |
tree | 95efb5a78bcce2cae2a47b1100bb35a9e2cb0c6c /elisp | |
parent | 870d60071b8bb7d56bb3c9433b8b4b07d8206a60 (diff) | |
download | geiser-chez-d0c74836bd62ec7adb853e8239af4005c1801aaf.tar.gz geiser-chez-d0c74836bd62ec7adb853e8239af4005c1801aaf.tar.bz2 |
Bug fix: initialisation loop removed.
Diffstat (limited to 'elisp')
-rw-r--r-- | elisp/geiser-impl.el | 13 | ||||
-rw-r--r-- | elisp/geiser-repl.el | 7 |
2 files changed, 12 insertions, 8 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 diff --git a/elisp/geiser-repl.el b/elisp/geiser-repl.el index 38ebc6c..f1719e8 100644 --- a/elisp/geiser-repl.el +++ b/elisp/geiser-repl.el @@ -141,8 +141,8 @@ implementation name gets appended to it." (geiser-repl--history-setup) (geiser-con--setup-connection (current-buffer) prompt-rx) (add-to-list 'geiser-repl--repls (current-buffer)) - (geiser-impl--startup impl) - (geiser-repl--set-this-buffer-repl (current-buffer)))) + (geiser-repl--set-this-buffer-repl (current-buffer)) + (geiser-impl--startup impl))) (defun geiser-repl--process () (let ((buffer (geiser-repl--get-repl geiser-impl--implementation))) @@ -257,7 +257,8 @@ If no REPL is running, execute `run-geiser' to start a fresh one." (set (make-local-variable 'comint-input-filter) 'geiser-repl--input-filter) (add-hook 'kill-buffer-hook 'geiser-repl--on-kill nil t) (comint-read-input-ring t) - (set-process-sentinel (get-buffer-process (current-buffer)) 'geiser-repl--sentinel)) + (set-process-sentinel (get-buffer-process (current-buffer)) + 'geiser-repl--sentinel)) ;;; geiser-repl mode: |