summaryrefslogtreecommitdiff
path: root/elisp/geiser-eval.el
diff options
context:
space:
mode:
authorJose Antonio Ortega Ruiz <jao@gnu.org>2009-03-02 19:12:37 +0100
committerJose Antonio Ortega Ruiz <jao@gnu.org>2009-03-02 19:12:37 +0100
commit0085c16dc3add5722e86c738c0ff1fa969183d86 (patch)
treecc4ab3e5a1504ddfa2764659d813089fc3be7cad /elisp/geiser-eval.el
parent3bb10cbc0c9a04afdf033efc4b293e5f49cbdfc9 (diff)
downloadgeiser-0085c16dc3add5722e86c738c0ff1fa969183d86.tar.gz
geiser-0085c16dc3add5722e86c738c0ff1fa969183d86.tar.bz2
Correctly specify current module in REPL (and make it generic).
Diffstat (limited to 'elisp/geiser-eval.el')
-rw-r--r--elisp/geiser-eval.el15
1 files changed, 14 insertions, 1 deletions
diff --git a/elisp/geiser-eval.el b/elisp/geiser-eval.el
index 09f12da..3e5e7aa 100644
--- a/elisp/geiser-eval.el
+++ b/elisp/geiser-eval.el
@@ -31,6 +31,19 @@
(require 'geiser-base)
+;;; Plug-able functions:
+
+(make-variable-buffer-local
+ (defvar geiser-eval--current-module-function 'geiser-syntax--buffer-module))
+
+(defsubst geiser-eval--current-module-function (fun)
+ (setq geiser-eval--current-module-function fun))
+
+(defsubst geiser-eval--current-module ()
+ (and geiser-eval--current-module-function
+ (funcall geiser-eval--current-module-function)))
+
+
;;; Code formatting:
(defun geiser-eval--scheme-str (code)
@@ -66,7 +79,7 @@
(defsubst geiser-eval--module (code)
(geiser-eval--scheme-str
(cond ((or (eq code '(())) (null code))
- `(quote ,(or (geiser-syntax--buffer-module) :f)))
+ `(quote ,(or (geiser-eval--current-module) :f)))
((listp code) `(quote ,code))
((stringp code) (:scm code))
(t (error "Invalid module spec: %S" code)))))