diff options
author | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2009-09-26 03:17:20 +0200 |
---|---|---|
committer | Jose Antonio Ortega Ruiz <jao@gnu.org> | 2009-09-26 03:17:20 +0200 |
commit | 3c1924595e1347644a8202a9cb5600a2a01367da (patch) | |
tree | 948d153b2e5ed7ea233ed0ed2d34c494dac67053 /elisp/geiser-impl.el | |
parent | ad7badc9d24289cd1a30fc0621120d48f6462c0c (diff) | |
download | geiser-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.el | 8 |
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)))) |