summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJose Antonio Ortega Ruiz <jao@gnu.org>2011-03-06 16:28:20 +0100
committerJose Antonio Ortega Ruiz <jao@gnu.org>2011-03-06 16:28:20 +0100
commit56e279b900535cf4c3b9d23a81124190592aaea2 (patch)
treebe4d05a0a14ac98c72470aba249901362599935c
parent19f05d1355e19d79536b458f2eb723489eeff7d7 (diff)
downloadgeiser-56e279b900535cf4c3b9d23a81124190592aaea2.tar.gz
geiser-56e279b900535cf4c3b9d23a81124190592aaea2.tar.bz2
Bug fix: don't confuse REPL buffers
We were not checking the implementation associated to a REPL buffer when reusing it, with much confusion ensued.
-rw-r--r--elisp/geiser-repl.el8
1 files changed, 5 insertions, 3 deletions
diff --git a/elisp/geiser-repl.el b/elisp/geiser-repl.el
index e88287c..74a1207 100644
--- a/elisp/geiser-repl.el
+++ b/elisp/geiser-repl.el
@@ -184,6 +184,9 @@ module command as a string")
(defsubst geiser-repl--repl-name (impl)
(format "%s REPL" (geiser-impl--impl-str impl)))
+(defsubst geiser-repl--buffer-name (impl)
+ (format "* %s *" (geiser-repl--repl-name impl)))
+
(defun geiser-repl--switch-to-buffer (buffer)
(unless (eq buffer (current-buffer))
(let ((pop-up-windows geiser-repl-window-allow-split))
@@ -193,15 +196,14 @@ module command as a string")
(defun geiser-repl--to-repl-buffer (impl)
(unless (and (eq major-mode 'geiser-repl-mode)
+ (eq geiser-impl--implementation impl)
(not (get-buffer-process (current-buffer))))
(let* ((old (geiser-repl--repl/impl impl geiser-repl--closed-repls))
(old (and (buffer-live-p old)
(not (get-buffer-process old))
old)))
(geiser-repl--switch-to-buffer
- (or old
- (generate-new-buffer (format "* %s *"
- (geiser-repl--repl-name impl)))))
+ (or old (generate-new-buffer (geiser-repl--buffer-name impl))))
(unless old
(geiser-repl-mode)
(geiser-impl--set-buffer-implementation impl)))))