summaryrefslogtreecommitdiff
path: root/elisp/geiser-impl.el
diff options
context:
space:
mode:
authorJose Antonio Ortega Ruiz <jao@gnu.org>2019-06-24 19:07:16 +0100
committerJose Antonio Ortega Ruiz <jao@gnu.org>2019-06-24 19:07:16 +0100
commite8a9fdf7a6fef3378d7b7016fd01d1f3ba1a50d0 (patch)
tree0ea82cec92f7b0424a25537c6a5437de8c85ceb1 /elisp/geiser-impl.el
parent59082944ab8561cafb0602f695669c4b47366fbd (diff)
downloadgeiser-e8a9fdf7a6fef3378d7b7016fd01d1f3ba1a50d0.tar.gz
geiser-e8a9fdf7a6fef3378d7b7016fd01d1f3ba1a50d0.tar.bz2
Fix: use default method implementations
See discussion in issue !256.
Diffstat (limited to 'elisp/geiser-impl.el')
-rw-r--r--elisp/geiser-impl.el8
1 files changed, 6 insertions, 2 deletions
diff --git a/elisp/geiser-impl.el b/elisp/geiser-impl.el
index 4f4f0ee..c14db42 100644
--- a/elisp/geiser-impl.el
+++ b/elisp/geiser-impl.el
@@ -1,6 +1,6 @@
;; geiser-impl.el -- generic support for scheme implementations
-;; Copyright (C) 2009, 2010, 2012, 2013, 2015, 2016 Jose Antonio Ortega Ruiz
+;; Copyright (C) 2009, 2010, 2012, 2013, 2015, 2016, 2019 Jose Antonio Ortega Ruiz
;; This program is free software; you can redistribute it and/or
;; modify it under the terms of the Modified BSD License. You should
@@ -81,8 +81,12 @@ determine its scheme flavour."
geiser-default-implementation)))
(cadr (assq method (geiser-impl--methods impl)))))
+(defun geiser-impl--default-method (method)
+ (cadr (assoc method (mapcar 'cdr geiser-impl--local-methods))))
+
(defun geiser-impl--call-method (method impl &rest args)
- (let ((fun (geiser-impl--method method impl)))
+ (let ((fun (or (geiser-impl--method method impl)
+ (geiser-impl--default-method method))))
(when (functionp fun) (apply fun args))))
(defun geiser-impl--method-doc (method doc user)