summaryrefslogtreecommitdiff
path: root/elisp/geiser-impl.el
diff options
context:
space:
mode:
authorJose Antonio Ortega Ruiz <jao@gnu.org>2009-09-26 03:17:20 +0200
committerJose Antonio Ortega Ruiz <jao@gnu.org>2009-09-26 03:17:20 +0200
commit3c1924595e1347644a8202a9cb5600a2a01367da (patch)
tree948d153b2e5ed7ea233ed0ed2d34c494dac67053 /elisp/geiser-impl.el
parentad7badc9d24289cd1a30fc0621120d48f6462c0c (diff)
downloadgeiser-chez-3c1924595e1347644a8202a9cb5600a2a01367da.tar.gz
geiser-chez-3c1924595e1347644a8202a9cb5600a2a01367da.tar.bz2
Bug fix: proper handling of implementation methods specified as variables.
Diffstat (limited to 'elisp/geiser-impl.el')
-rw-r--r--elisp/geiser-impl.el8
1 files changed, 3 insertions, 5 deletions
diff --git a/elisp/geiser-impl.el b/elisp/geiser-impl.el
index f278477..a85b97b 100644
--- a/elisp/geiser-impl.el
+++ b/elisp/geiser-impl.el
@@ -120,8 +120,7 @@ determine its scheme flavour."
(defun geiser-impl--normalize-method (m)
(when (and (listp m)
(= 2 (length m))
- (symbolp (car m))
- (symbolp (cadr m)))
+ (symbolp (car m)))
(if (functionp (cadr m)) m
`(,(car m) (lambda (&rest) ,(cadr m))))))
@@ -213,12 +212,11 @@ buffer contains Scheme code of the given implementation.")
(defsubst geiser-impl--registered-method (impl method fallback)
(let ((m (geiser-impl--method method impl)))
(if (fboundp m) m
- (or fallback (error "%s not defined for %s" method impl)))))
+ (or fallback (error "%s not defined for %s implementation" method impl)))))
(defsubst geiser-impl--registered-value (impl method fallback)
(let ((m (geiser-impl--method method impl)))
- (if (fboundp m) (funcall m)
- (or fallback (error "%s not defined for %s" method impl)))))
+ (if (functionp m) (funcall m) fallback)))
(defun geiser-impl--set-buffer-implementation (&optional impl)
(let ((impl (or impl (geiser-impl--guess))))