From 4f51508ab0f7882dd8f0f80ae53fa238eacd5278 Mon Sep 17 00:00:00 2001 From: Jose Antonio Ortega Ruiz Date: Sat, 26 Sep 2009 03:17:20 +0200 Subject: Bug fix: proper handling of implementation methods specified as variables. --- elisp/geiser-impl.el | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'elisp/geiser-impl.el') 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)))) -- cgit v1.2.3