summaryrefslogtreecommitdiff
path: root/scheme
diff options
context:
space:
mode:
authorJose Antonio Ortega Ruiz <jao@gnu.org>2009-03-01 16:41:09 +0100
committerJose Antonio Ortega Ruiz <jao@gnu.org>2009-03-01 16:41:09 +0100
commitaf150090685e5e456bc0788fb45703b6eace053d (patch)
tree37c51fcac5362359c91bb7c2e791f3a9020b0e1c /scheme
parent3990c6476ab7cee03f4bf89827df7a23adf4d794 (diff)
downloadgeiser-chez-af150090685e5e456bc0788fb45703b6eace053d.tar.gz
geiser-chez-af150090685e5e456bc0788fb45703b6eace053d.tar.bz2
Some refactoring and new ge:macroexpand.
Diffstat (limited to 'scheme')
-rw-r--r--scheme/guile/geiser/emacs.scm5
1 files changed, 5 insertions, 0 deletions
diff --git a/scheme/guile/geiser/emacs.scm b/scheme/guile/geiser/emacs.scm
index 7f03be8..66320ec 100644
--- a/scheme/guile/geiser/emacs.scm
+++ b/scheme/guile/geiser/emacs.scm
@@ -27,6 +27,7 @@
(define-module (geiser emacs)
#:export (ge:eval
ge:compile
+ ge:macroexpand
ge:compile-file
ge:load-file)
#:re-export (ge:autodoc
@@ -141,4 +142,8 @@
"Load file, given its full @var{path}."
(evaluate `(load ,path) #f eval))
+(define (ge:macroexpand form . all)
+ (let ((all (and (not (null? all)) (car all))))
+ ((if all macroexpand macroexpand-1) form)))
+
;;; emacs.scm ends here